[PATCH] ide: Fix crash on repeated reset
Michal Miroslaw reported a problem (bugzilla #7023) where a user initiated reset while the IDE layer was already resetting the channel caused a crash, and provided a rough fix. This is a slightly cleaner version of the fix which tracks the reset state and blocks further reset requests while a reset is in progress. Note this is not a security issue - random end users can't access the ioctl in question anyway. Signed-off-by: Alan Cox <alan@redhat.com> Cc: Michal Miroslaw <mirq-linux@rere.qmqm.pl> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
@ -1364,6 +1364,11 @@ int generic_ide_ioctl(ide_drive_t *drive, struct file *file, struct block_device
|
||||
|
||||
spin_lock_irqsave(&ide_lock, flags);
|
||||
|
||||
if (HWGROUP(drive)->resetting) {
|
||||
spin_unlock_irqrestore(&ide_lock, flags);
|
||||
return -EBUSY;
|
||||
}
|
||||
|
||||
ide_abort(drive, "drive reset");
|
||||
|
||||
BUG_ON(HWGROUP(drive)->handler);
|
||||
|
Reference in New Issue
Block a user