diff options
author | Jeff Garzik <jgarzik@pobox.com> | 2005-10-28 12:17:52 -0400 |
---|---|---|
committer | Jeff Garzik <jgarzik@pobox.com> | 2005-10-28 12:17:52 -0400 |
commit | 90890687859ea658759e653c4e70ed7e9e1a6217 (patch) | |
tree | 9065b30bb189e16ef99b8b5a0d444558f8dc579f /net/atm/resources.c | |
parent | 2995bfb7855aabd493f840af361f3dd7d221caea (diff) | |
parent | 5fadd053d9bb4345ec6f405d24db4e7eb49cf81e (diff) | |
download | op-kernel-dev-90890687859ea658759e653c4e70ed7e9e1a6217.zip op-kernel-dev-90890687859ea658759e653c4e70ed7e9e1a6217.tar.gz |
Merge branch 'master'
Diffstat (limited to 'net/atm/resources.c')
-rw-r--r-- | net/atm/resources.c | 20 |
1 files changed, 15 insertions, 5 deletions
diff --git a/net/atm/resources.c b/net/atm/resources.c index a57a926..415d261 100644 --- a/net/atm/resources.c +++ b/net/atm/resources.c @@ -40,6 +40,7 @@ static struct atm_dev *__alloc_atm_dev(const char *type) dev->link_rate = ATM_OC3_PCR; spin_lock_init(&dev->lock); INIT_LIST_HEAD(&dev->local); + INIT_LIST_HEAD(&dev->lecs); return dev; } @@ -320,10 +321,12 @@ int atm_dev_ioctl(unsigned int cmd, void __user *arg) error = -EPERM; goto done; } - atm_reset_addr(dev); + atm_reset_addr(dev, ATM_ADDR_LOCAL); break; case ATM_ADDADDR: case ATM_DELADDR: + case ATM_ADDLECSADDR: + case ATM_DELLECSADDR: if (!capable(CAP_NET_ADMIN)) { error = -EPERM; goto done; @@ -335,14 +338,21 @@ int atm_dev_ioctl(unsigned int cmd, void __user *arg) error = -EFAULT; goto done; } - if (cmd == ATM_ADDADDR) - error = atm_add_addr(dev, &addr); + if (cmd == ATM_ADDADDR || cmd == ATM_ADDLECSADDR) + error = atm_add_addr(dev, &addr, + (cmd == ATM_ADDADDR ? + ATM_ADDR_LOCAL : ATM_ADDR_LECS)); else - error = atm_del_addr(dev, &addr); + error = atm_del_addr(dev, &addr, + (cmd == ATM_DELADDR ? + ATM_ADDR_LOCAL : ATM_ADDR_LECS)); goto done; } case ATM_GETADDR: - error = atm_get_addr(dev, buf, len); + case ATM_GETLECSADDR: + error = atm_get_addr(dev, buf, len, + (cmd == ATM_GETADDR ? + ATM_ADDR_LOCAL : ATM_ADDR_LECS)); if (error < 0) goto done; size = error; |