Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751098AbdLaVUr (ORCPT ); Sun, 31 Dec 2017 16:20:47 -0500 Received: from netrider.rowland.org ([192.131.102.5]:39009 "HELO netrider.rowland.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with SMTP id S1750854AbdLaVUq (ORCPT ); Sun, 31 Dec 2017 16:20:46 -0500 Date: Sun, 31 Dec 2017 16:20:45 -0500 (EST) From: Alan Stern X-X-Sender: stern@netrider.rowland.org To: Himanshu Jha cc: gregkh@linuxfoundation.org, , , , Subject: Re: [PATCH v2] USB: host: Use zeroing memory allocator rather than allocator/memset In-Reply-To: <1514664232-9654-1-git-send-email-himanshujha199640@gmail.com> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2538 Lines: 76 On Sun, 31 Dec 2017, Himanshu Jha wrote: > Use dma_zalloc_coherent for allocating zeroed > memory and remove unnecessary memset function. > > Done using Coccinelle. > Generated-by: scripts/coccinelle/api/alloc/kzalloc-simple.cocci > 0-day tested with no failures. > > Suggested-by: Luis R. Rodriguez > Signed-off-by: Himanshu Jha > --- > v2: > -align argumenst as they were before applying the SmPL rule. For the UHCI portion: Acked-by: Alan Stern But there is something pecular about the patch... > drivers/usb/host/uhci-hcd.c | 7 +++---- > drivers/usb/host/xhci-mem.c | 7 ++----- > 2 files changed, 5 insertions(+), 9 deletions(-) > > diff --git a/drivers/usb/host/uhci-hcd.c b/drivers/usb/host/uhci-hcd.c > index f5c9021..ac53398 100644 > --- a/drivers/usb/host/uhci-hcd.c > +++ b/drivers/usb/host/uhci-hcd.c > @@ -600,15 +600,14 @@ static int uhci_start(struct usb_hcd *hcd) > uhci->dentry = dentry; > #endif > > - uhci->frame = dma_alloc_coherent(uhci_dev(uhci), > - UHCI_NUMFRAMES * sizeof(*uhci->frame), > - &uhci->frame_dma_handle, GFP_KERNEL); > + uhci->frame = dma_zalloc_coherent(uhci_dev(uhci), > + UHCI_NUMFRAMES * sizeof(*uhci->frame), > + &uhci->frame_dma_handle, GFP_KERNEL); The second and third "changed" lines here actually are identical. What program would produce a diff file showing that they were changed? Alan Stern > if (!uhci->frame) { > dev_err(uhci_dev(uhci), > "unable to allocate consistent memory for frame list\n"); > goto err_alloc_frame; > } > - memset(uhci->frame, 0, UHCI_NUMFRAMES * sizeof(*uhci->frame)); > > uhci->frame_cpu = kcalloc(UHCI_NUMFRAMES, sizeof(*uhci->frame_cpu), > GFP_KERNEL); > diff --git a/drivers/usb/host/xhci-mem.c b/drivers/usb/host/xhci-mem.c > index 554a8a5..332420d 100644 > --- a/drivers/usb/host/xhci-mem.c > +++ b/drivers/usb/host/xhci-mem.c > @@ -1782,14 +1782,11 @@ int xhci_alloc_erst(struct xhci_hcd *xhci, > struct xhci_erst_entry *entry; > > size = sizeof(struct xhci_erst_entry) * evt_ring->num_segs; > - erst->entries = dma_alloc_coherent(xhci_to_hcd(xhci)->self.sysdev, > - size, > - &erst->erst_dma_addr, > - flags); > + erst->entries = dma_zalloc_coherent(xhci_to_hcd(xhci)->self.sysdev, > + size, &erst->erst_dma_addr, flags); > if (!erst->entries) > return -ENOMEM; > > - memset(erst->entries, 0, size); > erst->num_entries = evt_ring->num_segs; > > seg = evt_ring->first_seg; >