aboutsummaryrefslogtreecommitdiffstats
path: root/net/atm/ioctl.c
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@g5.osdl.org>2005-09-29 08:56:47 -0700
committerLinus Torvalds <torvalds@g5.osdl.org>2005-09-29 08:56:47 -0700
commiteb693d2994eb762b2201aead31066265ab0be20b (patch)
tree424e1e7f3d272d0fd5888435176b386594ce121f /net/atm/ioctl.c
parent6dec3cf5cdb600f39b9eac3349f6bf50eab87731 (diff)
parent01d40f28b125e0a9aa0ec24642be67fc4c5dfaff (diff)
downloadkernel_samsung_smdk4412-eb693d2994eb762b2201aead31066265ab0be20b.zip
kernel_samsung_smdk4412-eb693d2994eb762b2201aead31066265ab0be20b.tar.gz
kernel_samsung_smdk4412-eb693d2994eb762b2201aead31066265ab0be20b.tar.bz2
Merge master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
Diffstat (limited to 'net/atm/ioctl.c')
-rw-r--r--net/atm/ioctl.c34
1 files changed, 26 insertions, 8 deletions
diff --git a/net/atm/ioctl.c b/net/atm/ioctl.c
index d89056e..a150198 100644
--- a/net/atm/ioctl.c
+++ b/net/atm/ioctl.c
@@ -105,17 +105,35 @@ int vcc_ioctl(struct socket *sock, unsigned int cmd, unsigned long arg)
if (!error)
sock->state = SS_CONNECTED;
goto done;
- default:
+ case ATM_SETBACKEND:
+ case ATM_NEWBACKENDIF:
+ {
+ atm_backend_t backend;
+ error = get_user(backend, (atm_backend_t __user *) argp);
+ if (error)
+ goto done;
+ switch (backend) {
+ case ATM_BACKEND_PPP:
+ request_module("pppoatm");
+ break;
+ case ATM_BACKEND_BR2684:
+ request_module("br2684");
+ break;
+ }
+ }
+ break;
+ case ATMMPC_CTRL:
+ case ATMMPC_DATA:
+ request_module("mpoa");
+ break;
+ case ATMARPD_CTRL:
+ request_module("clip");
+ break;
+ case ATMLEC_CTRL:
+ request_module("lec");
break;
}
- if (cmd == ATMMPC_CTRL || cmd == ATMMPC_DATA)
- request_module("mpoa");
- if (cmd == ATMARPD_CTRL)
- request_module("clip");
- if (cmd == ATMLEC_CTRL)
- request_module("lec");
-
error = -ENOIOCTLCMD;
down(&ioctl_mutex);