Re: [PATCH v2] staging: gdm724x: Fix DMA from stack
From: Greg KH
Date: Wed Feb 10 2021 - 03:07:58 EST
On Wed, Feb 10, 2021 at 01:31:34PM +0530, Amey Narkhede wrote:
> Stack allocated buffers cannot be used for DMA
> on all architectures so allocate hci_packet buffer
> using kzalloc().
>
> Signed-off-by: Amey Narkhede <ameynarkhede03@xxxxxxxxx>
> ---
> Changes in v2:
> - Fixed build warning
> - Fixed memory leak using kfree
>
> drivers/staging/gdm724x/gdm_usb.c | 9 +++++++--
> 1 file changed, 7 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/staging/gdm724x/gdm_usb.c b/drivers/staging/gdm724x/gdm_usb.c
> index dc4da66c3..c4a9b90c5 100644
> --- a/drivers/staging/gdm724x/gdm_usb.c
> +++ b/drivers/staging/gdm724x/gdm_usb.c
> @@ -56,11 +56,15 @@ static int gdm_usb_recv(void *priv_dev,
>
> static int request_mac_address(struct lte_udev *udev)
> {
> - u8 buf[16] = {0,};
> - struct hci_packet *hci = (struct hci_packet *)buf;
> + u8 *buf;
> + struct hci_packet *hci;
> struct usb_device *usbdev = udev->usbdev;
> int actual;
> int ret = -1;
> + buf = kzalloc(16, GFP_KERNEL);
checkpatch did not complain about this?
And why do you need 'buf' anymore now? Why not just allocate hci and
pass that to the request instead? Saves you an extra cast and an extra
pointer.
thanks,
greg k-h