<matrixBuild _class='hudson.matrix.MatrixBuild'><action _class='hudson.model.CauseAction'><cause _class='org.jenkinsci.plugins.workflow.support.steps.build.BuildUpstreamCause'><shortDescription>Started by upstream project "gerrit-simtrace2" build number 119</shortDescription><upstreamBuild>119</upstreamBuild><upstreamProject>gerrit-simtrace2</upstreamProject><upstreamUrl>job/gerrit-simtrace2/</upstreamUrl></cause></action><action></action><action _class='hudson.model.ParametersAction'><parameter _class='hudson.model.StringParameterValue'><name>COMMENT_TYPE</name><value></value></parameter><parameter _class='hudson.model.StringParameterValue'><name>DISTRO</name><value></value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_BRANCH</name><value>master</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_CHANGE_NUMBER</name><value>43127</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_HOST</name><value>gerrit.osmocom.org</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PATCHSET_NUMBER</name><value>1</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PATCHSET_REVISION</name><value>ea8a993f652794f905465b42281225adc768409b</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PATCHSET_UPLOADER_NAME</name><value>Hoernchen</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PORT</name><value>29418</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PROJECT</name><value>simtrace2</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_REFSPEC</name><value>refs/changes/27/43127/1</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_REPO_URL</name><value>ssh://jenkins@gerrit.osmocom.org:29418/simtrace2</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>PIPELINE_BUILD_URL</name><value>https://jenkins.osmocom.org/jenkins/job/gerrit-simtrace2/119/</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>PROJECT_NAME</name><value>simtrace2</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>BRANCH_CI</name><value>master</value></parameter></action><action _class='jenkins.metrics.impl.TimeInQueueAction'><blockedDurationMillis>0</blockedDurationMillis><blockedTimeMillis>0</blockedTimeMillis><buildableDurationMillis>0</buildableDurationMillis><buildableTimeMillis>0</buildableTimeMillis><buildingDurationMillis>379753</buildingDurationMillis><executingTimeMillis>379753</executingTimeMillis><executorUtilization>1.0</executorUtilization><queuingDurationMillis>6721</queuingDurationMillis><queuingTimeMillis>6721</queuingTimeMillis><subTaskCount>0</subTaskCount><totalDurationMillis>386474</totalDurationMillis><waitingDurationMillis>5371</waitingDurationMillis><waitingTimeMillis>5371</waitingTimeMillis></action><action></action><action _class='hudson.plugins.git.util.BuildData'><buildsByBranchName><osmith0.8.2 _class='hudson.plugins.git.util.Build'><buildNumber>55</buildNumber><marked><SHA1>5b5785af7a089b2a4f0c6963fdeebfc48fb22540</SHA1><branch><SHA1>5b5785af7a089b2a4f0c6963fdeebfc48fb22540</SHA1><name>osmith/0.8.2</name></branch></marked><revision><SHA1>5b5785af7a089b2a4f0c6963fdeebfc48fb22540</SHA1><branch><SHA1>5b5785af7a089b2a4f0c6963fdeebfc48fb22540</SHA1><name>osmith/0.8.2</name></branch></revision></osmith0.8.2><master _class='hudson.plugins.git.util.Build'><buildNumber>127</buildNumber><marked><SHA1>ea8a993f652794f905465b42281225adc768409b</SHA1><branch><SHA1>ea8a993f652794f905465b42281225adc768409b</SHA1><name>master</name></branch></marked><revision><SHA1>ea8a993f652794f905465b42281225adc768409b</SHA1><branch><SHA1>ea8a993f652794f905465b42281225adc768409b</SHA1><name>master</name></branch></revision></master></buildsByBranchName><lastBuiltRevision><SHA1>ea8a993f652794f905465b42281225adc768409b</SHA1><branch><SHA1>ea8a993f652794f905465b42281225adc768409b</SHA1><name>master</name></branch></lastBuiltRevision><remoteUrl>ssh://jenkins@gerrit.osmocom.org:29418/simtrace2</remoteUrl><scmName></scmName></action><action></action><action></action><action></action><action _class='org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction'><artifactsUrl>https://jenkins.osmocom.org/jenkins/job/gerrit-simtrace2-build/127/artifact</artifactsUrl><changesUrl>https://jenkins.osmocom.org/jenkins/job/gerrit-simtrace2-build/changes</changesUrl><displayUrl>https://jenkins.osmocom.org/jenkins/job/gerrit-simtrace2-build/127/</displayUrl><testsUrl>https://jenkins.osmocom.org/jenkins/job/gerrit-simtrace2-build/127/testReport</testsUrl></action><building>false</building><displayName>#127</displayName><duration>379753</duration><estimatedDuration>327764</estimatedDuration><fullDisplayName>gerrit-simtrace2-build #127</fullDisplayName><id>127</id><inProgress>false</inProgress><keepLog>false</keepLog><number>127</number><queueId>181025</queueId><result>SUCCESS</result><timestamp>1785265452301</timestamp><url>https://jenkins.osmocom.org/jenkins/job/gerrit-simtrace2-build/127/</url><builtOn></builtOn><changeSet _class='hudson.plugins.git.GitChangeSetList'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>firmware/libcommon/include/llist_irqsafe.h</affectedPath><affectedPath>firmware/libcommon/source/mode_cardemu.c</affectedPath><affectedPath>firmware/libcommon/source/card_emu.c</affectedPath><commitId>ea8a993f652794f905465b42281225adc768409b</commitId><timestamp>1785259453000</timestamp><author><absoluteUrl>https://jenkins.osmocom.org/jenkins/user/ewild</absoluteUrl><fullName>ewild</fullName></author><authorEmail>ewild@sysmocom.de</authorEmail><comment>firmware: protect uart_tx_queue against ISR

