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

Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6

* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6:
iwlwifi: Fix built-in compilation of iwlcore
net: Unexport move_addr_to_{kernel,user}
rt2x00: Select LEDS_CLASS.
iwlwifi: Select LEDS_CLASS.
leds: Do not guard NEW_LEDS with HAS_IOMEM
[IPSEC]: Fix catch-22 with algorithm IDs above 31
time: Export set_normalized_timespec.
tcp: Make use of before macro in tcp_input.c
hamradio: Remove unneeded and deprecated cli()/sti() calls in dmascc.c
[NETNS]: Remove empty ->init callback.
[DCCP]: Convert do_gettimeofday() to getnstimeofday().
[NETNS]: Don't initialize err variable twice.
[NETNS]: The ip6_fib_timer can work with garbage on net namespace stop.
[IPV4]: Convert do_gettimeofday() to getnstimeofday().
[IPV4]: Make icmp_sk_init() static.
[IPV6]: Make struct ip6_prohibit_entry_template static.
tcp: Trivial fix to correct function name in a comment in net/ipv4/tcp.c
[NET]: Expose netdevice dev_id through sysfs
skbuff: fix missing kernel-doc notation
[ROSE]: Fix soft lockup wrt. rose_node_list_lock

+49 -54
-1
drivers/leds/Kconfig
··· 1 1 menuconfig NEW_LEDS 2 2 bool "LED Support" 3 - depends on HAS_IOMEM 4 3 help 5 4 Say Y to enable Linux LED support. This allows control of supported 6 5 LEDs from both userspace and optionally, by kernel events (triggers).
-3
drivers/net/hamradio/dmascc.c
··· 1083 1083 if (t == 0) { 1084 1084 tm_isr(priv); 1085 1085 } else if (t > 0) { 1086 - save_flags(flags); 1087 - cli(); 1088 1086 outb(t & 0xFF, priv->tmr_cnt); 1089 1087 outb((t >> 8) & 0xFF, priv->tmr_cnt); 1090 1088 if (priv->type != TYPE_TWIN) { 1091 1089 write_scc(priv, R15, r15 | CTSIE); 1092 1090 priv->rr0 |= CTS; 1093 1091 } 1094 - restore_flags(flags); 1095 1092 } 1096 1093 } 1097 1094
+6 -2
drivers/net/wireless/iwlwifi/Kconfig
··· 49 49 50 50 config IWL4965_LEDS 51 51 bool "Enable LEDS features in iwl4965 driver" 52 - depends on IWL4965 && MAC80211_LEDS && LEDS_CLASS 52 + depends on IWL4965 53 + select MAC80211_LEDS 54 + select LEDS_CLASS 53 55 select IWLWIFI_LEDS 54 56 ---help--- 55 57 This option enables LEDS for the iwlwifi drivers ··· 136 134 137 135 config IWL3945_LEDS 138 136 bool "Enable LEDS features in iwl3945 driver" 139 - depends on IWL3945 && MAC80211_LEDS && LEDS_CLASS 137 + depends on IWL3945 138 + select MAC80211_LEDS 139 + select LEDS_CLASS 140 140 ---help--- 141 141 This option enables LEDS for the iwl3945 driver. 142 142
+1 -1
drivers/net/wireless/iwlwifi/Makefile
··· 1 - obj-$(CONFIG_IWLCORE) := iwlcore.o 1 + obj-$(CONFIG_IWLCORE) += iwlcore.o 2 2 iwlcore-objs := iwl-core.o iwl-eeprom.o iwl-hcmd.o 3 3 iwlcore-$(CONFIG_IWLWIFI_DEBUGFS) += iwl-debugfs.o 4 4 iwlcore-$(CONFIG_IWLWIFI_LEDS) += iwl-led.o
+10 -5
drivers/net/wireless/rt2x00/Kconfig
··· 60 60 61 61 config RT2400PCI_LEDS 62 62 bool "RT2400 leds support" 63 - depends on RT2400PCI && LEDS_CLASS 63 + depends on RT2400PCI 64 + select LEDS_CLASS 64 65 select RT2X00_LIB_LEDS 65 66 ---help--- 66 67 This adds support for led triggers provided my mac80211. ··· 87 86 88 87 config RT2500PCI_LEDS 89 88 bool "RT2500 leds support" 90 - depends on RT2500PCI && LEDS_CLASS 89 + depends on RT2500PCI 90 + select LEDS_CLASS 91 91 select RT2X00_LIB_LEDS 92 92 ---help--- 93 93 This adds support for led triggers provided my mac80211. ··· 116 114 117 115 config RT61PCI_LEDS 118 116 bool "RT61 leds support" 119 - depends on RT61PCI && LEDS_CLASS 117 + depends on RT61PCI 118 + select LEDS_CLASS 120 119 select RT2X00_LIB_LEDS 121 120 ---help--- 122 121 This adds support for led triggers provided my mac80211. ··· 133 130 134 131 config RT2500USB_LEDS 135 132 bool "RT2500 leds support" 136 - depends on RT2500USB && LEDS_CLASS 133 + depends on RT2500USB 134 + select LEDS_CLASS 137 135 select RT2X00_LIB_LEDS 138 136 ---help--- 139 137 This adds support for led triggers provided my mac80211. ··· 152 148 153 149 config RT73USB_LEDS 154 150 bool "RT73 leds support" 155 - depends on RT73USB && LEDS_CLASS 151 + depends on RT73USB 152 + select LEDS_CLASS 156 153 select RT2X00_LIB_LEDS 157 154 ---help--- 158 155 This adds support for led triggers provided my mac80211.
+3
include/net/xfrm.h
··· 436 436 /* May skip this transfomration if no SA is found */ 437 437 __u8 optional; 438 438 439 + /* Skip aalgos/ealgos/calgos checks. */ 440 + __u8 allalgs; 441 + 439 442 /* Bit mask of algos allowed for acquisition */ 440 443 __u32 aalgos; 441 444 __u32 ealgos;
+1
kernel/time.c
··· 379 379 ts->tv_sec = sec; 380 380 ts->tv_nsec = nsec; 381 381 } 382 + EXPORT_SYMBOL(set_normalized_timespec); 382 383 383 384 /** 384 385 * ns_to_timespec - Convert nanoseconds to timespec
+2
net/core/net-sysfs.c
··· 87 87 return ret; 88 88 } 89 89 90 + NETDEVICE_SHOW(dev_id, fmt_hex); 90 91 NETDEVICE_SHOW(addr_len, fmt_dec); 91 92 NETDEVICE_SHOW(iflink, fmt_dec); 92 93 NETDEVICE_SHOW(ifindex, fmt_dec); ··· 211 210 212 211 static struct device_attribute net_class_attributes[] = { 213 212 __ATTR(addr_len, S_IRUGO, show_addr_len, NULL), 213 + __ATTR(dev_id, S_IRUGO, show_dev_id, NULL), 214 214 __ATTR(iflink, S_IRUGO, show_iflink, NULL), 215 215 __ATTR(ifindex, S_IRUGO, show_ifindex, NULL), 216 216 __ATTR(features, S_IRUGO, show_features, NULL),
+6 -11
net/dccp/probe.c
··· 46 46 struct kfifo *fifo; 47 47 spinlock_t lock; 48 48 wait_queue_head_t wait; 49 - struct timeval tstart; 49 + struct timespec tstart; 50 50 } dccpw; 51 51 52 52 static void printl(const char *fmt, ...) 53 53 { 54 54 va_list args; 55 55 int len; 56 - struct timeval now; 56 + struct timespec now; 57 57 char tbuf[256]; 58 58 59 59 va_start(args, fmt); 60 - do_gettimeofday(&now); 60 + getnstimeofday(&now); 61 61 62 - now.tv_sec -= dccpw.tstart.tv_sec; 63 - now.tv_usec -= dccpw.tstart.tv_usec; 64 - if (now.tv_usec < 0) { 65 - --now.tv_sec; 66 - now.tv_usec += 1000000; 67 - } 62 + now = timespec_sub(now, dccpw.tstart); 68 63 69 64 len = sprintf(tbuf, "%lu.%06lu ", 70 65 (unsigned long) now.tv_sec, 71 - (unsigned long) now.tv_usec); 66 + (unsigned long) now.tv_nsec / NSEC_PER_USEC); 72 67 len += vscnprintf(tbuf+len, sizeof(tbuf)-len, fmt, args); 73 68 va_end(args); 74 69 ··· 114 119 static int dccpprobe_open(struct inode *inode, struct file *file) 115 120 { 116 121 kfifo_reset(dccpw.fifo); 117 - do_gettimeofday(&dccpw.tstart); 122 + getnstimeofday(&dccpw.tstart); 118 123 return 0; 119 124 } 120 125
+5 -5
net/ipv4/icmp.c
··· 847 847 */ 848 848 static void icmp_timestamp(struct sk_buff *skb) 849 849 { 850 - struct timeval tv; 850 + struct timespec tv; 851 851 struct icmp_bxm icmp_param; 852 852 /* 853 853 * Too short. ··· 858 858 /* 859 859 * Fill in the current time as ms since midnight UT: 860 860 */ 861 - do_gettimeofday(&tv); 862 - icmp_param.data.times[1] = htonl((tv.tv_sec % 86400) * 1000 + 863 - tv.tv_usec / 1000); 861 + getnstimeofday(&tv); 862 + icmp_param.data.times[1] = htonl((tv.tv_sec % 86400) * MSEC_PER_SEC + 863 + tv.tv_nsec / NSEC_PER_MSEC); 864 864 icmp_param.data.times[2] = icmp_param.data.times[1]; 865 865 if (skb_copy_bits(skb, 0, &icmp_param.data.times[0], 4)) 866 866 BUG(); ··· 1144 1144 net->ipv4.icmp_sk = NULL; 1145 1145 } 1146 1146 1147 - int __net_init icmp_sk_init(struct net *net) 1147 + static int __net_init icmp_sk_init(struct net *net) 1148 1148 { 1149 1149 int i, err; 1150 1150
+6 -6
net/ipv4/ip_options.c
··· 55 55 if (opt->ts_needaddr) 56 56 ip_rt_get_source(iph+opt->ts+iph[opt->ts+2]-9, rt); 57 57 if (opt->ts_needtime) { 58 - struct timeval tv; 58 + struct timespec tv; 59 59 __be32 midtime; 60 - do_gettimeofday(&tv); 61 - midtime = htonl((tv.tv_sec % 86400) * 1000 + tv.tv_usec / 1000); 60 + getnstimeofday(&tv); 61 + midtime = htonl((tv.tv_sec % 86400) * MSEC_PER_SEC + tv.tv_nsec / NSEC_PER_MSEC); 62 62 memcpy(iph+opt->ts+iph[opt->ts+2]-5, &midtime, 4); 63 63 } 64 64 return; ··· 406 406 break; 407 407 } 408 408 if (timeptr) { 409 - struct timeval tv; 409 + struct timespec tv; 410 410 __be32 midtime; 411 - do_gettimeofday(&tv); 412 - midtime = htonl((tv.tv_sec % 86400) * 1000 + tv.tv_usec / 1000); 411 + getnstimeofday(&tv); 412 + midtime = htonl((tv.tv_sec % 86400) * MSEC_PER_SEC + tv.tv_nsec / NSEC_PER_MSEC); 413 413 memcpy(timeptr, &midtime, sizeof(__be32)); 414 414 opt->is_changed = 1; 415 415 }
+1 -1
net/ipv4/tcp.c
··· 1722 1722 1723 1723 /* 1724 1724 * Shutdown the sending side of a connection. Much like close except 1725 - * that we don't receive shut down or set_sock_flag(sk, SOCK_DEAD). 1725 + * that we don't receive shut down or sock_set_flag(sk, SOCK_DEAD). 1726 1726 */ 1727 1727 1728 1728 void tcp_shutdown(struct sock *sk, int how)
+1 -1
net/ipv4/tcp_input.c
··· 2298 2298 { 2299 2299 return !tp->retrans_stamp || 2300 2300 (tp->rx_opt.saw_tstamp && tp->rx_opt.rcv_tsecr && 2301 - (__s32)(tp->rx_opt.rcv_tsecr - tp->retrans_stamp) < 0); 2301 + before(tp->rx_opt.rcv_tsecr, tp->retrans_stamp)); 2302 2302 } 2303 2303 2304 2304 /* Undo procedures. */
-7
net/ipv6/addrconf.c
··· 4338 4338 4339 4339 EXPORT_SYMBOL(unregister_inet6addr_notifier); 4340 4340 4341 - 4342 - static int addrconf_net_init(struct net *net) 4343 - { 4344 - return 0; 4345 - } 4346 - 4347 4341 static void addrconf_net_exit(struct net *net) 4348 4342 { 4349 4343 struct net_device *dev; ··· 4354 4360 } 4355 4361 4356 4362 static struct pernet_operations addrconf_net_ops = { 4357 - .init = addrconf_net_init, 4358 4363 .exit = addrconf_net_exit, 4359 4364 }; 4360 4365
+1 -1
net/ipv6/ip6_fib.c
··· 1543 1543 static void fib6_net_exit(struct net *net) 1544 1544 { 1545 1545 rt6_ifdown(net, NULL); 1546 - del_timer(net->ipv6.ip6_fib_timer); 1546 + del_timer_sync(net->ipv6.ip6_fib_timer); 1547 1547 kfree(net->ipv6.ip6_fib_timer); 1548 1548 #ifdef CONFIG_IPV6_MULTIPLE_TABLES 1549 1549 kfree(net->ipv6.fib6_local_tbl);
+2 -3
net/ipv6/route.c
··· 150 150 static int ip6_pkt_prohibit(struct sk_buff *skb); 151 151 static int ip6_pkt_prohibit_out(struct sk_buff *skb); 152 152 153 - struct rt6_info ip6_prohibit_entry_template = { 153 + static struct rt6_info ip6_prohibit_entry_template = { 154 154 .u = { 155 155 .dst = { 156 156 .__refcnt = ATOMIC_INIT(1), ··· 2614 2614 2615 2615 static int ip6_route_net_init(struct net *net) 2616 2616 { 2617 - int ret = 0; 2617 + int ret = -ENOMEM; 2618 2618 2619 - ret = -ENOMEM; 2620 2619 net->ipv6.ip6_dst_ops = kmemdup(&ip6_dst_ops_template, 2621 2620 sizeof(*net->ipv6.ip6_dst_ops), 2622 2621 GFP_KERNEL);
+1 -1
net/key/af_key.c
··· 1907 1907 t->encap_family = xp->family; 1908 1908 1909 1909 /* No way to set this via kame pfkey */ 1910 - t->aalgos = t->ealgos = t->calgos = ~0; 1910 + t->allalgs = 1; 1911 1911 xp->xfrm_nr++; 1912 1912 return 0; 1913 1913 }
-2
net/rose/rose_route.c
··· 857 857 src_addr = (rose_address *)(skb->data + 9); 858 858 dest_addr = (rose_address *)(skb->data + 4); 859 859 860 - spin_lock_bh(&rose_node_list_lock); 861 860 spin_lock_bh(&rose_neigh_list_lock); 862 861 spin_lock_bh(&rose_route_list_lock); 863 862 ··· 1059 1060 out: 1060 1061 spin_unlock_bh(&rose_route_list_lock); 1061 1062 spin_unlock_bh(&rose_neigh_list_lock); 1062 - spin_unlock_bh(&rose_node_list_lock); 1063 1063 1064 1064 return res; 1065 1065 }
-3
net/socket.c
··· 2327 2327 return sock->ops->shutdown(sock, how); 2328 2328 } 2329 2329 2330 - /* ABI emulation layers need these two */ 2331 - EXPORT_SYMBOL(move_addr_to_kernel); 2332 - EXPORT_SYMBOL(move_addr_to_user); 2333 2330 EXPORT_SYMBOL(sock_create); 2334 2331 EXPORT_SYMBOL(sock_create_kern); 2335 2332 EXPORT_SYMBOL(sock_create_lite);
+1 -1
net/xfrm/xfrm_policy.c
··· 1819 1819 (x->id.spi == tmpl->id.spi || !tmpl->id.spi) && 1820 1820 (x->props.reqid == tmpl->reqid || !tmpl->reqid) && 1821 1821 x->props.mode == tmpl->mode && 1822 - ((tmpl->aalgos & (1<<x->props.aalgo)) || 1822 + (tmpl->allalgs || (tmpl->aalgos & (1<<x->props.aalgo)) || 1823 1823 !(xfrm_id_proto_match(tmpl->id.proto, IPSEC_PROTO_ANY))) && 1824 1824 !(x->props.mode != XFRM_MODE_TRANSPORT && 1825 1825 xfrm_state_addr_cmp(tmpl, x, family));
+2
net/xfrm/xfrm_user.c
··· 981 981 t->aalgos = ut->aalgos; 982 982 t->ealgos = ut->ealgos; 983 983 t->calgos = ut->calgos; 984 + /* If all masks are ~0, then we allow all algorithms. */ 985 + t->allalgs = !~(t->aalgos & t->ealgos & t->calgos); 984 986 t->encap_family = ut->family; 985 987 } 986 988 }