Re: [x86] BUG: unable to handle kernel paging request at 00740060

From: Linus Torvalds
Date: Tue Oct 08 2013 - 15:49:34 EST


On Tue, Oct 8, 2013 at 12:35 PM, Oleg Nesterov <oleg@xxxxxxxxxx> wrote:
>
> Cough... sorry for off-topic question,
>
> static inline int test_and_set_bit(long nr, volatile unsigned long *addr)
> {
> int oldbit;
>
> asm volatile(LOCK_PREFIX "bts %2,%1\n\t"
> "sbb %0,%0" : "=r" (oldbit), ADDR : "Ir" (nr) : "memory");
>
> doesn't this mean that "ADDR" doesn't need "+" as well?

We use ADDR for some of the non-barrier ones too, that don't have the
barrier. See clear_bit() and friends..

> Or at least, perhaps it makes sense to identify the include file which
> makes the difference. Say, revert the changes in bitops.h, retest, then
> in atomic.h if the kernel still fails, etc.

Yeah, except Fengguang is the only one seeing this in his automated tests..

Linus
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/