Opened 10 years ago
Closed 10 years ago
#11121 closed bug (fixed)
Set return value of atomic_get_and_set to prevent attempting to acquire spinlock twice
Reported by: | arvindsraj | Owned by: | axeld |
---|---|---|---|
Priority: | normal | Milestone: | R1 |
Component: | System/Boot Loader | Version: | R1/Development |
Keywords: | gsoc2014 | Cc: | |
Blocked By: | Blocking: | ||
Platform: | arm |
Description
The return value of atomic_get_and_set isn't set which causes the kernel to incorrectly assume that the spinlock has not been acquired and causes a panic(KDL) when trying to acquire it again.
Attachments (2)
Change History (6)
by , 10 years ago
Attachment: | Set-return-value-of-atomic_get_and_set.patch added |
---|
comment:1 by , 10 years ago
patch: | 0 → 1 |
---|
comment:2 by , 10 years ago
by , 10 years ago
Attachment: | Reimplemented-atomic_get_and_set-in-C++.patch added |
---|
comment:3 by , 10 years ago
In the newly uploaded patch, I've reimplemented atomic_get_and_set in C++.
Note:
See TracTickets
for help on using tickets.
pdziepak proposed a C++ implementation of this, which could be used in a cross platform way:
This would make things work for all platforms, however it uses the C++11 std::atomic so we have to keep the current implementation at least for x86_gcc2. But it would be best to have all gcc4 platforms use this.