netdev
[Top] [All Lists]

[PATCH][ATM][6/6] setsockopt/getsockopt cleanup

To: davem@xxxxxxxxxx
Subject: [PATCH][ATM][6/6] setsockopt/getsockopt cleanup
From: chas williams <chas@xxxxxxxxxxxxxxxx>
Date: Mon, 13 Oct 2003 23:47:19 -0400
Cc: netdev@xxxxxxxxxxx
Reply-to: chas3@xxxxxxxxxxxxxxxxxxxxx
Sender: netdev-bounce@xxxxxxxxxxx
please apply to 2.4 --thanks

# This is a BitKeeper generated patch for the following project:
# Project Name: Linux kernel tree
# This patch format is intended for GNU patch command version 2.5 or higher.
# This patch includes the following deltas:
#                  ChangeSet    1.1144  -> 1.1145 
#              net/atm/pvc.c    1.9     -> 1.10   
#              net/atm/svc.c    1.10    -> 1.11   
#           net/atm/common.h    1.9     -> 1.10   
#           net/atm/common.c    1.26    -> 1.27   
#
# The following is the BitKeeper ChangeSet Log
# --------------------------------------------
# 03/10/13      chas@xxxxxxxxxxxxxxxxxxxxxx     1.1145
# [ATM]: setsockopt/getsockopt cleanup
# --------------------------------------------
#
diff -Nru a/net/atm/common.c b/net/atm/common.c
--- a/net/atm/common.c  Mon Oct 13 18:41:42 2003
+++ b/net/atm/common.c  Mon Oct 13 18:41:42 2003
@@ -987,14 +987,16 @@
        return check_tp(&qos->rxtp);
 }
 
-
-static int atm_do_setsockopt(struct socket *sock,int level,int optname,
-    void *optval,int optlen)
+int vcc_setsockopt(struct socket *sock, int level, int optname,
+                  char *optval, int optlen)
 {
        struct atm_vcc *vcc;
        unsigned long value;
        int error;
 
+       if (__SO_LEVEL_MATCH(optname, level) && optlen != __SO_SIZE(optname))
+               return -EINVAL;
+
        vcc = ATM_SD(sock);
        switch (optname) {
                case SO_ATMQOS:
@@ -1028,10 +1030,16 @@
 }
 
 
-static int atm_do_getsockopt(struct socket *sock,int level,int optname,
-    void *optval,int optlen)
+int vcc_getsockopt(struct socket *sock, int level, int optname,
+                  char *optval, int *optlen)
 {
        struct atm_vcc *vcc;
+       int len;
+
+       if (get_user(len, optlen))
+               return -EFAULT;
+       if (__SO_LEVEL_MATCH(optname, level) && len != __SO_SIZE(optname))
+               return -EINVAL;
 
        vcc = ATM_SD(sock);
        switch (optname) {
@@ -1062,28 +1070,7 @@
                        break;
        }
        if (!vcc->dev || !vcc->dev->ops->getsockopt) return -EINVAL;
-       return vcc->dev->ops->getsockopt(vcc,level,optname,optval,optlen);
-}
-
-
-int atm_setsockopt(struct socket *sock,int level,int optname,char *optval,
-    int optlen)
-{
-       if (__SO_LEVEL_MATCH(optname, level) && optlen != __SO_SIZE(optname))
-               return -EINVAL;
-       return atm_do_setsockopt(sock,level,optname,optval,optlen);
-}
-
-
-int atm_getsockopt(struct socket *sock,int level,int optname,
-    char *optval,int *optlen)
-{
-       int len;
-
-       if (get_user(len,optlen)) return -EFAULT;
-       if (__SO_LEVEL_MATCH(optname, level) && len != __SO_SIZE(optname))
-               return -EINVAL;
-       return atm_do_getsockopt(sock,level,optname,optval,len);
+       return vcc->dev->ops->getsockopt(vcc, level, optname, optval, len);
 }
 
 
diff -Nru a/net/atm/common.h b/net/atm/common.h
--- a/net/atm/common.h  Mon Oct 13 18:41:42 2003
+++ b/net/atm/common.h  Mon Oct 13 18:41:42 2003
@@ -19,10 +19,10 @@
                struct scm_cookie *scm);
 unsigned int atm_poll(struct file *file,struct socket *sock,poll_table *wait);
 int vcc_ioctl(struct socket *sock, unsigned int cmd, unsigned long arg);
-int atm_setsockopt(struct socket *sock,int level,int optname,char *optval,
-    int optlen);
-int atm_getsockopt(struct socket *sock,int level,int optname,char *optval,
-    int *optlen);
+int vcc_setsockopt(struct socket *sock, int level, int optname, char *optval,
+                  int optlen);
+int vcc_getsockopt(struct socket *sock, int level, int optname, char *optval,
+                  int *optlen);
 
 void atm_shutdown_dev(struct atm_dev *dev);
 
diff -Nru a/net/atm/pvc.c b/net/atm/pvc.c
--- a/net/atm/pvc.c     Mon Oct 13 18:41:42 2003
+++ b/net/atm/pvc.c     Mon Oct 13 18:41:42 2003
@@ -67,7 +67,7 @@
        int error;
 
        lock_sock(sk);
-       error = atm_setsockopt(sock, level, optname, optval, optlen);
+       error = vcc_setsockopt(sock, level, optname, optval, optlen);
        release_sock(sk);
        return error;
 }
@@ -80,7 +80,7 @@
        int error;
 
        lock_sock(sk);
-       error = atm_getsockopt(sock, level, optname, optval, optlen);
+       error = vcc_getsockopt(sock, level, optname, optval, optlen);
        release_sock(sk);
        return error;
 }
diff -Nru a/net/atm/svc.c b/net/atm/svc.c
--- a/net/atm/svc.c     Mon Oct 13 18:41:42 2003
+++ b/net/atm/svc.c     Mon Oct 13 18:41:42 2003
@@ -470,7 +470,7 @@
 
        if (!__SO_LEVEL_MATCH(optname, level) || optname != SO_ATMSAP ||
            optlen != sizeof(struct atm_sap)) {
-               error = atm_setsockopt(sock, level, optname, optval, optlen);
+               error = vcc_setsockopt(sock, level, optname, optval, optlen);
                goto out;
        }
        vcc = ATM_SD(sock);
@@ -493,7 +493,7 @@
 
        lock_sock(sk);
        if (!__SO_LEVEL_MATCH(optname, level) || optname != SO_ATMSAP) {
-               error = atm_getsockopt(sock, level, optname, optval, optlen);
+               error = vcc_getsockopt(sock, level, optname, optval, optlen);
                goto out;
        }
        if (get_user(len, optlen)) {

<Prev in Thread] Current Thread [Next in Thread>
  • [PATCH][ATM][6/6] setsockopt/getsockopt cleanup, chas williams <=