[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <alpine.LFD.0.999.0710171114320.26902@woody.linux-foundation.org>
Date: Wed, 17 Oct 2007 11:18:36 -0700 (PDT)
From: Linus Torvalds <torvalds@...ux-foundation.org>
To: Jens Axboe <jens.axboe@...cle.com>
cc: Ingo Molnar <mingo@...e.hu>, linux-kernel@...r.kernel.org,
Andrew Morton <akpm@...ux-foundation.org>
Subject: Re: [bug] block subsystem related crash with latest -git
On Wed, 17 Oct 2007, Jens Axboe wrote:
> >
> > So avoiding the "sg_next()" on the last entry is pointless.
>
> Yeah, I didn't quite understand why if sg was valid, why dereferencing
> *(sg + 1)->page would crap out :/
Actually, I take that back. If 'sg' is the last entry in a *non*linked
scatter-gather list (ie we don't use the last entry as a link, we actually
use it as a real SG entry), then "sg_next(sg)" will indeed access past the
end of the whole allocated array, and will access one past the end.
And with page-alloc debugging, that *will* blow up.
So I think your change to use "sg_next()" only when you actually need a
next pointer is the correct one after all.
Linus
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists