]> git.pld-linux.org Git - packages/kernel.git/blobdiff - kernel-atm-vbr.patch
- up to 5.11.8
[packages/kernel.git] / kernel-atm-vbr.patch
index 28dc14b865786cd36d0e2be9f4f4e410c5017fd4..a9e921ffa8eed0a173efd730028afd85892368dc 100644 (file)
@@ -1,90 +1,7 @@
-Index: linux/include/linux/atm.h
-===================================================================
-RCS file: /afs/cmf/project/cvsroot/linux/include/linux/atm.h,v
-retrieving revision 1.2
-diff -u -r1.2 atm.h
---- linux/include/uapi/linux/atm.h     12 Feb 2003 20:56:33 -0000      1.2
-+++ linux/include/uapi/linux/atm.h     9 Apr 2003 12:08:38 -0000
-@@ -72,7 +72,7 @@
-                           /* connection identifier range; socket must be
-                              bound or connected */
- #define SO_ATMQOS     __SO_ENCODE(SOL_ATM,2,struct atm_qos)
--                          /* Quality of Service setting */
-+                          /* Quality of Service setting (with vbr support) */
- #define SO_ATMSAP     __SO_ENCODE(SOL_ATM,3,struct atm_sap)
-                           /* Service Access Point */
- #define SO_ATMPVC     __SO_ENCODE(SOL_ATM,4,struct sockaddr_atmpvc)
-@@ -127,9 +127,11 @@
- #define ATM_NONE      0               /* no traffic */
- #define ATM_UBR               1
- #define ATM_CBR               2
--#define ATM_VBR               3
-+#define ATM_VBR_NRT   3
-+#define ATM_VBR               ATM_VBR_NRT     /* for backward compatibility */
- #define ATM_ABR               4
- #define ATM_ANYCLASS  5               /* compatible with everything */
-+#define ATM_VBR_RT    6
- #define ATM_MAX_PCR   -1              /* maximum available PCR */
-@@ -140,6 +142,11 @@
-       int             min_pcr;        /* minimum PCR in cells per second */
-       int             max_cdv;        /* maximum CDV in microseconds */
-       int             max_sdu;        /* maximum SDU in bytes */
-+
-+      /* extra params for VBR */
-+      int             scr;            /* sustained rate in cells per second */
-+      int             mbs;            /* maximum burst size (MBS) in cells */
-+
-         /* extra params for ABR */
-         unsigned int  icr;            /* Initial Cell Rate (24-bit) */
-         unsigned int  tbe;            /* Transient Buffer Exposure (24-bit) */ 
-@@ -243,4 +251,37 @@
- };
- typedef unsigned short atm_backend_t;
-+struct atm_trafprm_compat {
-+      unsigned char   traffic_class;  /* traffic class (ATM_UBR, ...) */
-+      int             max_pcr;        /* maximum PCR in cells per second */
-+      int             pcr;            /* desired PCR in cells per second */
-+      int             min_pcr;        /* minimum PCR in cells per second */
-+      int             max_cdv;        /* maximum CDV in microseconds */
-+      int             max_sdu;        /* maximum SDU in bytes */
-+        /* extra params for ABR */
-+        unsigned int  icr;            /* Initial Cell Rate (24-bit) */
-+        unsigned int  tbe;            /* Transient Buffer Exposure (24-bit) */ 
-+        unsigned int  frtt : 24;      /* Fixed Round Trip Time (24-bit) */
-+        unsigned int  rif  : 4;       /* Rate Increment Factor (4-bit) */
-+        unsigned int  rdf  : 4;       /* Rate Decrease Factor (4-bit) */
-+        unsigned int nrm_pres  :1;      /* nrm present bit */
-+        unsigned int trm_pres  :1;            /* rm present bit */
-+        unsigned int adtf_pres :1;            /* adtf present bit */
-+        unsigned int cdf_pres  :1;            /* cdf present bit*/
-+        unsigned int nrm       :3;            /* Max # of Cells for each forward RM cell (3-bit) */
-+        unsigned int trm       :3;            /* Time between forward RM cells (3-bit) */    
-+      unsigned int adtf      :10;     /* ACR Decrease Time Factor (10-bit) */
-+      unsigned int cdf       :3;      /* Cutoff Decrease Factor (3-bit) */
-+        unsigned int spare     :9;      /* spare bits */ 
-+};
-+
-+struct atm_qos_compat {
-+      struct atm_trafprm_compat txtp; /* parameters in TX direction */
-+      struct atm_trafprm_compat rxtp __ATM_API_ALIGN;
-+                                      /* parameters in RX direction */
-+      unsigned char aal __ATM_API_ALIGN;
-+};
-+
-+#define SO_ATMQOS_COMPAT __SO_ENCODE(SOL_ATM,2,struct atm_qos_compat)
-+                          /* Quality of Service setting (no vbr support) */
- #endif /* _UAPI_LINUX_ATM_H */
-Index: linux/net/atm/common.c
-===================================================================
-RCS file: /afs/cmf/project/cvsroot/linux/net/atm/common.c,v
-retrieving revision 1.13
-diff -u -r1.13 common.c
---- linux/net/atm/common.c     17 Mar 2003 16:13:12 -0000      1.13
-+++ linux/net/atm/common.c     9 Apr 2003 12:10:28 -0000
-@@ -1085,6 +1085,43 @@
+diff -urN linux-5.9/net.org/atm/common.c linux-5.9/net/atm/common.c
+--- linux-5.9/net.org/atm/common.c     2020-10-11 23:15:50.000000000 +0200
++++ linux-5.9/net/atm/common.c 2020-11-03 13:27:25.545142305 +0100
+@@ -756,6 +756,43 @@
  
        vcc = ATM_SD(sock);
        switch (optname) {
@@ -93,7 +10,7 @@ diff -u -r1.13 common.c
 +                              struct atm_qos_compat qos_compat;
 +                              struct atm_qos qos;
 +
-+                              if (copy_from_user(&qos_compat,optval,sizeof(qos_compat)))
++                              if (copy_from_sockptr(&qos_compat,optval,sizeof(qos_compat)))
 +                                      return -EFAULT;
 +
 +                              /* convert old atm_qos to new atm_qos */
@@ -128,7 +45,7 @@ diff -u -r1.13 common.c
        case SO_ATMQOS:
        {
                struct atm_qos qos;
-@@ -1132,6 +1169,31 @@
+@@ -799,6 +836,31 @@
  
        vcc = ATM_SD(sock);
        switch (optname) {
@@ -158,5 +75,80 @@ diff -u -r1.13 common.c
 +                                  -EFAULT : 0;
 +                      }
        case SO_ATMQOS:
-               if (!test_bit(ATM_VF_HASQOS,&vcc->flags))
+               if (!test_bit(ATM_VF_HASQOS, &vcc->flags))
                        return -EINVAL;
+diff -urN linux-5.9/include.org/uapi/linux/atm.h linux-5.9/include/uapi/linux/atm.h
+--- linux-5.9/include.org/uapi/linux/atm.h     2020-10-11 23:15:50.000000000 +0200
++++ linux-5.9/include/uapi/linux/atm.h 2020-11-03 13:27:25.545142305 +0100
+@@ -71,7 +71,7 @@
+                           /* connection identifier range; socket must be
+                              bound or connected */
+ #define SO_ATMQOS     __SO_ENCODE(SOL_ATM,2,struct atm_qos)
+-                          /* Quality of Service setting */
++                          /* Quality of Service setting (with vbr support) */
+ #define SO_ATMSAP     __SO_ENCODE(SOL_ATM,3,struct atm_sap)
+                           /* Service Access Point */
+ #define SO_ATMPVC     __SO_ENCODE(SOL_ATM,4,struct sockaddr_atmpvc)
+@@ -127,9 +127,11 @@
+ #define ATM_NONE      0               /* no traffic */
+ #define ATM_UBR               1
+ #define ATM_CBR               2
+-#define ATM_VBR               3
++#define ATM_VBR_NRT   3
++#define ATM_VBR               ATM_VBR_NRT     /* for backward compatibility */
+ #define ATM_ABR               4
+ #define ATM_ANYCLASS  5               /* compatible with everything */
++#define ATM_VBR_RT    6
+ #define ATM_MAX_PCR   -1              /* maximum available PCR */
+@@ -140,6 +142,11 @@
+       int             min_pcr;        /* minimum PCR in cells per second */
+       int             max_cdv;        /* maximum CDV in microseconds */
+       int             max_sdu;        /* maximum SDU in bytes */
++
++      /* extra params for VBR */
++      int             scr;            /* sustained rate in cells per second */
++      int             mbs;            /* maximum burst size (MBS) in cells */
++
+         /* extra params for ABR */
+         unsigned int  icr;            /* Initial Cell Rate (24-bit) */
+         unsigned int  tbe;            /* Transient Buffer Exposure (24-bit) */ 
+@@ -239,4 +246,37 @@
+ typedef unsigned short atm_backend_t;
++struct atm_trafprm_compat {
++      unsigned char   traffic_class;  /* traffic class (ATM_UBR, ...) */
++      int             max_pcr;        /* maximum PCR in cells per second */
++      int             pcr;            /* desired PCR in cells per second */
++      int             min_pcr;        /* minimum PCR in cells per second */
++      int             max_cdv;        /* maximum CDV in microseconds */
++      int             max_sdu;        /* maximum SDU in bytes */
++        /* extra params for ABR */
++        unsigned int  icr;            /* Initial Cell Rate (24-bit) */
++        unsigned int  tbe;            /* Transient Buffer Exposure (24-bit) */ 
++        unsigned int  frtt : 24;      /* Fixed Round Trip Time (24-bit) */
++        unsigned int  rif  : 4;       /* Rate Increment Factor (4-bit) */
++        unsigned int  rdf  : 4;       /* Rate Decrease Factor (4-bit) */
++        unsigned int nrm_pres  :1;      /* nrm present bit */
++        unsigned int trm_pres  :1;            /* rm present bit */
++        unsigned int adtf_pres :1;            /* adtf present bit */
++        unsigned int cdf_pres  :1;            /* cdf present bit*/
++        unsigned int nrm       :3;            /* Max # of Cells for each forward RM cell (3-bit) */
++        unsigned int trm       :3;            /* Time between forward RM cells (3-bit) */    
++      unsigned int adtf      :10;     /* ACR Decrease Time Factor (10-bit) */
++      unsigned int cdf       :3;      /* Cutoff Decrease Factor (3-bit) */
++        unsigned int spare     :9;      /* spare bits */ 
++};
++
++struct atm_qos_compat {
++      struct atm_trafprm_compat txtp; /* parameters in TX direction */
++      struct atm_trafprm_compat rxtp __ATM_API_ALIGN;
++                                      /* parameters in RX direction */
++      unsigned char aal __ATM_API_ALIGN;
++};
++
++#define SO_ATMQOS_COMPAT __SO_ENCODE(SOL_ATM,2,struct atm_qos_compat)
++                          /* Quality of Service setting (no vbr support) */
+ #endif /* _UAPI_LINUX_ATM_H */
This page took 0.037542 seconds and 4 git commands to generate.