Merge tag 'microblaze-v6.8' of git://git.monstr.eu/linux-2.6-microblaze
[linux-2.6-block.git] / block / badblocks.c
index fc92d4e18aa3c0557d2be62eaa1f9bcc37139bf9..db4ec8b9b2a8c230f8bc134c82124e9a5236cc88 100644 (file)
@@ -1312,12 +1312,14 @@ re_check:
        prev = prev_badblocks(bb, &bad, hint);
 
        /* start after all badblocks */
-       if ((prev + 1) >= bb->count && !overlap_front(bb, prev, &bad)) {
+       if ((prev >= 0) &&
+           ((prev + 1) >= bb->count) && !overlap_front(bb, prev, &bad)) {
                len = sectors;
                goto update_sectors;
        }
 
-       if (overlap_front(bb, prev, &bad)) {
+       /* Overlapped with front badblocks record */
+       if ((prev >= 0) && overlap_front(bb, prev, &bad)) {
                if (BB_ACK(p[prev]))
                        acked_badblocks++;
                else