Re: DAC960 crash dequeueing request

From: Andrew Morton (akpm@digeo.com)
Date: Wed Jun 04 2003 - 17:08:49 EST


Dave Olien wrote:
>
> In linux 2.5.70, with no patches applied, we've had one BUG of the form:
>
> kernel BUG at include/linux/blkdev.h:407!
>

The below should fix it.

diff -puN drivers/block/deadline-iosched.c~deadline-hash-removal-fix drivers/block/deadline-iosched.c
--- 25/drivers/block/deadline-iosched.c~deadline-hash-removal-fix 2003-06-04 00:50:36.000000000 -0700
+++ 25-akpm/drivers/block/deadline-iosched.c 2003-06-04 00:50:36.000000000 -0700
@@ -121,6 +121,15 @@ static inline void deadline_del_drq_hash
                 __deadline_del_drq_hash(drq);
 }
 
+static void
+deadline_remove_merge_hints(request_queue_t *q, struct deadline_rq *drq)
+{
+ deadline_del_drq_hash(drq);
+
+ if (q->last_merge == &drq->request->queuelist)
+ q->last_merge = NULL;
+}
+
 static inline void
 deadline_add_drq_hash(struct deadline_data *dd, struct deadline_rq *drq)
 {
@@ -310,7 +319,7 @@ static void deadline_remove_request(requ
                 struct deadline_data *dd = q->elevator.elevator_data;
 
                 list_del_init(&drq->fifo);
- deadline_del_drq_hash(drq);
+ deadline_remove_merge_hints(q, drq);
                 deadline_del_drq_rb(dd, drq);
         }
 }

_
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Sat Jun 07 2003 - 22:00:25 EST