Skip to content

Changes

Started by Oliver Smith
Started 4 hr 14 min ago
Queued 1 ms
Took 46 sec on built-in
contrib/jenkins.sh: fix build: add --disable-syslog-logging

Since recently (see the related patch), libosmocore requires header
file syslog.h to be present, unless --disable-syslog-logging is given.

Change-Id: Ia49709dfebdf22cb00f70d667c996c3fbb8a1f51
Related: libosmocore.git Ifc54d60e24547696b3059b6eb75572f8c84874d0
Vadim Yanitskiy at
contrib/jenkins.sh: fix non-existent include path

This helps the compiler to find talloc.h and fixes the build [again].

Change-Id: I7949f31e01d4cb20af1095f8fc20be1571239f37
Related: OS#6929
Vadim Yanitskiy at
contrib/jenkins.sh: clean up embedded build flags

--enable-embedded implies the following flags:

* --disable-log-macros
* --disable-libsctp
* --disable-libusb
* --disable-gb
* --disable-libmnl
* --disable-syslog-logging

so they can be safely removed.

--enable-external-tests makes no sense for an embedded build.

Change-Id: I4b54ecc5b023c7f4e1788814960e179c3818dbda
Related: libosmocore.git I164eb461fb59c7675393219102740f40c1119fdd
Vadim Yanitskiy at
contrib/jenkins.sh: clean up CFLAGS

Change-Id: I4e78d6eb3c6c7b40312072fcf70f4b6d80042959
Vadim Yanitskiy at
fix wait time extension handling

wait time ext byte was mishandled as sw1 and sw2, which broke transfers that took a long time, i.e. crypto ops during esim interactions.

Closes: SYS#7869
Change-Id: I7527a4337ae857b9b2a4e982606fac770e677d73
ewild at
ccid_common: iso_handle_fsm_events: add missing return

Fix warning about control reaches end of non-void function.

Change-Id: I4066c8a1ab1eadb3d8f8cbaf5aa0afbbb2e5dd80
lynxis at
After initialisation: turn user led on

Related: SYS#5158
Change-Id: Ide37ea32648536d333bd5051b142eb15959d29bf
laforge at
clang-format: set ColumnLimit: 0

While our coding style says "we accept line lengths of up to 120
characters", in practice we oftentimes end up preferring longer lines
(e.g. due to having comments at the end, or to keep them consistent with
similar but shorter lines).

The checkpatch config has already been adjusted to just ignore the line
length completely. Adjust the clang-format config to do the same.

Related: osmo-ci I88fd86ac550fddb3017aeceb647c3d9e75367372
Change-Id: I1f0d511d90a0725f195e08dd6a99eb3d55bd6fc1
Oliver Smith at
main: fix crash when ccid_df_write_in() fails

The OSMO_ASSERT(msg->list.next != LLIST_POISON1) are checking msgb
which has been removed from the llist.
All llist members which aren't part of a list have LLIST_POISON1 assigned.

These OSMO_ASSERT()s will always trigger this msgb.

Fixes: a684bc4e38b4 ("Make ch9 usb tests work")
Change-Id: I49c81fba756f3620638b6c6c664f53e4a8758ef9
laforge at
main: don't access msgbs after giving them away

Because of IRQ, it is dangerous to access a msgb,
which has been giving away to a queue (ownership transfer).

Further OSMO_ASSERT() should never fail on a queue'd object,
except it has been taken already from an IRQ context.
Fix a potential crash.

Fixes: a684bc4e38b4 ("Make ch9 usb tests work")
Change-Id: I79844f77d5cd75e08b0eb44b22c4ad223cb79dcb
laforge at
ccid_device: Reject XfrBlock with zero-length data

While the CCID v1.1 spec seems to declare dwLength == 0 is within
the valid range, it's of course a no-op as we cannot transact a TPDU
that isn't there.

Change-Id: I65df88477e4b1c03dc20a8d41e5cbd1c9f363ba8
Closes: OS#6969
laforge at
ccid: Fix CCID RDR_to_PC_Parameters (missing bProtocolNum)

Our RDR_to_PC_Parameters message was broken, as it was missing
the bProtocolNum value after the header.  Let's fix that.

Change-Id: I67d5cb876d20b29f4759d5b194606f34b8b966c4
laforge at
ccid: Fix [unused] RDR_to_PC_Hardware_Error struct definition

Our definition of the message was wrong; it is an interrupt endpoint
message without the full header of the bulk-in endpoint. Luckily the
definition was not used in the code base, so this is not fixing any
problem visible on the protocol level.

Change-Id: Ieb756c37402c4ebea32cc3cd23ba3842f4c0df3e
laforge at
ccid_slot_fsm.c: Reject T=0 TPDU > 260 bytes

The CCID v1.1 ch 6.1.4 specification states a T=0 TPDU must not exceed 260 bytes,
so let's properly handle this error case.

Change-Id: Iceb0013adf448fe56c909fd8ccf14a021d8b7331
laforge at
ensure libosmocore logging is properly disabled for builds

Change-Id: I169a059d8daff0a3993318a4ea3ab7adcb05fee3
laforge at
ccid: generate proper error for short messages

Change-Id: I3bf0bebd361666a2f3d0341444415a6f25d2b4bf
laforge at
firmware: fix msgb/list mixed irq access handling

This fixes the mishandling of in_progress and the queues in the submit
functions that are in part irq driven, too, and ensures nothing breaks
by preventing concurrent access from irqs to the queues. Applying the
same pattern to all functions/cases is fine either way.

On top of all of tha the out ep was irq driven, so if submit_next_out
fails it was stuck, now fixed by attempted submit from main loop, and of
course the queue manipulation should be irq safe here as well.

Change-Id: I9212bfa7688cb4d3161ba963b854225744128632
laforge at
firmware: add tear-free 64bit load/store helpers for jiffies

On Cortex-M4 a 64bit load may compile to two separate LDR
instructions which can lead to torn reads due to interrupts.
LDRD/STRD are restartable, they either complete or restart from
scratch, so the result is always consistent. The only "downside" is the
required alignment, which is fine.

Change-Id: I729c0fdfb5b228b03c2df1cf098743100b1ea625
ewild at
firmware: replace libosmocore fsm timers

Concurrent access from main loop and the different uart irqs was not
going well and caused crashes. The libosmocore fsm does still allocate
one internal timer, but it is not used by the firmware, so libosmocore
will not touch the rbtree.

Additionally ignore checkpatch jiffies complaints because we're trying
to do firmware here.

Closes: SYS#7877
Change-Id: Id2bd67b3946bb451008965f0b68b4a919f4d10bd
ewild at
firmware: fix timers, add missing return

Change-Id: I5b12284c88d8fe6e4fe55cc4cd2aad550d276af4
ewild at
firmware: werror on missing return

Silently ignoring a missing return just broke all timers,
so prevent similar mistakes in the future.

Change-Id: I2e25884077af6334c9e9ddace3900b04061fae04
ewild at
contrib/jenkins: add SKIP_FIRMWARE_CLEAN argument

If this is set, then don't clean the firmware at the end. This is needed
to store the built firmware as artifact in jenkins, for passing it along
to another job.

Related: SYS#7963
Change-Id: I9e2342b8111645ef5d3b7bf4ac364ca592aa600b
Oliver Smith at