Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

drivers/ide/ide-cs.c: adjust suspicious bit operation

IO_DATA_PATH_WIDTH_8 is 0, so a bit-and with it is always false. The
value IO_DATA_PATH_WIDTH covers the bits of the IO_DATA_PATH constants, so
first pick those bits and then make the test using !=.

This problem was found using Coccinelle (http://coccinelle.lip6.fr/).

Signed-off-by: Julia Lawall <Julia.Lawall@lip6.fr>
Signed-off-by: David S. Miller <davem@davemloft.net>

authored by

Julia Lawall and committed by
David S. Miller
e58c5de8 027253c1

+2 -1
+2 -1
drivers/ide/ide-cs.c
··· 167 167 { 168 168 int *is_kme = priv_data; 169 169 170 - if (!(pdev->resource[0]->flags & IO_DATA_PATH_WIDTH_8)) { 170 + if ((pdev->resource[0]->flags & IO_DATA_PATH_WIDTH) 171 + != IO_DATA_PATH_WIDTH_8) { 171 172 pdev->resource[0]->flags &= ~IO_DATA_PATH_WIDTH; 172 173 pdev->resource[0]->flags |= IO_DATA_PATH_WIDTH_AUTO; 173 174 }