Thread (6 messages) flat view 6 messages, 4 authors, 2019-01-08

Re: [PATCH v3] crypto: talitos - fix ablkcipher for CONFIG_VMAP_STACK

From: Christophe Leroy <hidden>
Date: 2019-01-07 17:06:24
Also in: linux-crypto, linux-iommu, lkml, stable


Le 04/01/2019 à 16:24, Horia Geanta a écrit :
On 1/4/2019 5:17 PM, Horia Geanta wrote:
quoted
On 12/21/2018 10:07 AM, Christophe Leroy wrote:
[snip]
quoted
IV cannot be on stack when CONFIG_VMAP_STACK is selected because the stack
cannot be DMA mapped anymore.
This looks better, thanks.
quoted
This patch copies the IV into the extended descriptor when iv is not
a valid linear address.
Though I am not sure the checks in place are enough.
quoted
Fixes: 4de9d0b547b9 ("crypto: talitos - Add ablkcipher algorithms")
Cc: stable@vger.kernel.org
Signed-off-by: Christophe Leroy <redacted>
---
  v3: Using struct edesc buffer.

  v2: Using per-request context.
[snip]
quoted
+	if (ivsize && !virt_addr_valid(iv))
+		alloc_len += ivsize;
[snip]
quoted
  
+	if (ivsize && !virt_addr_valid(iv))
A more precise condition would be (!is_vmalloc_addr || is_vmalloc_addr(iv))
Sorry for the typo, I meant:
(!virt_addr_valid(iv) || is_vmalloc_addr(iv))
As far as I know, virt_addr_valid() means the address is in the linear 
memory space. So it cannot be a vmalloc_addr if it is a linear space 
addr, can it ?

At least, it is that way on powerpc which is the arch embedding the 
talitos crypto engine. virt_addr_valid() means we are under max_pfn, 
while VMALLOC_START is above max_pfn.

Christophe
quoted
It matches the checks in debug_dma_map_single() helper, though I am not sure
they are enough to rule out all exceptions of DMA API.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help