diff options
Diffstat (limited to 'drivers')
| -rw-r--r-- | drivers/scsi/ultrastor.c | 13 | 
1 files changed, 10 insertions, 3 deletions
| diff --git a/drivers/scsi/ultrastor.c b/drivers/scsi/ultrastor.c index 1d3b02976d74..75eca6b22db5 100644 --- a/drivers/scsi/ultrastor.c +++ b/drivers/scsi/ultrastor.c @@ -298,9 +298,16 @@ static inline int find_and_clear_bit_16(unsigned long *field)  {    int rv; -  if (*field == 0) panic("No free mscp"); -  asm("xorl %0,%0\n0:\tbsfw %1,%w0\n\tbtr %0,%1\n\tjnc 0b" -      : "=&r" (rv), "=m" (*field) : "1" (*field)); +  if (*field == 0) +    panic("No free mscp"); + +  asm volatile ( +	"xorl %0,%0\n\t" +	"0: bsfw %1,%w0\n\t" +	"btr %0,%1\n\t" +	"jnc 0b" +	: "=&r" (rv), "=m" (*field) :); +    return rv;  } | 
