Re: UBSAN: Undefined behaviour in drivers/scsi/aic7xxx/aic7xxx_core.c:2831:31

From: James Bottomley
Date: Thu May 12 2016 - 16:08:44 EST


On Thu, 2016-05-12 at 19:02 +0300, Meelis Roos wrote:
> This is from a dual-AthlonMP 32-bit x86 system with onboard Adaptec
> SCSI
> controller, once during bootup.
>
> [ 4.896307]
> =====================================================================
> ===========
> [ 4.896471] UBSAN: Undefined behaviour in
> drivers/scsi/aic7xxx/aic7xxx_core.c:2831:31
> [ 4.896629] shift exponent -1 is negative

Is this some sort of false positive? The shift in question is

devinfo->target_mask = (0x01 << devinfo->target_offset);

The code which calls this in ahc_linux_initialize_scsi_bus() looks to
be looping from 0-16 (or variations). Since the value passed in is
unsigned, it would have to be set to ~0, which doesn't seem possible.

James