lkml.org 
[lkml]   [2002]   [Jul]   [24]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: please DON'T run 2.5.27 with IDE!

    On Wed, 24 Jul 2002, Jens Axboe wrote:

    > On Wed, Jul 24 2002, Bartlomiej Zolnierkiewicz wrote:
    > > > void blk_start_queue(request_queue_t *q)
    > > > {
    > > > if (test_bit(QUEUE_FLAG_STOPPED, &q->queue_flags)) {
    > > > unsigned long flags;
    > > >
    > > > ================== possigle race here for qeue_flags BTW.
    > > >
    > > > spin_lock_irqsave(q->queue_lock, flags);
    > > > clear_bit(QUEUE_FLAG_STOPPED, &q->queue_flags);
    > > >
    > > > if (!elv_queue_empty(q))
    > > > q->request_fn(q);
    > > > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    > > > If we call it from within request_fn then if this isn't recursion on the
    > > > kernel stack then I don't know...
    > >
    > > You really don't know.
    > >
    > > And funny thing is I have diffirent blk_start_queue() function in my tree
    > > (2.5.27) ? Without described above race and without possibilty of
    > > recursion...
    > >
    > > 2.5.27:drivers/block/ll_rw_blk.c
    > > void blk_start_queue(request_queue_t *q)
    > > {
    > > if (test_and_clear_bit(QUEUE_FLAG_STOPPED, &q->queue_flags)) {
    > > unsigned long flags;
    > >
    > > spin_lock_irqsave(q->queue_lock, flags);
    > > if (!elv_queue_empty(q))
    > > q->request_fn(q);
    > > spin_unlock_irqrestore(q->queue_lock, flags);
    > > }
    > > }
    >
    > Yep, the version Martin posted must be really old.

    It's worst. Martin's version exists only in his tree (mind?).
    I checked back revision and blk_start_queue() was inroduced in 2.5.19
    and it was the correct one.

    > --
    > Jens Axboe


    -
    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/

    \
     
     \ /
      Last update: 2005-03-22 13:27    [W:0.049 / U:0.568 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site