Re: DAC960 crash dequeueing request

Andrew Morton (akpm@digeo.com)
Wed, 04 Jun 2003 15:08:49 -0700


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/