Messages in this thread | | | Date | Thu, 28 Jan 1999 14:40:12 +0100 (CET) | From | Andrea Arcangeli <> | Subject | Re: [patch] race-fix for bottom-half-functions [Re: Subtle trouble in remove_bh().] |
| |
Linus this is about the softirq.h spinlock instead of atomic_t. Don't waste time reading it if you are not interested. Maybe this is not an issue that a normal user will notice.
On Thu, 28 Jan 1999, Patrik Rak wrote:
> I know that many people out there consider these problems too subtle, > but I can't help myself - I just tend to nail down every bug I spot > (err, I mean, the software ones :)
Me too, but I think that Linus is not interesed at all in these right now.
The point is that we are writing in the asm section of the includes so we don't need to write C that works everywhere, but only in all i386.
In the init_bh/remove_bh the only thing I care is the order of the routine = xx and bh_mask |= xxx operations. Nothing more. It has to be single threaded, and I want it atomic in respect only of the bh handler engine.
When instead we are at regime we only care to do update bh_mask and bh_mask_count at the same time, to not risk to have bh_mask_count enabled but bh_mask disabled (or the reverse). You must think at enable_bh() and disable_bh() as heavily recalled from different context at the same time (as in the console code).
I can't see races in get_active_bhs() and clear_active_bhs(). The reason is that if we miss a bh this time we'll get it the next one. Can you explain better your thought?
Andrea Arcangeli
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/
| |