Message ID | 8c273c9c41f51b34bb3115086f1d776895580637.1481575835.git.luto@kernel.org (mailing list archive) |
---|---|
State | Not Applicable |
Delegated to: | Herbert Xu |
Headers | show |
On Mon, Dec 12, 2016 at 12:52:45PM -0800, Andy Lutomirski wrote: > The driver put a constant buffer of all zeros on the stack and > pointed a scatterlist entry at it. This doesn't work with virtual > stacks. Make the buffer static to fix it. > > Cc: stable@vger.kernel.org # 4.9 only > Reported-by: Eric Biggers <ebiggers3@gmail.com> > Signed-off-by: Andy Lutomirski <luto@kernel.org> > --- > drivers/usb/wusbcore/crypto.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/usb/wusbcore/crypto.c b/drivers/usb/wusbcore/crypto.c > index 79451f7ef1b7..a7e007a0cd49 100644 > --- a/drivers/usb/wusbcore/crypto.c > +++ b/drivers/usb/wusbcore/crypto.c > @@ -216,7 +216,7 @@ static int wusb_ccm_mac(struct crypto_skcipher *tfm_cbc, > struct scatterlist sg[4], sg_dst; > void *dst_buf; > size_t dst_size; > - const u8 bzero[16] = { 0 }; > + static const u8 bzero[16] = { 0 }; Hm, can static memory handle DMA? That's a requirement of the USB stack, does this data later end up being sent down to a USB host controller? thanks, greg k-h -- To unsubscribe from this list: send the line "unsubscribe linux-crypto" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Mon, Dec 12, 2016 at 1:44 PM, Greg KH <gregkh@linuxfoundation.org> wrote: > On Mon, Dec 12, 2016 at 12:52:45PM -0800, Andy Lutomirski wrote: >> The driver put a constant buffer of all zeros on the stack and >> pointed a scatterlist entry at it. This doesn't work with virtual >> stacks. Make the buffer static to fix it. >> >> Cc: stable@vger.kernel.org # 4.9 only >> Reported-by: Eric Biggers <ebiggers3@gmail.com> >> Signed-off-by: Andy Lutomirski <luto@kernel.org> >> --- >> drivers/usb/wusbcore/crypto.c | 2 +- >> 1 file changed, 1 insertion(+), 1 deletion(-) >> >> diff --git a/drivers/usb/wusbcore/crypto.c b/drivers/usb/wusbcore/crypto.c >> index 79451f7ef1b7..a7e007a0cd49 100644 >> --- a/drivers/usb/wusbcore/crypto.c >> +++ b/drivers/usb/wusbcore/crypto.c >> @@ -216,7 +216,7 @@ static int wusb_ccm_mac(struct crypto_skcipher *tfm_cbc, >> struct scatterlist sg[4], sg_dst; >> void *dst_buf; >> size_t dst_size; >> - const u8 bzero[16] = { 0 }; >> + static const u8 bzero[16] = { 0 }; > > Hm, can static memory handle DMA? That's a requirement of the USB > stack, does this data later end up being sent down to a USB host > controller? I think it doesn't, but I'll switch it to use empty_zero_page instead. --Andy -- To unsubscribe from this list: send the line "unsubscribe linux-crypto" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/drivers/usb/wusbcore/crypto.c b/drivers/usb/wusbcore/crypto.c index 79451f7ef1b7..a7e007a0cd49 100644 --- a/drivers/usb/wusbcore/crypto.c +++ b/drivers/usb/wusbcore/crypto.c @@ -216,7 +216,7 @@ static int wusb_ccm_mac(struct crypto_skcipher *tfm_cbc, struct scatterlist sg[4], sg_dst; void *dst_buf; size_t dst_size; - const u8 bzero[16] = { 0 }; + static const u8 bzero[16] = { 0 }; u8 iv[crypto_skcipher_ivsize(tfm_cbc)]; size_t zero_padding;
The driver put a constant buffer of all zeros on the stack and pointed a scatterlist entry at it. This doesn't work with virtual stacks. Make the buffer static to fix it. Cc: stable@vger.kernel.org # 4.9 only Reported-by: Eric Biggers <ebiggers3@gmail.com> Signed-off-by: Andy Lutomirski <luto@kernel.org> --- drivers/usb/wusbcore/crypto.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)