Commit 5ff7ef79 authored by Joe Perches's avatar Joe Perches Committed by David S. Miller

net/atm/ioctl.c: checkpatch cleanups

Spacing cleanups
Moved EXPORT_SYMBOL
Mostly 80 column wrapped.
switch/case cleanups
Signed-off-by: default avatarJoe Perches <joe@perches.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent a8147d73
...@@ -37,6 +37,7 @@ void register_atm_ioctl(struct atm_ioctl *ioctl) ...@@ -37,6 +37,7 @@ void register_atm_ioctl(struct atm_ioctl *ioctl)
list_add_tail(&ioctl->list, &ioctl_list); list_add_tail(&ioctl->list, &ioctl_list);
mutex_unlock(&ioctl_mutex); mutex_unlock(&ioctl_mutex);
} }
EXPORT_SYMBOL(register_atm_ioctl);
void deregister_atm_ioctl(struct atm_ioctl *ioctl) void deregister_atm_ioctl(struct atm_ioctl *ioctl)
{ {
...@@ -44,129 +45,128 @@ void deregister_atm_ioctl(struct atm_ioctl *ioctl) ...@@ -44,129 +45,128 @@ void deregister_atm_ioctl(struct atm_ioctl *ioctl)
list_del(&ioctl->list); list_del(&ioctl->list);
mutex_unlock(&ioctl_mutex); mutex_unlock(&ioctl_mutex);
} }
EXPORT_SYMBOL(register_atm_ioctl);
EXPORT_SYMBOL(deregister_atm_ioctl); EXPORT_SYMBOL(deregister_atm_ioctl);
static int do_vcc_ioctl(struct socket *sock, unsigned int cmd, unsigned long arg, int compat) static int do_vcc_ioctl(struct socket *sock, unsigned int cmd,
unsigned long arg, int compat)
{ {
struct sock *sk = sock->sk; struct sock *sk = sock->sk;
struct atm_vcc *vcc; struct atm_vcc *vcc;
int error; int error;
struct list_head * pos; struct list_head *pos;
void __user *argp = (void __user *)arg; void __user *argp = (void __user *)arg;
vcc = ATM_SD(sock); vcc = ATM_SD(sock);
switch (cmd) { switch (cmd) {
case SIOCOUTQ: case SIOCOUTQ:
if (sock->state != SS_CONNECTED || if (sock->state != SS_CONNECTED ||
!test_bit(ATM_VF_READY, &vcc->flags)) { !test_bit(ATM_VF_READY, &vcc->flags)) {
error = -EINVAL; error = -EINVAL;
goto done; goto done;
} }
error = put_user(sk->sk_sndbuf - sk_wmem_alloc_get(sk), error = put_user(sk->sk_sndbuf - sk_wmem_alloc_get(sk),
(int __user *) argp) ? -EFAULT : 0; (int __user *)argp) ? -EFAULT : 0;
goto done;
case SIOCINQ:
{
struct sk_buff *skb;
if (sock->state != SS_CONNECTED) {
error = -EINVAL;
goto done; goto done;
case SIOCINQ: }
{ skb = skb_peek(&sk->sk_receive_queue);
struct sk_buff *skb; error = put_user(skb ? skb->len : 0,
(int __user *)argp) ? -EFAULT : 0;
if (sock->state != SS_CONNECTED) { goto done;
error = -EINVAL; }
goto done; case SIOCGSTAMP: /* borrowed from IP */
}
skb = skb_peek(&sk->sk_receive_queue);
error = put_user(skb ? skb->len : 0,
(int __user *)argp) ? -EFAULT : 0;
goto done;
}
case SIOCGSTAMP: /* borrowed from IP */
#ifdef CONFIG_COMPAT #ifdef CONFIG_COMPAT
if (compat) if (compat)
error = compat_sock_get_timestamp(sk, argp); error = compat_sock_get_timestamp(sk, argp);
else else
#endif #endif
error = sock_get_timestamp(sk, argp); error = sock_get_timestamp(sk, argp);
goto done; goto done;
case SIOCGSTAMPNS: /* borrowed from IP */ case SIOCGSTAMPNS: /* borrowed from IP */
#ifdef CONFIG_COMPAT #ifdef CONFIG_COMPAT
if (compat) if (compat)
error = compat_sock_get_timestampns(sk, argp); error = compat_sock_get_timestampns(sk, argp);
else else
#endif #endif
error = sock_get_timestampns(sk, argp); error = sock_get_timestampns(sk, argp);
goto done;
case ATM_SETSC:
if (net_ratelimit())
pr_warning("ATM_SETSC is obsolete; used by %s:%d\n",
current->comm, task_pid_nr(current));
error = 0;
goto done;
case ATMSIGD_CTRL:
if (!capable(CAP_NET_ADMIN)) {
error = -EPERM;
goto done; goto done;
case ATM_SETSC: }
if (net_ratelimit()) /*
pr_warning("ATM_SETSC is obsolete; used by %s:%d\n", * The user/kernel protocol for exchanging signalling
current->comm, task_pid_nr(current)); * info uses kernel pointers as opaque references,
error = 0; * so the holder of the file descriptor can scribble
* on the kernel... so we should make sure that we
* have the same privileges that /proc/kcore needs
*/
if (!capable(CAP_SYS_RAWIO)) {
error = -EPERM;
goto done; goto done;
case ATMSIGD_CTRL: }
if (!capable(CAP_NET_ADMIN)) {
error = -EPERM;
goto done;
}
/*
* The user/kernel protocol for exchanging signalling
* info uses kernel pointers as opaque references,
* so the holder of the file descriptor can scribble
* on the kernel... so we should make sure that we
* have the same privileges that /proc/kcore needs
*/
if (!capable(CAP_SYS_RAWIO)) {
error = -EPERM;
goto done;
}
#ifdef CONFIG_COMPAT #ifdef CONFIG_COMPAT
/* WTF? I don't even want to _think_ about making this /* WTF? I don't even want to _think_ about making this
work for 32-bit userspace. TBH I don't really want work for 32-bit userspace. TBH I don't really want
to think about it at all. dwmw2. */ to think about it at all. dwmw2. */
if (compat) { if (compat) {
if (net_ratelimit()) if (net_ratelimit())
pr_warning("32-bit task cannot be atmsigd\n"); pr_warning("32-bit task cannot be atmsigd\n");
error = -EINVAL; error = -EINVAL;
goto done; goto done;
} }
#endif #endif
error = sigd_attach(vcc); error = sigd_attach(vcc);
if (!error) if (!error)
sock->state = SS_CONNECTED; sock->state = SS_CONNECTED;
goto done;
case ATM_SETBACKEND:
case ATM_NEWBACKENDIF:
{
atm_backend_t backend;
error = get_user(backend, (atm_backend_t __user *)argp);
if (error)
goto done; goto done;
case ATM_SETBACKEND: switch (backend) {
case ATM_NEWBACKENDIF: case ATM_BACKEND_PPP:
{ request_module("pppoatm");
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; break;
case ATMLEC_CTRL: case ATM_BACKEND_BR2684:
request_module("lec"); request_module("br2684");
break; 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;
} }
error = -ENOIOCTLCMD; error = -ENOIOCTLCMD;
mutex_lock(&ioctl_mutex); mutex_lock(&ioctl_mutex);
list_for_each(pos, &ioctl_list) { list_for_each(pos, &ioctl_list) {
struct atm_ioctl * ic = list_entry(pos, struct atm_ioctl, list); struct atm_ioctl *ic = list_entry(pos, struct atm_ioctl, list);
if (try_module_get(ic->owner)) { if (try_module_get(ic->owner)) {
error = ic->ioctl(sock, cmd, arg); error = ic->ioctl(sock, cmd, arg);
module_put(ic->owner); module_put(ic->owner);
...@@ -185,7 +185,6 @@ static int do_vcc_ioctl(struct socket *sock, unsigned int cmd, unsigned long arg ...@@ -185,7 +185,6 @@ static int do_vcc_ioctl(struct socket *sock, unsigned int cmd, unsigned long arg
return error; return error;
} }
int vcc_ioctl(struct socket *sock, unsigned int cmd, unsigned long arg) int vcc_ioctl(struct socket *sock, unsigned int cmd, unsigned long arg)
{ {
return do_vcc_ioctl(sock, cmd, arg, 0); return do_vcc_ioctl(sock, cmd, arg, 0);
...@@ -288,8 +287,8 @@ static int do_atmif_sioc(struct socket *sock, unsigned int cmd, ...@@ -288,8 +287,8 @@ static int do_atmif_sioc(struct socket *sock, unsigned int cmd,
sioc = compat_alloc_user_space(sizeof(*sioc)); sioc = compat_alloc_user_space(sizeof(*sioc));
sioc32 = compat_ptr(arg); sioc32 = compat_ptr(arg);
if (copy_in_user(&sioc->number, &sioc32->number, 2 * sizeof(int)) if (copy_in_user(&sioc->number, &sioc32->number, 2 * sizeof(int)) ||
|| get_user(data, &sioc32->arg)) get_user(data, &sioc32->arg))
return -EFAULT; return -EFAULT;
datap = compat_ptr(data); datap = compat_ptr(data);
if (put_user(datap, &sioc->arg)) if (put_user(datap, &sioc->arg))
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment