From: Dan Carpenter Date: Mon, 11 Mar 2013 11:41:51 +0000 (+0300) Subject: pata_legacy: bogus clock in opti82c46x_set_piomode() X-Git-Tag: firefly_0821_release~3680^2~628^2~13 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=e0044c9822ab7b60b493bc135ec258227a082b5a;p=firefly-linux-kernel-4.4.55.git pata_legacy: bogus clock in opti82c46x_set_piomode() "sysclk" is used as an index into a 4 element array. My static checker complains because it can be out of bounds. From the context, it looks like there is a right bit shift missing. Signed-off-by: Dan Carpenter Signed-off-by: Jeff Garzik --- diff --git a/drivers/ata/pata_legacy.c b/drivers/ata/pata_legacy.c index 4fe9d2138d48..be816428b430 100644 --- a/drivers/ata/pata_legacy.c +++ b/drivers/ata/pata_legacy.c @@ -542,7 +542,7 @@ static void opti82c46x_set_piomode(struct ata_port *ap, struct ata_device *adev) u8 sysclk; /* Get the clock */ - sysclk = opti_syscfg(0xAC) & 0xC0; /* BIOS set */ + sysclk = (opti_syscfg(0xAC) & 0xC0) >> 6; /* BIOS set */ /* Enter configuration mode */ ioread16(ap->ioaddr.error_addr);