diff options
author | Linus Torvalds <torvalds@g5.osdl.org> | 2005-09-29 08:56:47 -0700 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2005-09-29 08:56:47 -0700 |
commit | eb693d2994eb762b2201aead31066265ab0be20b (patch) | |
tree | 424e1e7f3d272d0fd5888435176b386594ce121f /net/atm/ioctl.c | |
parent | 6dec3cf5cdb600f39b9eac3349f6bf50eab87731 (diff) | |
parent | 01d40f28b125e0a9aa0ec24642be67fc4c5dfaff (diff) | |
download | kernel_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.c | 34 |
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); |