On Thu, Nov 14, 2013 at 12:31:16PM -0800, Sarah Sharp wrote:
> Hi Xenia,
> 
> Sorry for the really late review on this.
> 
> On Mon, Aug 26, 2013 at 11:29:49PM +0300, Xenia Ragiadakou wrote:
> > This patch removes the to_pci_dev() conversion performed to generic struct
> > device since it is not actually useful (the pointer to the generic device
> > can be used directly rather through a conversion to pci_dev) and it is pci
> > bus specific.
> 
> Good catch!  I think the code only works on non-PCI hosts because it's
> just pointer math that takes the address of the pci_dev and then uses it
> to compute the underlying device pointer, and the code doesn't
> dereference the pci_dev structure pointer.
> 
> The patch shouldn't change the current behavior, so I'll queue it for
> usb-next and 3.14 instead of 3.13.

Hmm, this doesn't apply to my for-usb-next-queue branch anymore, so I
will need you resend this.

Thanks,
Sarah Sharp

> > Signed-off-by: Xenia Ragiadakou <[email protected]>
> > ---
> >  drivers/usb/host/xhci-mem.c | 20 ++++++++++----------
> >  1 file changed, 10 insertions(+), 10 deletions(-)
> > 
> > diff --git a/drivers/usb/host/xhci-mem.c b/drivers/usb/host/xhci-mem.c
> > index 6dc5c8b..f201990 100644
> > --- a/drivers/usb/host/xhci-mem.c
> > +++ b/drivers/usb/host/xhci-mem.c
> > @@ -432,10 +432,10 @@ static void xhci_free_stream_ctx(struct xhci_hcd 
> > *xhci,
> >             unsigned int num_stream_ctxs,
> >             struct xhci_stream_ctx *stream_ctx, dma_addr_t dma)
> >  {
> > -   struct pci_dev *pdev = to_pci_dev(xhci_to_hcd(xhci)->self.controller);
> > +   struct device *dev = xhci_to_hcd(xhci)->self.controller;
> >  
> >     if (num_stream_ctxs > MEDIUM_STREAM_ARRAY_SIZE)
> > -           dma_free_coherent(&pdev->dev,
> > +           dma_free_coherent(dev,
> >                             sizeof(struct xhci_stream_ctx)*num_stream_ctxs,
> >                             stream_ctx, dma);
> >     else if (num_stream_ctxs <= SMALL_STREAM_ARRAY_SIZE)
> > @@ -460,10 +460,10 @@ static struct xhci_stream_ctx 
> > *xhci_alloc_stream_ctx(struct xhci_hcd *xhci,
> >             unsigned int num_stream_ctxs, dma_addr_t *dma,
> >             gfp_t mem_flags)
> >  {
> > -   struct pci_dev *pdev = to_pci_dev(xhci_to_hcd(xhci)->self.controller);
> > +   struct device *dev = xhci_to_hcd(xhci)->self.controller;
> >  
> >     if (num_stream_ctxs > MEDIUM_STREAM_ARRAY_SIZE)
> > -           return dma_alloc_coherent(&pdev->dev,
> > +           return dma_alloc_coherent(dev,
> >                             sizeof(struct xhci_stream_ctx)*num_stream_ctxs,
> >                             dma, mem_flags);
> >     else if (num_stream_ctxs <= SMALL_STREAM_ARRAY_SIZE)
> > @@ -1615,7 +1615,7 @@ static void scratchpad_free(struct xhci_hcd *xhci)
> >  {
> >     int num_sp;
> >     int i;
> > -   struct pci_dev  *pdev = to_pci_dev(xhci_to_hcd(xhci)->self.controller);
> > +   struct device *dev = xhci_to_hcd(xhci)->self.controller;
> >  
> >     if (!xhci->scratchpad)
> >             return;
> > @@ -1623,13 +1623,13 @@ static void scratchpad_free(struct xhci_hcd *xhci)
> >     num_sp = HCS_MAX_SCRATCHPAD(xhci->hcs_params2);
> >  
> >     for (i = 0; i < num_sp; i++) {
> > -           dma_free_coherent(&pdev->dev, xhci->page_size,
> > +           dma_free_coherent(dev, xhci->page_size,
> >                                 xhci->scratchpad->sp_buffers[i],
> >                                 xhci->scratchpad->sp_dma_buffers[i]);
> >     }
> >     kfree(xhci->scratchpad->sp_dma_buffers);
> >     kfree(xhci->scratchpad->sp_buffers);
> > -   dma_free_coherent(&pdev->dev, num_sp * sizeof(u64),
> > +   dma_free_coherent(dev, num_sp * sizeof(u64),
> >                         xhci->scratchpad->sp_array,
> >                         xhci->scratchpad->sp_dma);
> >     kfree(xhci->scratchpad);
> > @@ -1691,7 +1691,7 @@ void xhci_free_command(struct xhci_hcd *xhci,
> >  
> >  void xhci_mem_cleanup(struct xhci_hcd *xhci)
> >  {
> > -   struct pci_dev  *pdev = to_pci_dev(xhci_to_hcd(xhci)->self.controller);
> > +   struct device   *dev = xhci_to_hcd(xhci)->self.controller;
> >     struct dev_info *dev_info, *next;
> >     struct xhci_cd  *cur_cd, *next_cd;
> >     unsigned long   flags;
> > @@ -1701,7 +1701,7 @@ void xhci_mem_cleanup(struct xhci_hcd *xhci)
> >     /* Free the Event Ring Segment Table and the actual Event Ring */
> >     size = sizeof(struct xhci_erst_entry)*(xhci->erst.num_entries);
> >     if (xhci->erst.entries)
> > -           dma_free_coherent(&pdev->dev, size,
> > +           dma_free_coherent(dev, size,
> >                             xhci->erst.entries, xhci->erst.erst_dma_addr);
> >     xhci->erst.entries = NULL;
> >     xhci_dbg_trace(xhci, trace_xhci_dbg_init, "Freed ERST");
> > @@ -1749,7 +1749,7 @@ void xhci_mem_cleanup(struct xhci_hcd *xhci)
> >                     "Freed medium stream array pool");
> >  
> >     if (xhci->dcbaa)
> > -           dma_free_coherent(&pdev->dev, sizeof(*xhci->dcbaa),
> > +           dma_free_coherent(dev, sizeof(*xhci->dcbaa),
> >                             xhci->dcbaa, xhci->dcbaa->dma);
> >     xhci->dcbaa = NULL;
> >  
> > -- 
> > 1.8.3.4
> > 
> > --
> > To unsubscribe from this list: send the line "unsubscribe linux-usb" in
> > the body of a message to [email protected]
> > More majordomo info at  http://vger.kernel.org/majordomo-info.html
> --
> To unsubscribe from this list: send the line "unsubscribe linux-usb" in
> the body of a message to [email protected]
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to