On Thu, 2004-09-23 at 00:34, Hal Rosenstock wrote:
> On Wed, 2004-09-22 at 18:37, Sean Hefty wrote:
> > I'll start submitting comments in the form of patches.  
> > I'll try to keep each patch as small 
> > and contained as possible.  
> 
> OK. Thanks.
> 
> > This first one is fairly easy.  
> > I didn't see where struct ib_mad_buf was used.  
> 
> It's needed in the PCI mapping/unmapping. In i386, PPC, and some
> other architectures, the mapping is a nop so it might appear unused.
> I don't think the void *buf pointer is needed.
> 
> > If it's needed, can it be merged directly into ib_mad_private_header?
> 
> Sure. I will post a patch for this.

Here's the patch to fix PCI receive mapping:

Index: ib_mad_priv.h
===================================================================
--- ib_mad_priv.h       (revision 879)
+++ ib_mad_priv.h       (working copy)
@@ -77,15 +77,10 @@
 #define MAX_MGMT_VERSION       8
 
 
-struct ib_mad_buf {
-       void *mad_buf;
-       DECLARE_PCI_UNMAP_ADDR(mapping)
-};
-
 struct ib_mad_private_header {
        struct ib_mad_recv_wc recv_wc; /* must be first member (for now !!!)
*/
        struct ib_mad_recv_buf recv_buf;
-       struct ib_mad_buf buf;
+       DECLARE_PCI_UNMAP_ADDR(mapping)
 } __attribute__ ((packed));
 
 struct ib_mad_private {
Index: ib_mad.c
===================================================================
--- ib_mad.c    (revision 879)
+++ ib_mad.c    (working copy)
@@ -719,7 +719,7 @@
        spin_unlock_irqrestore(&port_priv->recv_list_lock, flags);
 
        pci_unmap_single(port_priv->device->dma_device,
-                        pci_unmap_addr(&recv->buf, mapping),
+                        pci_unmap_addr(&recv->header, mapping),
                         sizeof(struct ib_mad_private) - sizeof(struct
ib_mad_private_header),
                         PCI_DMA_FROMDEVICE);
 
@@ -976,14 +976,14 @@
        port_priv->recv_posted_mad_count[convert_qpnum(qp->qp_num)]++;
        spin_unlock_irqrestore(&port_priv->recv_list_lock, flags);
 
-       pci_unmap_addr_set(&mad_priv->header.buf, mapping, sg_list.addr);
+       pci_unmap_addr_set(&mad_priv->header, mapping, sg_list.addr);
 
        /* Now, post receive WR */
        ret = ib_post_recv(qp, &recv_wr, &bad_recv_wr);
        if (ret) {
 
                pci_unmap_single(port_priv->device->dma_device,
-                                pci_unmap_addr(&mad_priv->header.buf, mapping),
+                                pci_unmap_addr(&mad_priv->header, mapping),
                                 sizeof *mad_priv - sizeof mad_priv->header,
                                 PCI_DMA_FROMDEVICE);
 


_______________________________________________
openib-general mailing list
[EMAIL PROTECTED]
http://openib.org/mailman/listinfo/openib-general

To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general

Reply via email to