Subtle trouble in remove_bh().

Patrik Rak (patrik@raxoft.cz)
Thu, 14 Jan 1999 11:39:07 +0100 (CET)


Hi!

When we are already discussing the softirq.h issues here, there is another
subtle bug in remove_bh(). This one affects all boxes.

The problem is that this function first clears the handler pointer and
than clears the mask bit - if an int would occur meanwhile, it would crash
in run_bottom_halves().

jj claims that all remove_bh() calls are protected by global cli, but I
think there is one usage in drivers/scsi/scsi.c which is not...

I would suggest to change the code so it first clears the mask bit - it
costs nothing and the function does not need the global cli anymore.

Patrik

-
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/