diff options
| author | Russell King <rmk@dyn-67.arm.linux.org.uk> | 2008-04-19 17:17:34 +0100 |
|---|---|---|
| committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2008-04-19 17:17:34 +0100 |
| commit | cf816ecb533ab96b883dfdc0db174598b5b5c4d2 (patch) | |
| tree | 1b7705db288ae2917105e624b01fdf81e0882bf1 /drivers/net/cxgb3 | |
| parent | adf6d34e460387ee3e8f1e1875d52bff51212c7d (diff) | |
| parent | 15f7d677ccff6f0f5de8a1ee43a792567e9f9de9 (diff) | |
Merge branch 'merge-fixes' into devel
Diffstat (limited to 'drivers/net/cxgb3')
| -rw-r--r-- | drivers/net/cxgb3/cxgb3_main.c | 4 | ||||
| -rw-r--r-- | drivers/net/cxgb3/cxgb3_offload.c | 22 | ||||
| -rw-r--r-- | drivers/net/cxgb3/l2t.c | 2 |
3 files changed, 22 insertions, 6 deletions
diff --git a/drivers/net/cxgb3/cxgb3_main.c b/drivers/net/cxgb3/cxgb3_main.c index fd2e05bbb903..05e5f59e87fa 100644 --- a/drivers/net/cxgb3/cxgb3_main.c +++ b/drivers/net/cxgb3/cxgb3_main.c @@ -1014,8 +1014,8 @@ static int offload_open(struct net_device *dev) adapter->port[0]->mtu : 0xffff); init_smt(adapter); - /* Never mind if the next step fails */ - sysfs_create_group(&tdev->lldev->dev.kobj, &offload_attr_group); + if (sysfs_create_group(&tdev->lldev->dev.kobj, &offload_attr_group)) + dev_dbg(&dev->dev, "cannot create sysfs group\n"); /* Call back all registered clients */ cxgb3_add_clients(tdev); diff --git a/drivers/net/cxgb3/cxgb3_offload.c b/drivers/net/cxgb3/cxgb3_offload.c index 901c824bfe6d..ff9c013ce535 100644 --- a/drivers/net/cxgb3/cxgb3_offload.c +++ b/drivers/net/cxgb3/cxgb3_offload.c @@ -833,10 +833,26 @@ static int do_trace(struct t3cdev *dev, struct sk_buff *skb) return 0; } +/* + * That skb would better have come from process_responses() where we abuse + * ->priority and ->csum to carry our data. NB: if we get to per-arch + * ->csum, the things might get really interesting here. + */ + +static inline u32 get_hwtid(struct sk_buff *skb) +{ + return ntohl((__force __be32)skb->priority) >> 8 & 0xfffff; +} + +static inline u32 get_opcode(struct sk_buff *skb) +{ + return G_OPCODE(ntohl((__force __be32)skb->csum)); +} + static int do_term(struct t3cdev *dev, struct sk_buff *skb) { - unsigned int hwtid = ntohl(skb->priority) >> 8 & 0xfffff; - unsigned int opcode = G_OPCODE(ntohl(skb->csum)); + unsigned int hwtid = get_hwtid(skb); + unsigned int opcode = get_opcode(skb); struct t3c_tid_entry *t3c_tid; t3c_tid = lookup_tid(&(T3C_DATA(dev))->tid_maps, hwtid); @@ -914,7 +930,7 @@ int process_rx(struct t3cdev *dev, struct sk_buff **skbs, int n) { while (n--) { struct sk_buff *skb = *skbs++; - unsigned int opcode = G_OPCODE(ntohl(skb->csum)); + unsigned int opcode = get_opcode(skb); int ret = cpl_handlers[opcode] (dev, skb); #if VALIDATE_TID diff --git a/drivers/net/cxgb3/l2t.c b/drivers/net/cxgb3/l2t.c index 865faee53e17..f510140885ae 100644 --- a/drivers/net/cxgb3/l2t.c +++ b/drivers/net/cxgb3/l2t.c @@ -407,7 +407,7 @@ found: } else if (neigh->nud_state & (NUD_CONNECTED|NUD_STALE)) setup_l2e_send_pending(dev, NULL, e); } else { - e->state = neigh_is_connected(neigh) ? + e->state = neigh->nud_state & NUD_CONNECTED ? L2T_STATE_VALID : L2T_STATE_STALE; if (memcmp(e->dmac, neigh->ha, 6)) setup_l2e_send_pending(dev, NULL, e); |
