]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - drivers/net/cxgb3/sge.c
Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
[linux-2.6-omap-h63xx.git] / drivers / net / cxgb3 / sge.c
index 87919419b707faf3107877181dd96ec0b8cd5938..d3a6e245f1ef16517cc567bab1332a6eb8e7e4a6 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005-2007 Chelsio, Inc. All rights reserved.
+ * Copyright (c) 2005-2008 Chelsio, Inc. All rights reserved.
  *
  * This software is available to you under a choice of one of two
  * licenses.  You may choose to be licensed under the terms of the GNU
@@ -549,16 +549,15 @@ static void *alloc_ring(struct pci_dev *pdev, size_t nelem, size_t elem_size,
 
        if (!p)
                return NULL;
-       if (sw_size) {
+       if (sw_size && metadata) {
                s = kcalloc(nelem, sw_size, GFP_KERNEL);
 
                if (!s) {
                        dma_free_coherent(&pdev->dev, len, p, *phys);
                        return NULL;
                }
-       }
-       if (metadata)
                *(void **)metadata = s;
+       }
        memset(p, 0, len);
        return p;
 }
@@ -1876,7 +1875,6 @@ static void rx_eth(struct adapter *adap, struct sge_rspq *rq,
 
        skb_pull(skb, sizeof(*p) + pad);
        skb->protocol = eth_type_trans(skb, adap->port[p->iff]);
-       skb->dev->last_rx = jiffies;
        pi = netdev_priv(skb->dev);
        if (pi->rx_csum_offload && p->csum_valid && p->csum == htons(0xffff) &&
            !p->fragment) {
@@ -2308,7 +2306,7 @@ next_fl:
 
 static inline int is_pure_response(const struct rsp_desc *r)
 {
-       u32 n = ntohl(r->flags) & (F_RSPD_ASYNC_NOTIF | F_RSPD_IMM_DATA_VALID);
+       __be32 n = r->flags & htonl(F_RSPD_ASYNC_NOTIF | F_RSPD_IMM_DATA_VALID);
 
        return (n | r->len_cq) == 0;
 }