Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion src/ipc/ipc3/handler.c
Original file line number Diff line number Diff line change
Expand Up @@ -672,7 +672,7 @@ static int ipc_pm_context_save(uint32_t header)
/* do platform specific suspending */
platform_context_save(sof_get());

#if !defined(CONFIG_LIBRARY)
#if !defined(CONFIG_LIBRARY) && !defined(CONFIG_ZEPHYR_POSIX)
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sorry for late review. I'm still a bit baffled how come spinlock is held in the POSIX simulation runs. As far as I can tell, this shouldn't be the case. Do we have a bug lurking here somewhere?

The patch itself is ok. There is no need for these actions in simulator runs, but curious if @tmleman you looked up the where the lock is taken?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In line 681:

	/* mask all DSP interrupts */
	arch_irq_lock();

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@tmleman Aa, right, sorry, I thought the assert is hit on L681. But ack, no, we take the lock there, and in real hw we go to D3 (and code won't return) but in simulation there is a context switch and this then hits an assert. Thanks for clarifying, then this is ok!

/* TODO: check we are inactive - all streams are suspended */

/* TODO: mask ALL platform interrupts except DMA */
Expand Down
Loading