aboutsummaryrefslogtreecommitdiffstats
path: root/net/atm/clip.c
diff options
context:
space:
mode:
authorOlof Johansson <olof@lixom.net>2012-03-08 09:27:07 -0800
committerOlof Johansson <olof@lixom.net>2012-03-08 09:27:07 -0800
commita58f67e70a6cad021ceebd1c8919b898dd5d5de3 (patch)
tree78cb630cb31a8cbec17463f9acc0f766707c232f /net/atm/clip.c
parent4c6c826b22da9f6408b6bc6939a92aa0be838488 (diff)
parent46e446db4fb2cdb2f1bc69d3981fa23738a42835 (diff)
downloadkernel_goldelico_gta04-a58f67e70a6cad021ceebd1c8919b898dd5d5de3.zip
kernel_goldelico_gta04-a58f67e70a6cad021ceebd1c8919b898dd5d5de3.tar.gz
kernel_goldelico_gta04-a58f67e70a6cad021ceebd1c8919b898dd5d5de3.tar.bz2
Merge branch 'dt' of git://github.com/hzhuang1/linux into next/dt
* 'dt' of git://github.com/hzhuang1/linux: (6 commits) Document: devicetree: add OF documents for arch-mmp ARM: dts: append DTS file of pxa168 ARM: mmp: append OF support on pxa168 ARM: mmp: enable rtc clk in pxa168 i2c: pxa: add OF support serial: pxa: add OF support (plus update to v3.3-rc6)
Diffstat (limited to 'net/atm/clip.c')
-rw-r--r--net/atm/clip.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/net/atm/clip.c b/net/atm/clip.c
index c12c258..127fe70 100644
--- a/net/atm/clip.c
+++ b/net/atm/clip.c
@@ -46,8 +46,8 @@
static struct net_device *clip_devs;
static struct atm_vcc *atmarpd;
-static struct neigh_table clip_tbl;
static struct timer_list idle_timer;
+static const struct neigh_ops clip_neigh_ops;
static int to_atmarpd(enum atmarp_ctrl_type type, int itf, __be32 ip)
{
@@ -123,6 +123,8 @@ static int neigh_check_cb(struct neighbour *n)
struct atmarp_entry *entry = neighbour_priv(n);
struct clip_vcc *cv;
+ if (n->ops != &clip_neigh_ops)
+ return 0;
for (cv = entry->vccs; cv; cv = cv->next) {
unsigned long exp = cv->last_use + cv->idle_timeout;
@@ -154,10 +156,10 @@ static int neigh_check_cb(struct neighbour *n)
static void idle_timer_check(unsigned long dummy)
{
- write_lock(&clip_tbl.lock);
- __neigh_for_each_release(&clip_tbl, neigh_check_cb);
+ write_lock(&arp_tbl.lock);
+ __neigh_for_each_release(&arp_tbl, neigh_check_cb);
mod_timer(&idle_timer, jiffies + CLIP_CHECK_INTERVAL * HZ);
- write_unlock(&clip_tbl.lock);
+ write_unlock(&arp_tbl.lock);
}
static int clip_arp_rcv(struct sk_buff *skb)