Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

[NET]: ipconfig and nfsroot annotations

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>

authored by

Al Viro and committed by
David S. Miller
5a874db4 3e6c8cd5

+64 -64
+6 -7
fs/nfs/nfsroot.c
··· 98 98 static char nfs_root_name[256] __initdata = ""; 99 99 100 100 /* Address of NFS server */ 101 - static __u32 servaddr __initdata = 0; 101 + static __be32 servaddr __initdata = 0; 102 102 103 103 /* Name of directory to mount */ 104 104 static char nfs_path[NFS_MAXPATHLEN] __initdata = { 0, }; ··· 327 327 */ 328 328 static int __init root_nfs_addr(void) 329 329 { 330 - if ((servaddr = root_server_addr) == INADDR_NONE) { 330 + if ((servaddr = root_server_addr) == htonl(INADDR_NONE)) { 331 331 printk(KERN_ERR "Root-NFS: No NFS server available, giving up.\n"); 332 332 return -1; 333 333 } ··· 411 411 * Construct sockaddr_in from address and port number. 412 412 */ 413 413 static inline void 414 - set_sockaddr(struct sockaddr_in *sin, __u32 addr, __u16 port) 414 + set_sockaddr(struct sockaddr_in *sin, __be32 addr, __be16 port) 415 415 { 416 416 sin->sin_family = AF_INET; 417 417 sin->sin_addr.s_addr = addr; ··· 468 468 dprintk("Root-NFS: Portmapper on server returned %d " 469 469 "as nfsd port\n", port); 470 470 } 471 - nfs_port = htons(nfs_port); 472 471 473 472 if ((port = root_nfs_getport(NFS_MNT_PROGRAM, mountd_ver, proto)) < 0) { 474 473 printk(KERN_ERR "Root-NFS: Unable to get mountd port " 475 474 "number from server, using default\n"); 476 475 port = mountd_port; 477 476 } 478 - mount_port = htons(port); 477 + mount_port = port; 479 478 dprintk("Root-NFS: mountd port is %d\n", port); 480 479 481 480 return 0; ··· 495 496 int version = (nfs_data.flags & NFS_MOUNT_VER3) ? 496 497 NFS_MNT3_VERSION : NFS_MNT_VERSION; 497 498 498 - set_sockaddr(&sin, servaddr, mount_port); 499 + set_sockaddr(&sin, servaddr, htons(mount_port)); 499 500 status = nfsroot_mount(&sin, nfs_path, &fh, version, protocol); 500 501 if (status < 0) 501 502 printk(KERN_ERR "Root-NFS: Server returned error %d " ··· 518 519 || root_nfs_ports() < 0 519 520 || root_nfs_get_handle() < 0) 520 521 return NULL; 521 - set_sockaddr((struct sockaddr_in *) &nfs_data.addr, servaddr, nfs_port); 522 + set_sockaddr((struct sockaddr_in *) &nfs_data.addr, servaddr, htons(nfs_port)); 522 523 return (void*)&nfs_data; 523 524 }
+1 -1
include/linux/nfs_fs.h
··· 318 318 extern struct nfs_open_context *nfs_find_open_context(struct inode *inode, struct rpc_cred *cred, int mode); 319 319 320 320 /* linux/net/ipv4/ipconfig.c: trims ip addr off front of name, too. */ 321 - extern u32 root_nfs_parse_addr(char *name); /*__init*/ 321 + extern __be32 root_nfs_parse_addr(char *name); /*__init*/ 322 322 323 323 static inline void nfs_fattr_init(struct nfs_fattr *fattr) 324 324 {
+4 -4
include/net/ipconfig.h
··· 11 11 extern int ic_proto_enabled; /* Protocols enabled (see IC_xxx) */ 12 12 extern int ic_set_manually; /* IPconfig parameters set manually */ 13 13 14 - extern u32 ic_myaddr; /* My IP address */ 15 - extern u32 ic_gateway; /* Gateway IP address */ 14 + extern __be32 ic_myaddr; /* My IP address */ 15 + extern __be32 ic_gateway; /* Gateway IP address */ 16 16 17 - extern u32 ic_servaddr; /* Boot server IP address */ 17 + extern __be32 ic_servaddr; /* Boot server IP address */ 18 18 19 - extern u32 root_server_addr; /* Address of NFS server */ 19 + extern __be32 root_server_addr; /* Address of NFS server */ 20 20 extern u8 root_server_path[]; /* Path to mount as root */ 21 21 22 22
+53 -52
net/ipv4/ipconfig.c
··· 101 101 #define CONF_NAMESERVERS_MAX 3 /* Maximum number of nameservers 102 102 - '3' from resolv.h */ 103 103 104 + #define NONE __constant_htonl(INADDR_NONE) 104 105 105 106 /* 106 107 * Public IP configuration ··· 130 129 131 130 static int ic_host_name_set __initdata = 0; /* Host name set by us? */ 132 131 133 - u32 ic_myaddr = INADDR_NONE; /* My IP address */ 134 - static u32 ic_netmask = INADDR_NONE; /* Netmask for local subnet */ 135 - u32 ic_gateway = INADDR_NONE; /* Gateway IP address */ 132 + __be32 ic_myaddr = NONE; /* My IP address */ 133 + static __be32 ic_netmask = NONE; /* Netmask for local subnet */ 134 + __be32 ic_gateway = NONE; /* Gateway IP address */ 136 135 137 - u32 ic_servaddr = INADDR_NONE; /* Boot server IP address */ 136 + __be32 ic_servaddr = NONE; /* Boot server IP address */ 138 137 139 - u32 root_server_addr = INADDR_NONE; /* Address of NFS server */ 138 + __be32 root_server_addr = NONE; /* Address of NFS server */ 140 139 u8 root_server_path[256] = { 0, }; /* Path to mount as root */ 141 140 142 141 /* Persistent data: */ 143 142 144 143 static int ic_proto_used; /* Protocol used, if any */ 145 - static u32 ic_nameservers[CONF_NAMESERVERS_MAX]; /* DNS Server IP addresses */ 144 + static __be32 ic_nameservers[CONF_NAMESERVERS_MAX]; /* DNS Server IP addresses */ 146 145 static u8 ic_domain[64]; /* DNS (not NIS) domain name */ 147 146 148 147 /* ··· 173 172 struct net_device *dev; 174 173 unsigned short flags; 175 174 short able; 176 - u32 xid; 175 + __be32 xid; 177 176 }; 178 177 179 178 static struct ic_device *ic_first_dev __initdata = NULL;/* List of open device */ ··· 224 223 d->flags = oflags; 225 224 d->able = able; 226 225 if (able & IC_BOOTP) 227 - get_random_bytes(&d->xid, sizeof(u32)); 226 + get_random_bytes(&d->xid, sizeof(__be32)); 228 227 else 229 228 d->xid = 0; 230 229 ic_proto_have_if |= able; ··· 270 269 */ 271 270 272 271 static inline void 273 - set_sockaddr(struct sockaddr_in *sin, u32 addr, u16 port) 272 + set_sockaddr(struct sockaddr_in *sin, __be32 addr, __be16 port) 274 273 { 275 274 sin->sin_family = AF_INET; 276 275 sin->sin_addr.s_addr = addr; ··· 333 332 { 334 333 /* No need to setup device routes, only the default route... */ 335 334 336 - if (ic_gateway != INADDR_NONE) { 335 + if (ic_gateway != NONE) { 337 336 struct rtentry rm; 338 337 int err; 339 338 ··· 369 368 if (!ic_host_name_set) 370 369 sprintf(init_utsname()->nodename, "%u.%u.%u.%u", NIPQUAD(ic_myaddr)); 371 370 372 - if (root_server_addr == INADDR_NONE) 371 + if (root_server_addr == NONE) 373 372 root_server_addr = ic_servaddr; 374 373 375 - if (ic_netmask == INADDR_NONE) { 374 + if (ic_netmask == NONE) { 376 375 if (IN_CLASSA(ntohl(ic_myaddr))) 377 376 ic_netmask = htonl(IN_CLASSA_NET); 378 377 else if (IN_CLASSB(ntohl(ic_myaddr))) ··· 421 420 { 422 421 struct arphdr *rarp; 423 422 unsigned char *rarp_ptr; 424 - u32 sip, tip; 423 + __be32 sip, tip; 425 424 unsigned char *sha, *tha; /* s for "source", t for "target" */ 426 425 struct ic_device *d; 427 426 ··· 486 485 goto drop_unlock; 487 486 488 487 /* Discard packets which are not from specified server. */ 489 - if (ic_servaddr != INADDR_NONE && ic_servaddr != sip) 488 + if (ic_servaddr != NONE && ic_servaddr != sip) 490 489 goto drop_unlock; 491 490 492 491 /* We have a winner! */ 493 492 ic_dev = dev; 494 - if (ic_myaddr == INADDR_NONE) 493 + if (ic_myaddr == NONE) 495 494 ic_myaddr = tip; 496 495 ic_servaddr = sip; 497 496 ic_got_reply = IC_RARP; ··· 531 530 u8 htype; /* HW address type */ 532 531 u8 hlen; /* HW address length */ 533 532 u8 hops; /* Used only by gateways */ 534 - u32 xid; /* Transaction ID */ 535 - u16 secs; /* Seconds since we started */ 536 - u16 flags; /* Just what it says */ 537 - u32 client_ip; /* Client's IP address if known */ 538 - u32 your_ip; /* Assigned IP address */ 539 - u32 server_ip; /* (Next, e.g. NFS) Server's IP address */ 540 - u32 relay_ip; /* IP address of BOOTP relay */ 533 + __be32 xid; /* Transaction ID */ 534 + __be16 secs; /* Seconds since we started */ 535 + __be16 flags; /* Just what it says */ 536 + __be32 client_ip; /* Client's IP address if known */ 537 + __be32 your_ip; /* Assigned IP address */ 538 + __be32 server_ip; /* (Next, e.g. NFS) Server's IP address */ 539 + __be32 relay_ip; /* IP address of BOOTP relay */ 541 540 u8 hw_addr[16]; /* Client's HW address */ 542 541 u8 serv_name[64]; /* Server host name */ 543 542 u8 boot_file[128]; /* Name of boot file */ ··· 577 576 static void __init 578 577 ic_dhcp_init_options(u8 *options) 579 578 { 580 - u8 mt = ((ic_servaddr == INADDR_NONE) 579 + u8 mt = ((ic_servaddr == NONE) 581 580 ? DHCPDISCOVER : DHCPREQUEST); 582 581 u8 *e = options; 583 582 ··· 667 666 int i; 668 667 669 668 for (i = 0; i < CONF_NAMESERVERS_MAX; i++) 670 - ic_nameservers[i] = INADDR_NONE; 669 + ic_nameservers[i] = NONE; 671 670 672 671 dev_add_pack(&bootp_packet_type); 673 672 } ··· 709 708 h->frag_off = htons(IP_DF); 710 709 h->ttl = 64; 711 710 h->protocol = IPPROTO_UDP; 712 - h->daddr = INADDR_BROADCAST; 711 + h->daddr = htonl(INADDR_BROADCAST); 713 712 h->check = ip_fast_csum((unsigned char *) h, h->ihl); 714 713 715 714 /* Construct UDP header */ ··· 731 730 b->htype = dev->type; /* can cause undefined behavior */ 732 731 } 733 732 b->hlen = dev->addr_len; 734 - b->your_ip = INADDR_NONE; 735 - b->server_ip = INADDR_NONE; 733 + b->your_ip = NONE; 734 + b->server_ip = NONE; 736 735 memcpy(b->hw_addr, dev->dev_addr, dev->addr_len); 737 736 b->secs = htons(jiffies_diff / HZ); 738 737 b->xid = d->xid; ··· 789 788 790 789 switch (*ext++) { 791 790 case 1: /* Subnet mask */ 792 - if (ic_netmask == INADDR_NONE) 791 + if (ic_netmask == NONE) 793 792 memcpy(&ic_netmask, ext+1, 4); 794 793 break; 795 794 case 3: /* Default gateway */ 796 - if (ic_gateway == INADDR_NONE) 795 + if (ic_gateway == NONE) 797 796 memcpy(&ic_gateway, ext+1, 4); 798 797 break; 799 798 case 6: /* DNS server */ ··· 801 800 if (servers > CONF_NAMESERVERS_MAX) 802 801 servers = CONF_NAMESERVERS_MAX; 803 802 for (i = 0; i < servers; i++) { 804 - if (ic_nameservers[i] == INADDR_NONE) 803 + if (ic_nameservers[i] == NONE) 805 804 memcpy(&ic_nameservers[i], ext+1+4*i, 4); 806 805 } 807 806 break; ··· 918 917 919 918 #ifdef IPCONFIG_DHCP 920 919 if (ic_proto_enabled & IC_USE_DHCP) { 921 - u32 server_id = INADDR_NONE; 920 + __be32 server_id = NONE; 922 921 int mt = 0; 923 922 924 923 ext = &b->exten[4]; ··· 950 949 /* While in the process of accepting one offer, 951 950 * ignore all others. 952 951 */ 953 - if (ic_myaddr != INADDR_NONE) 952 + if (ic_myaddr != NONE) 954 953 goto drop_unlock; 955 954 956 955 /* Let's accept that offer. */ ··· 966 965 * precedence over the bootp header one if 967 966 * they are different. 968 967 */ 969 - if ((server_id != INADDR_NONE) && 968 + if ((server_id != NONE) && 970 969 (b->server_ip != server_id)) 971 970 b->server_ip = ic_servaddr; 972 971 break; ··· 980 979 981 980 default: 982 981 /* Urque. Forget it*/ 983 - ic_myaddr = INADDR_NONE; 984 - ic_servaddr = INADDR_NONE; 982 + ic_myaddr = NONE; 983 + ic_servaddr = NONE; 985 984 goto drop_unlock; 986 985 }; 987 986 ··· 1005 1004 ic_dev = dev; 1006 1005 ic_myaddr = b->your_ip; 1007 1006 ic_servaddr = b->server_ip; 1008 - if (ic_gateway == INADDR_NONE && b->relay_ip) 1007 + if (ic_gateway == NONE && b->relay_ip) 1009 1008 ic_gateway = b->relay_ip; 1010 - if (ic_nameservers[0] == INADDR_NONE) 1009 + if (ic_nameservers[0] == NONE) 1011 1010 ic_nameservers[0] = ic_servaddr; 1012 1011 ic_got_reply = IC_BOOTP; 1013 1012 ··· 1151 1150 #endif 1152 1151 1153 1152 if (!ic_got_reply) { 1154 - ic_myaddr = INADDR_NONE; 1153 + ic_myaddr = NONE; 1155 1154 return -1; 1156 1155 } 1157 1156 ··· 1183 1182 seq_printf(seq, 1184 1183 "domain %s\n", ic_domain); 1185 1184 for (i = 0; i < CONF_NAMESERVERS_MAX; i++) { 1186 - if (ic_nameservers[i] != INADDR_NONE) 1185 + if (ic_nameservers[i] != NONE) 1187 1186 seq_printf(seq, 1188 1187 "nameserver %u.%u.%u.%u\n", 1189 1188 NIPQUAD(ic_nameservers[i])); 1190 1189 } 1191 - if (ic_servaddr != INADDR_NONE) 1190 + if (ic_servaddr != NONE) 1192 1191 seq_printf(seq, 1193 1192 "bootserver %u.%u.%u.%u\n", 1194 1193 NIPQUAD(ic_servaddr)); ··· 1214 1213 * need to have root_server_addr set _before_ IPConfig gets called as it 1215 1214 * can override it. 1216 1215 */ 1217 - u32 __init root_nfs_parse_addr(char *name) 1216 + __be32 __init root_nfs_parse_addr(char *name) 1218 1217 { 1219 - u32 addr; 1218 + __be32 addr; 1220 1219 int octets = 0; 1221 1220 char *cp, *cq; 1222 1221 ··· 1238 1237 addr = in_aton(name); 1239 1238 memmove(name, cp, strlen(cp) + 1); 1240 1239 } else 1241 - addr = INADDR_NONE; 1240 + addr = NONE; 1242 1241 1243 1242 return addr; 1244 1243 } ··· 1249 1248 1250 1249 static int __init ip_auto_config(void) 1251 1250 { 1252 - u32 addr; 1251 + __be32 addr; 1253 1252 1254 1253 #ifdef CONFIG_PROC_FS 1255 1254 proc_net_fops_create("pnp", S_IRUGO, &pnp_seq_fops); ··· 1278 1277 * interfaces and no default was set), use BOOTP or RARP to get the 1279 1278 * missing values. 1280 1279 */ 1281 - if (ic_myaddr == INADDR_NONE || 1280 + if (ic_myaddr == NONE || 1282 1281 #ifdef CONFIG_ROOT_NFS 1283 1282 (MAJOR(ROOT_DEV) == UNNAMED_MAJOR 1284 - && root_server_addr == INADDR_NONE 1285 - && ic_servaddr == INADDR_NONE) || 1283 + && root_server_addr == NONE 1284 + && ic_servaddr == NONE) || 1286 1285 #endif 1287 1286 ic_first_dev->next) { 1288 1287 #ifdef IPCONFIG_DYNAMIC ··· 1335 1334 } 1336 1335 1337 1336 addr = root_nfs_parse_addr(root_server_path); 1338 - if (root_server_addr == INADDR_NONE) 1337 + if (root_server_addr == NONE) 1339 1338 root_server_addr = addr; 1340 1339 1341 1340 /* ··· 1462 1461 switch (num) { 1463 1462 case 0: 1464 1463 if ((ic_myaddr = in_aton(ip)) == INADDR_ANY) 1465 - ic_myaddr = INADDR_NONE; 1464 + ic_myaddr = NONE; 1466 1465 break; 1467 1466 case 1: 1468 1467 if ((ic_servaddr = in_aton(ip)) == INADDR_ANY) 1469 - ic_servaddr = INADDR_NONE; 1468 + ic_servaddr = NONE; 1470 1469 break; 1471 1470 case 2: 1472 1471 if ((ic_gateway = in_aton(ip)) == INADDR_ANY) 1473 - ic_gateway = INADDR_NONE; 1472 + ic_gateway = NONE; 1474 1473 break; 1475 1474 case 3: 1476 1475 if ((ic_netmask = in_aton(ip)) == INADDR_ANY) 1477 - ic_netmask = INADDR_NONE; 1476 + ic_netmask = NONE; 1478 1477 break; 1479 1478 case 4: 1480 1479 if ((dp = strchr(ip, '.'))) {