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
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <49CB3765.4070406@panasas.com>
Date:	Thu, 26 Mar 2009 10:05:57 +0200
From:	Boaz Harrosh <bharrosh@...asas.com>
To:	Tejun Heo <htejun@...il.com>
CC:	bzolnier@...il.com, linux-kernel@...r.kernel.org, axboe@...nel.dk,
	linux-ide@...r.kernel.org
Subject: Re: [PATCH 03/14] block: implement blk_rq_map_kern_prealloc()

On 03/26/2009 09:42 AM, Tejun Heo wrote:
> Hello,
> 
> A few issues.
> 
> Tejun Heo wrote:
>>> Perhaps you could reorder the code below a bit?
>>>
>>> My proposal is:
>>> * blk_rq_map_kern_prealloc => is simplified to be
>>>     int blk_rq_map_bio(struct request_queue *q, struct request *rq,
>>> 		       struct bio *bio);
> 
> The thing is that the prealloc variant should be allowed to be called
> from IRQ context and blk_queue_bounce() shouldn't be called.
> Hmmm... well, the caller is supposed to know what it's doing and maybe
> we can just add a comment that it shouldn't be called with buffers
> which might get bounced from IRQ context.
> 

Hmm that is a problem. I would suggest a flag or a check. My bios come
from VFS they need bouncing.

Can you think of a solution?

We could just call blk_queue_bounce(). IRQ callers need to make sure their
buffers don't need bouncing anyway, so there is no such bug right? If a programmer
gets it wrong he will get a BUG check that tells him that.

>>> * The extra checks currently inside blk_rq_map_kern_prealloc are moved
>>>   to bio_map_kern_prealloc()
>>>
>>> * Users call bio_map_kern_prealloc() directly and then use blk_rq_map_bio()
>>>   in a two stage process.
> 
> This breaks consistency with blk_rq_map_*() family of functions.  Do
> you have a plan to make them all consistent?  I think we really need
> to maintain API consistency.
> 

I agree, that is why I called it blk_make_request originally. But this is not good
for you since your request is pre-allocated as well as the bio.

It needs a different name, blk_rq_set_bio(), I don't know do you have any ideas?

> Thanks.
> 

Thanks

Boaz


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

Powered by Openwall GNU/*/Linux Powered by OpenVZ