aboutsummaryrefslogtreecommitdiffstats
path: root/net/core
diff options
context:
space:
mode:
Diffstat (limited to 'net/core')
-rw-r--r--net/core/dev.c4
-rw-r--r--net/core/pktgen.c30
-rw-r--r--net/core/scm.c9
3 files changed, 22 insertions, 21 deletions
diff --git a/net/core/dev.c b/net/core/dev.c
index d99864662582..13a1bc5d3bfd 100644
--- a/net/core/dev.c
+++ b/net/core/dev.c
@@ -780,7 +780,7 @@ static int __dev_alloc_name(struct net *net, const char *name, char *buf)
780 int i = 0; 780 int i = 0;
781 const char *p; 781 const char *p;
782 const int max_netdevices = 8*PAGE_SIZE; 782 const int max_netdevices = 8*PAGE_SIZE;
783 long *inuse; 783 unsigned long *inuse;
784 struct net_device *d; 784 struct net_device *d;
785 785
786 p = strnchr(name, IFNAMSIZ-1, '%'); 786 p = strnchr(name, IFNAMSIZ-1, '%');
@@ -794,7 +794,7 @@ static int __dev_alloc_name(struct net *net, const char *name, char *buf)
794 return -EINVAL; 794 return -EINVAL;
795 795
796 /* Use one page as a bit array of possible slots */ 796 /* Use one page as a bit array of possible slots */
797 inuse = (long *) get_zeroed_page(GFP_ATOMIC); 797 inuse = (unsigned long *) get_zeroed_page(GFP_ATOMIC);
798 if (!inuse) 798 if (!inuse)
799 return -ENOMEM; 799 return -ENOMEM;
800 800
diff --git a/net/core/pktgen.c b/net/core/pktgen.c
index f07bd590f8f9..2100c734b102 100644
--- a/net/core/pktgen.c
+++ b/net/core/pktgen.c
@@ -1563,15 +1563,17 @@ static ssize_t pktgen_if_write(struct file *file,
1563 } 1563 }
1564 1564
1565 if (!strcmp(name, "mpls")) { 1565 if (!strcmp(name, "mpls")) {
1566 unsigned n, offset; 1566 unsigned n, cnt;
1567
1567 len = get_labels(&user_buffer[i], pkt_dev); 1568 len = get_labels(&user_buffer[i], pkt_dev);
1568 if (len < 0) { return len; } 1569 if (len < 0)
1570 return len;
1569 i += len; 1571 i += len;
1570 offset = sprintf(pg_result, "OK: mpls="); 1572 cnt = sprintf(pg_result, "OK: mpls=");
1571 for (n = 0; n < pkt_dev->nr_labels; n++) 1573 for (n = 0; n < pkt_dev->nr_labels; n++)
1572 offset += sprintf(pg_result + offset, 1574 cnt += sprintf(pg_result + cnt,
1573 "%08x%s", ntohl(pkt_dev->labels[n]), 1575 "%08x%s", ntohl(pkt_dev->labels[n]),
1574 n == pkt_dev->nr_labels-1 ? "" : ","); 1576 n == pkt_dev->nr_labels-1 ? "" : ",");
1575 1577
1576 if (pkt_dev->nr_labels && pkt_dev->vlan_id != 0xffff) { 1578 if (pkt_dev->nr_labels && pkt_dev->vlan_id != 0xffff) {
1577 pkt_dev->vlan_id = 0xffff; /* turn off VLAN/SVLAN */ 1579 pkt_dev->vlan_id = 0xffff; /* turn off VLAN/SVLAN */
@@ -2731,6 +2733,7 @@ static unsigned int scan_ip6(const char *s, char ip[16])
2731 unsigned int prefixlen = 0; 2733 unsigned int prefixlen = 0;
2732 unsigned int suffixlen = 0; 2734 unsigned int suffixlen = 0;
2733 __be32 tmp; 2735 __be32 tmp;
2736 char *pos;
2734 2737
2735 for (i = 0; i < 16; i++) 2738 for (i = 0; i < 16; i++)
2736 ip[i] = 0; 2739 ip[i] = 0;
@@ -2745,12 +2748,9 @@ static unsigned int scan_ip6(const char *s, char ip[16])
2745 } 2748 }
2746 s++; 2749 s++;
2747 } 2750 }
2748 {
2749 char *tmp;
2750 u = simple_strtoul(s, &tmp, 16);
2751 i = tmp - s;
2752 }
2753 2751
2752 u = simple_strtoul(s, &pos, 16);
2753 i = pos - s;
2754 if (!i) 2754 if (!i)
2755 return 0; 2755 return 0;
2756 if (prefixlen == 12 && s[i] == '.') { 2756 if (prefixlen == 12 && s[i] == '.') {
@@ -2778,11 +2778,9 @@ static unsigned int scan_ip6(const char *s, char ip[16])
2778 len++; 2778 len++;
2779 } else if (suffixlen != 0) 2779 } else if (suffixlen != 0)
2780 break; 2780 break;
2781 { 2781
2782 char *tmp; 2782 u = simple_strtol(s, &pos, 16);
2783 u = simple_strtol(s, &tmp, 16); 2783 i = pos - s;
2784 i = tmp - s;
2785 }
2786 if (!i) { 2784 if (!i) {
2787 if (*s) 2785 if (*s)
2788 len--; 2786 len--;
diff --git a/net/core/scm.c b/net/core/scm.c
index 44c4ec2c8769..530bee8d9ed9 100644
--- a/net/core/scm.c
+++ b/net/core/scm.c
@@ -167,7 +167,8 @@ error:
167 167
168int put_cmsg(struct msghdr * msg, int level, int type, int len, void *data) 168int put_cmsg(struct msghdr * msg, int level, int type, int len, void *data)
169{ 169{
170 struct cmsghdr __user *cm = (struct cmsghdr __user *)msg->msg_control; 170 struct cmsghdr __user *cm
171 = (__force struct cmsghdr __user *)msg->msg_control;
171 struct cmsghdr cmhdr; 172 struct cmsghdr cmhdr;
172 int cmlen = CMSG_LEN(len); 173 int cmlen = CMSG_LEN(len);
173 int err; 174 int err;
@@ -202,7 +203,8 @@ out:
202 203
203void scm_detach_fds(struct msghdr *msg, struct scm_cookie *scm) 204void scm_detach_fds(struct msghdr *msg, struct scm_cookie *scm)
204{ 205{
205 struct cmsghdr __user *cm = (struct cmsghdr __user*)msg->msg_control; 206 struct cmsghdr __user *cm
207 = (__force struct cmsghdr __user*)msg->msg_control;
206 208
207 int fdmax = 0; 209 int fdmax = 0;
208 int fdnum = scm->fp->count; 210 int fdnum = scm->fp->count;
@@ -222,7 +224,8 @@ void scm_detach_fds(struct msghdr *msg, struct scm_cookie *scm)
222 if (fdnum < fdmax) 224 if (fdnum < fdmax)
223 fdmax = fdnum; 225 fdmax = fdnum;
224 226
225 for (i=0, cmfptr=(int __user *)CMSG_DATA(cm); i<fdmax; i++, cmfptr++) 227 for (i=0, cmfptr=(__force int __user *)CMSG_DATA(cm); i<fdmax;
228 i++, cmfptr++)
226 { 229 {
227 int new_fd; 230 int new_fd;
228 err = security_file_receive(fp[i]); 231 err = security_file_receive(fp[i]);