git.openpandora.org
/
pandora-kernel.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branch 'next-i2c' of git://git.fluff.org/bjdooks/linux
[pandora-kernel.git]
/
drivers
/
net
/
cxgb3
/
cxgb3_offload.c
diff --git
a/drivers/net/cxgb3/cxgb3_offload.c
b/drivers/net/cxgb3/cxgb3_offload.c
index
9db9068
..
805076c
100644
(file)
--- a/
drivers/net/cxgb3/cxgb3_offload.c
+++ b/
drivers/net/cxgb3/cxgb3_offload.c
@@
-34,7
+34,7
@@
#include <linux/slab.h>
#include <net/neighbour.h>
#include <linux/notifier.h>
#include <linux/slab.h>
#include <net/neighbour.h>
#include <linux/notifier.h>
-#include <
asm
/atomic.h>
+#include <
linux
/atomic.h>
#include <linux/proc_fs.h>
#include <linux/if_vlan.h>
#include <net/netevent.h>
#include <linux/proc_fs.h>
#include <linux/if_vlan.h>
#include <net/netevent.h>
@@
-176,16
+176,13
@@
static struct net_device *get_iff_from_mac(struct adapter *adapter,
int i;
for_each_port(adapter, i) {
int i;
for_each_port(adapter, i) {
- struct vlan_group *grp;
struct net_device *dev = adapter->port[i];
struct net_device *dev = adapter->port[i];
- const struct port_info *p = netdev_priv(dev);
if (!memcmp(dev->dev_addr, mac, ETH_ALEN)) {
if (vlan && vlan != VLAN_VID_MASK) {
if (!memcmp(dev->dev_addr, mac, ETH_ALEN)) {
if (vlan && vlan != VLAN_VID_MASK) {
- grp = p->vlan_grp;
- dev = NULL;
- if (grp)
- dev = vlan_group_get_device(grp, vlan);
+ rcu_read_lock();
+ dev = __vlan_find_dev_deep(dev, vlan);
+ rcu_read_unlock();
} else if (netif_is_bond_slave(dev)) {
while (dev->master)
dev = dev->master;
} else if (netif_is_bond_slave(dev)) {
while (dev->master)
dev = dev->master;
@@
-971,7
+968,7
@@
static int nb_callback(struct notifier_block *self, unsigned long event,
case (NETEVENT_REDIRECT):{
struct netevent_redirect *nr = ctx;
cxgb_redirect(nr->old, nr->new);
case (NETEVENT_REDIRECT):{
struct netevent_redirect *nr = ctx;
cxgb_redirect(nr->old, nr->new);
- cxgb_neigh_update(
nr->new->neighbour
);
+ cxgb_neigh_update(
dst_get_neighbour(nr->new)
);
break;
}
default:
break;
}
default:
@@
-1116,8
+1113,8
@@
static void cxgb_redirect(struct dst_entry *old, struct dst_entry *new)
struct l2t_entry *e;
struct t3c_tid_entry *te;
struct l2t_entry *e;
struct t3c_tid_entry *te;
- olddev =
old->neighbour
->dev;
- newdev =
new->neighbour
->dev;
+ olddev =
dst_get_neighbour(old)
->dev;
+ newdev =
dst_get_neighbour(new)
->dev;
if (!is_offloading(olddev))
return;
if (!is_offloading(newdev)) {
if (!is_offloading(olddev))
return;
if (!is_offloading(newdev)) {
@@
-1134,7
+1131,7
@@
static void cxgb_redirect(struct dst_entry *old, struct dst_entry *new)
}
/* Add new L2T entry */
}
/* Add new L2T entry */
- e = t3_l2t_get(tdev,
new->neighbour
, newdev);
+ e = t3_l2t_get(tdev,
dst_get_neighbour(new)
, newdev);
if (!e) {
printk(KERN_ERR "%s: couldn't allocate new l2t entry!\n",
__func__);
if (!e) {
printk(KERN_ERR "%s: couldn't allocate new l2t entry!\n",
__func__);