lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Tue, 23 Dec 2008 12:39:38 +0100 From: Jens Axboe <jens.axboe@...cle.com> To: Hugh Dickins <hugh@...itas.com> Cc: Andrew Morton <akpm@...ux-foundation.org>, Stephen Rothwell <sfr@...b.auug.org.au>, linux-kernel@...r.kernel.org Subject: Re: [PATCH next] bio: zero inlined bio_vec On Tue, Dec 23 2008, Hugh Dickins wrote: > On Tue, 23 Dec 2008, Jens Axboe wrote: > > On Tue, Dec 23 2008, Jens Axboe wrote: > > > > > > That is, it iterates *bio_orig but indexes bio since it knows it has the > > > same number of segments. So this code is the odd one out, I'd be > > > surprised if we had more such cases. And since it would be nice to get > > > rid of the need to memset in general, can you try with the below patch? > > > > Nope, that still wont be enough, since we leave entries 0..i-1 > > uninitialized. Lets just do this instead. > > Yes, that second version worked for me. But if __blk_queue_bounce() > is indeed the odd one out (likely but not certain), then the extension > below makes more sense - I don't like how your bio.c returns a cleared > bio_vec in some cases but not in others. This is running fine for me > on my test machines, but my test coverage is probably very poor (am I > ever using more than the inlined bio_vec?), and I've not really tried > to understand all the ways through bvec_alloc_bs(). > > Hugh > > --- a/fs/bio.c > +++ b/fs/bio.c > @@ -180,7 +180,7 @@ struct bio_vec *bvec_alloc_bs(gfp_t gfp_ > * kzalloc() for the exact number of vecs right away. > */ > if (!bs) > - bvl = kzalloc(nr * sizeof(struct bio_vec), gfp_mask); > + bvl = kmalloc(nr * sizeof(struct bio_vec), gfp_mask); > > /* > * see comment near bvec_array define! > @@ -237,9 +237,6 @@ fallback: > } > } > > - if (bvl) > - memset(bvl, 0, bvec_nr_vecs(*idx) * sizeof(struct bio_vec)); > - > return bvl; > } I agree, those should be killed too. It's why I didn't want to rely on memset for fixing your issue :-) I'll merge the bounce.c fix into the original patch. -- Jens Axboe -- 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