Skip to content

Commit

Permalink
W1: abort search early on on exit
Browse files Browse the repository at this point in the history
Early abort if the master driver or the hardware goes away in the middle
of a bus search operation.  The alternative is to spam the print buffer up
to 64*64 times with read errors in the case of USB.

Signed-off-by: David Fries <david@fries.net>
Signed-off-by: Evgeniy Polyakov <johnpol@2ka.mipt.ru>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
  • Loading branch information
David Fries authored and Linus Torvalds committed Oct 16, 2008
1 parent c30c9b1 commit 0d671b2
Showing 1 changed file with 5 additions and 0 deletions.
5 changes: 5 additions & 0 deletions drivers/w1/w1.c
Original file line number Diff line number Diff line change
Expand Up @@ -772,6 +772,11 @@ void w1_search(struct w1_master *dev, u8 search_type, w1_slave_found_callback cb
/* extract the direction taken & update the device number */
tmp64 = (triplet_ret >> 2);
rn |= (tmp64 << i);

if (test_bit(W1_MASTER_NEED_EXIT, &dev->flags)) {
printk(KERN_INFO "Abort w1_search (exiting)\n");
return;
}
}

if ( (triplet_ret & 0x03) != 0x03 ) {
Expand Down

0 comments on commit 0d671b2

Please sign in to comment.