]> git.baikalelectronics.ru Git - kernel.git/commit
scsi: don't BUG_ON() empty DMA transfers
authorJohannes Thumshirn <jthumshirn@suse.de>
Tue, 31 Jan 2017 09:16:00 +0000 (10:16 +0100)
committerLinus Torvalds <torvalds@linux-foundation.org>
Sun, 19 Feb 2017 17:49:15 +0000 (09:49 -0800)
commit593b4992d7c9f8eb198c6330f3a1986e7824426e
treef66560ae05fd7b68c20b687d4f08981eb810ab80
parent0b43a1e8ed658abd4ffd49c82609624ef9a625a0
scsi: don't BUG_ON() empty DMA transfers

Don't crash the machine just because of an empty transfer. Use WARN_ON()
combined with returning an error.

Found by Dmitry Vyukov and syzkaller.

[ Changed to "WARN_ON_ONCE()". Al has a patch that should fix the root
  cause, but a BUG_ON() is not acceptable in any case, and a WARN_ON()
  might still be a cause of excessive log spamming.

  NOTE! If this warning ever triggers, we may end up leaking resources,
  since this doesn't bother to try to clean the command up. So this
  WARN_ON_ONCE() triggering does imply real problems. But BUG_ON() is
  much worse.

  People really need to stop using BUG_ON() for "this shouldn't ever
  happen". It makes pretty much any bug worse.     - Linus ]

Signed-off-by: Johannes Thumshirn <jthumshirn@suse.de>
Reported-by: Dmitry Vyukov <dvyukov@google.com>
Cc: James Bottomley <jejb@linux.vnet.ibm.com>
Cc: Al Viro <viro@zeniv.linux.org.uk>
Cc: stable@kernel.org
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
drivers/scsi/scsi_lib.c