Re: Clarification of allowed context for crypto routines

From: Andrey Borzenkov
Date: Tue Jan 27 2009 - 13:01:38 EST


On 24 ÑÐÐÐÑÑ 2009 12:32:45 Herbert Xu wrote:
> Andrey Borzenkov <arvidjaar@xxxxxxx> wrote:
> > On 24 ÑÐÐÐÑÑ 2009 01:31:50 Herbert Xu wrote:
> >> 2) The highmem primitives we use are currently softirq only. We
> >> could make them work for hardirq as well, but because of 1) we
> >> didn't.
> >
> > Could you point to example of such primitive in code under crypto?
>
> Grep for kmap under crypto.
>

I checked and

- all usage is kmap_atomic; which implies it should be technically safe
(not advisable) to use in interrupt context as well

- as far as I understand, if it could be kmap() that could sleep, it is
unsafe to use in tasklet anyway?

Please bear with me. The problem with kernel is lack of any
comprehensive documentation; so almost the only way to learn is by
example - get code that is known to work and has at least /some/
documentation; and assume that what it does is correct. In this case
incomplete or misleading documentation leads to adopting incorrect usage
lately ... in this case I do not argue about code under crypto; but
rather try to learn how and when I can safely use this code in my
driver.

So I still miss difference between interrupt context and bottom half
(i.e. tasklet) that is made in documentation. Sorry :)

Attachment: signature.asc
Description: This is a digitally signed message part.