Skip to content

Commit

Permalink
gimlet-seq: don't ignore notifications in dispatch (#1627)
Browse files Browse the repository at this point in the history
I introduced a regression in the `gimlet-seq` task in commit
4cb9edd, where the call to
`idol_runtime::dispatch_n` was inadvertently replaced with
`idol_runtime::dispatch`. This resulted in the `gimlet-seq` task
ignoring notifications that it previously handled. In particular, the
bug causes the `gimlet-seq` task to ignore the timer notifications it
sets for itself to poll the sequencer state after reaching A0. This
manifests as a failure to power on the T6, as described in issue #1625.

This commit fixes the regression by changing `dispatch` back to
`dispatch_n`. Thanks to @wesolows for identifying the root cause of this
bug!

I've tested this on Gimlet c71 in the lab, and after applying this
patch, the T6 once again powers on as expected:

```console
BRM42220071 # svcs t6init
STATE          STIME    FMRI
online          0:02:53 svc:/system/t6init:default
```

Fixes #1625

Authored-by: Keith M Wesolowski <[email protected]>
  • Loading branch information
hawkw authored Feb 22, 2024
1 parent 3a935c6 commit 254b0bc
Showing 1 changed file with 1 addition and 1 deletion.
2 changes: 1 addition & 1 deletion drv/gimlet-seq-server/src/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -125,7 +125,7 @@ fn main() -> ! {
Ok(mut server) => {
let mut buffer = [0; idl::INCOMING_SIZE];
loop {
idol_runtime::dispatch(&mut buffer, &mut server);
idol_runtime::dispatch_n(&mut buffer, &mut server);
}
}

Expand Down

0 comments on commit 254b0bc

Please sign in to comment.