cardem:
- dispatch_usb_command_cardem() appends to uart_tx_queue from the main loop
- tx_byte_tpdu() dequeues from the USART IRQ handler @ NVIC prio 0

card_handle_reset() has the same issue, drains queue and
frees uart_tx_msg from main loop while the ISR may own them.

All of this needs protection against the irq.

Needs a fixed llist_add_tail_irqsafe(), which called __enable_irq() instead of
restoring the saved PRIMASK for some unknown reason?!?!?!?

Change-Id: I7d9cdcc56263b27dfd4649dfb1da1d67761ee923
</comment><date>2026-07-28 19:24:13 +0200</date><id>ea8a993f652794f905465b42281225adc768409b</id><msg>firmware: protect uart_tx_queue against ISR</msg><path><editType>edit</editType><file>firmware/libcommon/source/mode_cardemu.c</file></path><path><editType>edit</editType><file>firmware/libcommon/include/llist_irqsafe.h</file></path><path><editType>edit</editType><file>firmware/libcommon/source/card_emu.c</file></path></item><kind>git</kind></changeSet><culprit><absoluteUrl>https://jenkins.osmocom.org/jenkins/user/ewild</absoluteUrl><fullName>ewild</fullName><id>ewild</id></culprit><run><action _class='hudson.matrix.MatrixChildParametersAction'><parameter _class='hudson.model.StringParameterValue'><name>COMMENT_TYPE</name><value></value></parameter><parameter _class='hudson.model.StringParameterValue'><name>DISTRO</name><value></value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_BRANCH</name><value>master</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_CHANGE_NUMBER</name><value>43127</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_HOST</name><value>gerrit.osmocom.org</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PATCHSET_NUMBER</name><value>1</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PATCHSET_REVISION</name><value>ea8a993f652794f905465b42281225adc768409b</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PATCHSET_UPLOADER_NAME</name><value>Hoernchen</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PORT</name><value>29418</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PROJECT</name><value>simtrace2</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_REFSPEC</name><value>refs/changes/27/43127/1</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_REPO_URL</name><value>ssh://jenkins@gerrit.osmocom.org:29418/simtrace2</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>PIPELINE_BUILD_URL</name><value>https://jenkins.osmocom.org/jenkins/job/gerrit-simtrace2/119/</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>PROJECT_NAME</name><value>simtrace2</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>BRANCH_CI</name><value>master</value></parameter></action><action></action><action _class='hudson.model.CauseAction'><cause _class='hudson.model.Cause$UpstreamCause'><shortDescription>Started by upstream project "gerrit-simtrace2-build" build number 127</shortDescription><upstreamBuild>127</upstreamBuild><upstreamProject>gerrit-simtrace2-build</upstreamProject><upstreamUrl>job/gerrit-simtrace2-build/</upstreamUrl></cause></action><action _class='jenkins.metrics.impl.TimeInQueueAction'><blockedDurationMillis>0</blockedDurationMillis><blockedTimeMillis>0</blockedTimeMillis><buildableDurationMillis>257944</buildableDurationMillis><buildableTimeMillis>257944</buildableTimeMillis><buildingDurationMillis>114080</buildingDurationMillis><executingTimeMillis>114080</executingTimeMillis><executorUtilization>1.0</executorUtilization><subTaskCount>0</subTaskCount><waitingDurationMillis>0</waitingDurationMillis><waitingTimeMillis>0</waitingTimeMillis></action><action></action><action _class='hudson.plugins.git.util.BuildData'><buildsByBranchName><osmith0.8.2 _class='hudson.plugins.git.util.Build'><buildNumber>55</buildNumber><marked><SHA1>5b5785af7a089b2a4f0c6963fdeebfc48fb22540</SHA1><branch><SHA1>5b5785af7a089b2a4f0c6963fdeebfc48fb22540</SHA1><name>osmith/0.8.2</name></branch></marked><revision><SHA1>5b5785af7a089b2a4f0c6963fdeebfc48fb22540</SHA1><branch><SHA1>5b5785af7a089b2a4f0c6963fdeebfc48fb22540</SHA1><name>osmith/0.8.2</name></branch></revision></osmith0.8.2><master _class='hudson.plugins.git.util.Build'><buildNumber>127</buildNumber><marked><SHA1>ea8a993f652794f905465b42281225adc768409b</SHA1><branch><SHA1>ea8a993f652794f905465b42281225adc768409b</SHA1><name>master</name></branch></marked><revision><SHA1>ea8a993f652794f905465b42281225adc768409b</SHA1><branch><SHA1>ea8a993f652794f905465b42281225adc768409b</SHA1><name>master</name></branch></revision></master></buildsByBranchName><lastBuiltRevision><SHA1>ea8a993f652794f905465b42281225adc768409b</SHA1><branch><SHA1>ea8a993f652794f905465b42281225adc768409b</SHA1><name>master</name></branch></lastBuiltRevision><remoteUrl>ssh://jenkins@gerrit.osmocom.org:29418/simtrace2</remoteUrl><scmName></scmName></action><action></action><action></action><action _class='org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction'></action><building>false</building><displayName>#127</displayName><duration>114080</duration><estimatedDuration>91034</estimatedDuration><fullDisplayName>gerrit-simtrace2-build » a1=default,a2=default,a3=default,a4=default,osmocom-gerrit #127</fullDisplayName><id>127</id><inProgress>false</inProgress><keepLog>false</keepLog><number>127</number><queueId>181033</queueId><result>SUCCESS</result><timestamp>1785265452301</timestamp><url>https://jenkins.osmocom.org/jenkins/job/gerrit-simtrace2-build/a1=default,a2=default,a3=default,a4=default,label=osmocom-gerrit/127/</url><builtOn>build4-deb12build-ansible</builtOn><changeSet _class='hudson.plugins.git.GitChangeSetList'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>firmware/libcommon/include/llist_irqsafe.h</affectedPath><affectedPath>firmware/libcommon/source/mode_cardemu.c</affectedPath><affectedPath>firmware/libcommon/source/card_emu.c</affectedPath><commitId>ea8a993f652794f905465b42281225adc768409b</commitId><timestamp>1785259453000</timestamp><author><absoluteUrl>https://jenkins.osmocom.org/jenkins/user/ewild</absoluteUrl><fullName>ewild</fullName></author><authorEmail>ewild@sysmocom.de</authorEmail><comment>firmware: protect uart_tx_queue against ISR

cardem:
- dispatch_usb_command_cardem() appends to uart_tx_queue from the main loop
- tx_byte_tpdu() dequeues from the USART IRQ handler @ NVIC prio 0

card_handle_reset() has the same issue, drains queue and
frees uart_tx_msg from main loop while the ISR may own them.

All of this needs protection against the irq.

Needs a fixed llist_add_tail_irqsafe(), which called __enable_irq() instead of
restoring the saved PRIMASK for some unknown reason?!?!?!?

Change-Id: I7d9cdcc56263b27dfd4649dfb1da1d67761ee923
</comment><date>2026-07-28 19:24:13 +0200</date><id>ea8a993f652794f905465b42281225adc768409b</id><msg>firmware: protect uart_tx_queue against ISR</msg><path><editType>edit</editType><file>firmware/libcommon/source/mode_cardemu.c</file></path><path><editType>edit</editType><file>firmware/libcommon/source/card_emu.c</file></path><path><editType>edit</editType><file>firmware/libcommon/include/llist_irqsafe.h</file></path></item><kind>git</kind></changeSet><culprit><absoluteUrl>https://jenkins.osmocom.org/jenkins/user/ewild</absoluteUrl><fullName>ewild</fullName></culprit></run></matrixBuild>