Commit ae91d60ba88ef0bdb1b5e9b2363bd52fc45d2af7

Authored by Julia Lawall
Committed by Linus Torvalds
1 parent 07fb6f26ba

drivers/isdn: correct use of ! and &

In commit e6bafba5b4765a5a252f1b8d31cbf6d2459da337 ("wmi: (!x & y)
strikes again"), a bug was fixed that involved converting !x & y to !(x
& y).  The code below shows the same pattern, and thus should perhaps be
fixed in the same way.

This is not tested and clearly changes the semantics, so it is only
something to consider.

The semantic patch that makes this change is as follows:
(http://www.emn.fr/x-info/coccinelle/)

// <smpl>
@@ expression E1,E2; @@
(
  !E1 & !E2
|
- !E1 & E2
+ !(E1 & E2)
)
// </smpl>

Signed-off-by: Julia Lawall <julia@diku.dk>
Cc: Karsten Keil <kkeil@suse.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

Showing 2 changed files with 5 additions and 4 deletions Side-by-side Diff

drivers/isdn/i4l/isdn_ttyfax.c
... ... @@ -906,7 +906,8 @@
906 906 sprintf(rs, "\r\n0-2");
907 907 isdn_tty_at_cout(rs, info);
908 908 } else {
909   - if ((f->phase != ISDN_FAX_PHASE_D) || (!info->faxonline & 1))
  909 + if ((f->phase != ISDN_FAX_PHASE_D) ||
  910 + (!(info->faxonline & 1)))
910 911 PARSE_ERROR1;
911 912 par = isdn_getnum(p);
912 913 if ((par < 0) || (par > 2))
drivers/isdn/isdnloop/isdnloop.c
... ... @@ -1289,7 +1289,7 @@
1289 1289 }
1290 1290 break;
1291 1291 case ISDN_CMD_CLREAZ:
1292   - if (!card->flags & ISDNLOOP_FLAGS_RUNNING)
  1292 + if (!(card->flags & ISDNLOOP_FLAGS_RUNNING))
1293 1293 return -ENODEV;
1294 1294 if (card->leased)
1295 1295 break;
... ... @@ -1333,7 +1333,7 @@
1333 1333 }
1334 1334 break;
1335 1335 case ISDN_CMD_SETL3:
1336   - if (!card->flags & ISDNLOOP_FLAGS_RUNNING)
  1336 + if (!(card->flags & ISDNLOOP_FLAGS_RUNNING))
1337 1337 return -ENODEV;
1338 1338 return 0;
1339 1339 default:
... ... @@ -1380,7 +1380,7 @@
1380 1380 isdnloop_card *card = isdnloop_findcard(id);
1381 1381  
1382 1382 if (card) {
1383   - if (!card->flags & ISDNLOOP_FLAGS_RUNNING)
  1383 + if (!(card->flags & ISDNLOOP_FLAGS_RUNNING))
1384 1384 return -ENODEV;
1385 1385 return (isdnloop_writecmd(buf, len, 1, card));
1386 1386 }