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
This commit is contained in:
commit
b0d19a378a
|
@ -1,6 +1,5 @@
|
||||||
menuconfig NEW_LEDS
|
menuconfig NEW_LEDS
|
||||||
bool "LED Support"
|
bool "LED Support"
|
||||||
depends on HAS_IOMEM
|
|
||||||
help
|
help
|
||||||
Say Y to enable Linux LED support. This allows control of supported
|
Say Y to enable Linux LED support. This allows control of supported
|
||||||
LEDs from both userspace and optionally, by kernel events (triggers).
|
LEDs from both userspace and optionally, by kernel events (triggers).
|
||||||
|
|
|
@ -1083,15 +1083,12 @@ static void start_timer(struct scc_priv *priv, int t, int r15)
|
||||||
if (t == 0) {
|
if (t == 0) {
|
||||||
tm_isr(priv);
|
tm_isr(priv);
|
||||||
} else if (t > 0) {
|
} else if (t > 0) {
|
||||||
save_flags(flags);
|
|
||||||
cli();
|
|
||||||
outb(t & 0xFF, priv->tmr_cnt);
|
outb(t & 0xFF, priv->tmr_cnt);
|
||||||
outb((t >> 8) & 0xFF, priv->tmr_cnt);
|
outb((t >> 8) & 0xFF, priv->tmr_cnt);
|
||||||
if (priv->type != TYPE_TWIN) {
|
if (priv->type != TYPE_TWIN) {
|
||||||
write_scc(priv, R15, r15 | CTSIE);
|
write_scc(priv, R15, r15 | CTSIE);
|
||||||
priv->rr0 |= CTS;
|
priv->rr0 |= CTS;
|
||||||
}
|
}
|
||||||
restore_flags(flags);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -49,7 +49,9 @@ config IWL4965_HT
|
||||||
|
|
||||||
config IWL4965_LEDS
|
config IWL4965_LEDS
|
||||||
bool "Enable LEDS features in iwl4965 driver"
|
bool "Enable LEDS features in iwl4965 driver"
|
||||||
depends on IWL4965 && MAC80211_LEDS && LEDS_CLASS
|
depends on IWL4965
|
||||||
|
select MAC80211_LEDS
|
||||||
|
select LEDS_CLASS
|
||||||
select IWLWIFI_LEDS
|
select IWLWIFI_LEDS
|
||||||
---help---
|
---help---
|
||||||
This option enables LEDS for the iwlwifi drivers
|
This option enables LEDS for the iwlwifi drivers
|
||||||
|
@ -134,7 +136,9 @@ config IWL3945_SPECTRUM_MEASUREMENT
|
||||||
|
|
||||||
config IWL3945_LEDS
|
config IWL3945_LEDS
|
||||||
bool "Enable LEDS features in iwl3945 driver"
|
bool "Enable LEDS features in iwl3945 driver"
|
||||||
depends on IWL3945 && MAC80211_LEDS && LEDS_CLASS
|
depends on IWL3945
|
||||||
|
select MAC80211_LEDS
|
||||||
|
select LEDS_CLASS
|
||||||
---help---
|
---help---
|
||||||
This option enables LEDS for the iwl3945 driver.
|
This option enables LEDS for the iwl3945 driver.
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
obj-$(CONFIG_IWLCORE) := iwlcore.o
|
obj-$(CONFIG_IWLCORE) += iwlcore.o
|
||||||
iwlcore-objs := iwl-core.o iwl-eeprom.o iwl-hcmd.o
|
iwlcore-objs := iwl-core.o iwl-eeprom.o iwl-hcmd.o
|
||||||
iwlcore-$(CONFIG_IWLWIFI_DEBUGFS) += iwl-debugfs.o
|
iwlcore-$(CONFIG_IWLWIFI_DEBUGFS) += iwl-debugfs.o
|
||||||
iwlcore-$(CONFIG_IWLWIFI_LEDS) += iwl-led.o
|
iwlcore-$(CONFIG_IWLWIFI_LEDS) += iwl-led.o
|
||||||
|
|
|
@ -60,7 +60,8 @@ config RT2400PCI_RFKILL
|
||||||
|
|
||||||
config RT2400PCI_LEDS
|
config RT2400PCI_LEDS
|
||||||
bool "RT2400 leds support"
|
bool "RT2400 leds support"
|
||||||
depends on RT2400PCI && LEDS_CLASS
|
depends on RT2400PCI
|
||||||
|
select LEDS_CLASS
|
||||||
select RT2X00_LIB_LEDS
|
select RT2X00_LIB_LEDS
|
||||||
---help---
|
---help---
|
||||||
This adds support for led triggers provided my mac80211.
|
This adds support for led triggers provided my mac80211.
|
||||||
|
@ -86,7 +87,8 @@ config RT2500PCI_RFKILL
|
||||||
|
|
||||||
config RT2500PCI_LEDS
|
config RT2500PCI_LEDS
|
||||||
bool "RT2500 leds support"
|
bool "RT2500 leds support"
|
||||||
depends on RT2500PCI && LEDS_CLASS
|
depends on RT2500PCI
|
||||||
|
select LEDS_CLASS
|
||||||
select RT2X00_LIB_LEDS
|
select RT2X00_LIB_LEDS
|
||||||
---help---
|
---help---
|
||||||
This adds support for led triggers provided my mac80211.
|
This adds support for led triggers provided my mac80211.
|
||||||
|
@ -114,7 +116,8 @@ config RT61PCI_RFKILL
|
||||||
|
|
||||||
config RT61PCI_LEDS
|
config RT61PCI_LEDS
|
||||||
bool "RT61 leds support"
|
bool "RT61 leds support"
|
||||||
depends on RT61PCI && LEDS_CLASS
|
depends on RT61PCI
|
||||||
|
select LEDS_CLASS
|
||||||
select RT2X00_LIB_LEDS
|
select RT2X00_LIB_LEDS
|
||||||
---help---
|
---help---
|
||||||
This adds support for led triggers provided my mac80211.
|
This adds support for led triggers provided my mac80211.
|
||||||
|
@ -130,7 +133,8 @@ config RT2500USB
|
||||||
|
|
||||||
config RT2500USB_LEDS
|
config RT2500USB_LEDS
|
||||||
bool "RT2500 leds support"
|
bool "RT2500 leds support"
|
||||||
depends on RT2500USB && LEDS_CLASS
|
depends on RT2500USB
|
||||||
|
select LEDS_CLASS
|
||||||
select RT2X00_LIB_LEDS
|
select RT2X00_LIB_LEDS
|
||||||
---help---
|
---help---
|
||||||
This adds support for led triggers provided my mac80211.
|
This adds support for led triggers provided my mac80211.
|
||||||
|
@ -148,7 +152,8 @@ config RT73USB
|
||||||
|
|
||||||
config RT73USB_LEDS
|
config RT73USB_LEDS
|
||||||
bool "RT73 leds support"
|
bool "RT73 leds support"
|
||||||
depends on RT73USB && LEDS_CLASS
|
depends on RT73USB
|
||||||
|
select LEDS_CLASS
|
||||||
select RT2X00_LIB_LEDS
|
select RT2X00_LIB_LEDS
|
||||||
---help---
|
---help---
|
||||||
This adds support for led triggers provided my mac80211.
|
This adds support for led triggers provided my mac80211.
|
||||||
|
|
|
@ -436,6 +436,9 @@ struct xfrm_tmpl
|
||||||
/* May skip this transfomration if no SA is found */
|
/* May skip this transfomration if no SA is found */
|
||||||
__u8 optional;
|
__u8 optional;
|
||||||
|
|
||||||
|
/* Skip aalgos/ealgos/calgos checks. */
|
||||||
|
__u8 allalgs;
|
||||||
|
|
||||||
/* Bit mask of algos allowed for acquisition */
|
/* Bit mask of algos allowed for acquisition */
|
||||||
__u32 aalgos;
|
__u32 aalgos;
|
||||||
__u32 ealgos;
|
__u32 ealgos;
|
||||||
|
|
|
@ -379,6 +379,7 @@ void set_normalized_timespec(struct timespec *ts, time_t sec, long nsec)
|
||||||
ts->tv_sec = sec;
|
ts->tv_sec = sec;
|
||||||
ts->tv_nsec = nsec;
|
ts->tv_nsec = nsec;
|
||||||
}
|
}
|
||||||
|
EXPORT_SYMBOL(set_normalized_timespec);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* ns_to_timespec - Convert nanoseconds to timespec
|
* ns_to_timespec - Convert nanoseconds to timespec
|
||||||
|
|
|
@ -87,6 +87,7 @@ static ssize_t netdev_store(struct device *dev, struct device_attribute *attr,
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
NETDEVICE_SHOW(dev_id, fmt_hex);
|
||||||
NETDEVICE_SHOW(addr_len, fmt_dec);
|
NETDEVICE_SHOW(addr_len, fmt_dec);
|
||||||
NETDEVICE_SHOW(iflink, fmt_dec);
|
NETDEVICE_SHOW(iflink, fmt_dec);
|
||||||
NETDEVICE_SHOW(ifindex, fmt_dec);
|
NETDEVICE_SHOW(ifindex, fmt_dec);
|
||||||
|
@ -210,6 +211,7 @@ static ssize_t store_tx_queue_len(struct device *dev,
|
||||||
|
|
||||||
static struct device_attribute net_class_attributes[] = {
|
static struct device_attribute net_class_attributes[] = {
|
||||||
__ATTR(addr_len, S_IRUGO, show_addr_len, NULL),
|
__ATTR(addr_len, S_IRUGO, show_addr_len, NULL),
|
||||||
|
__ATTR(dev_id, S_IRUGO, show_dev_id, NULL),
|
||||||
__ATTR(iflink, S_IRUGO, show_iflink, NULL),
|
__ATTR(iflink, S_IRUGO, show_iflink, NULL),
|
||||||
__ATTR(ifindex, S_IRUGO, show_ifindex, NULL),
|
__ATTR(ifindex, S_IRUGO, show_ifindex, NULL),
|
||||||
__ATTR(features, S_IRUGO, show_features, NULL),
|
__ATTR(features, S_IRUGO, show_features, NULL),
|
||||||
|
|
|
@ -46,29 +46,24 @@ struct {
|
||||||
struct kfifo *fifo;
|
struct kfifo *fifo;
|
||||||
spinlock_t lock;
|
spinlock_t lock;
|
||||||
wait_queue_head_t wait;
|
wait_queue_head_t wait;
|
||||||
struct timeval tstart;
|
struct timespec tstart;
|
||||||
} dccpw;
|
} dccpw;
|
||||||
|
|
||||||
static void printl(const char *fmt, ...)
|
static void printl(const char *fmt, ...)
|
||||||
{
|
{
|
||||||
va_list args;
|
va_list args;
|
||||||
int len;
|
int len;
|
||||||
struct timeval now;
|
struct timespec now;
|
||||||
char tbuf[256];
|
char tbuf[256];
|
||||||
|
|
||||||
va_start(args, fmt);
|
va_start(args, fmt);
|
||||||
do_gettimeofday(&now);
|
getnstimeofday(&now);
|
||||||
|
|
||||||
now.tv_sec -= dccpw.tstart.tv_sec;
|
now = timespec_sub(now, dccpw.tstart);
|
||||||
now.tv_usec -= dccpw.tstart.tv_usec;
|
|
||||||
if (now.tv_usec < 0) {
|
|
||||||
--now.tv_sec;
|
|
||||||
now.tv_usec += 1000000;
|
|
||||||
}
|
|
||||||
|
|
||||||
len = sprintf(tbuf, "%lu.%06lu ",
|
len = sprintf(tbuf, "%lu.%06lu ",
|
||||||
(unsigned long) now.tv_sec,
|
(unsigned long) now.tv_sec,
|
||||||
(unsigned long) now.tv_usec);
|
(unsigned long) now.tv_nsec / NSEC_PER_USEC);
|
||||||
len += vscnprintf(tbuf+len, sizeof(tbuf)-len, fmt, args);
|
len += vscnprintf(tbuf+len, sizeof(tbuf)-len, fmt, args);
|
||||||
va_end(args);
|
va_end(args);
|
||||||
|
|
||||||
|
@ -119,7 +114,7 @@ static struct jprobe dccp_send_probe = {
|
||||||
static int dccpprobe_open(struct inode *inode, struct file *file)
|
static int dccpprobe_open(struct inode *inode, struct file *file)
|
||||||
{
|
{
|
||||||
kfifo_reset(dccpw.fifo);
|
kfifo_reset(dccpw.fifo);
|
||||||
do_gettimeofday(&dccpw.tstart);
|
getnstimeofday(&dccpw.tstart);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -847,7 +847,7 @@ static void icmp_echo(struct sk_buff *skb)
|
||||||
*/
|
*/
|
||||||
static void icmp_timestamp(struct sk_buff *skb)
|
static void icmp_timestamp(struct sk_buff *skb)
|
||||||
{
|
{
|
||||||
struct timeval tv;
|
struct timespec tv;
|
||||||
struct icmp_bxm icmp_param;
|
struct icmp_bxm icmp_param;
|
||||||
/*
|
/*
|
||||||
* Too short.
|
* Too short.
|
||||||
|
@ -858,9 +858,9 @@ static void icmp_timestamp(struct sk_buff *skb)
|
||||||
/*
|
/*
|
||||||
* Fill in the current time as ms since midnight UT:
|
* Fill in the current time as ms since midnight UT:
|
||||||
*/
|
*/
|
||||||
do_gettimeofday(&tv);
|
getnstimeofday(&tv);
|
||||||
icmp_param.data.times[1] = htonl((tv.tv_sec % 86400) * 1000 +
|
icmp_param.data.times[1] = htonl((tv.tv_sec % 86400) * MSEC_PER_SEC +
|
||||||
tv.tv_usec / 1000);
|
tv.tv_nsec / NSEC_PER_MSEC);
|
||||||
icmp_param.data.times[2] = icmp_param.data.times[1];
|
icmp_param.data.times[2] = icmp_param.data.times[1];
|
||||||
if (skb_copy_bits(skb, 0, &icmp_param.data.times[0], 4))
|
if (skb_copy_bits(skb, 0, &icmp_param.data.times[0], 4))
|
||||||
BUG();
|
BUG();
|
||||||
|
@ -1144,7 +1144,7 @@ static void __net_exit icmp_sk_exit(struct net *net)
|
||||||
net->ipv4.icmp_sk = NULL;
|
net->ipv4.icmp_sk = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
int __net_init icmp_sk_init(struct net *net)
|
static int __net_init icmp_sk_init(struct net *net)
|
||||||
{
|
{
|
||||||
int i, err;
|
int i, err;
|
||||||
|
|
||||||
|
|
|
@ -55,10 +55,10 @@ void ip_options_build(struct sk_buff * skb, struct ip_options * opt,
|
||||||
if (opt->ts_needaddr)
|
if (opt->ts_needaddr)
|
||||||
ip_rt_get_source(iph+opt->ts+iph[opt->ts+2]-9, rt);
|
ip_rt_get_source(iph+opt->ts+iph[opt->ts+2]-9, rt);
|
||||||
if (opt->ts_needtime) {
|
if (opt->ts_needtime) {
|
||||||
struct timeval tv;
|
struct timespec tv;
|
||||||
__be32 midtime;
|
__be32 midtime;
|
||||||
do_gettimeofday(&tv);
|
getnstimeofday(&tv);
|
||||||
midtime = htonl((tv.tv_sec % 86400) * 1000 + tv.tv_usec / 1000);
|
midtime = htonl((tv.tv_sec % 86400) * MSEC_PER_SEC + tv.tv_nsec / NSEC_PER_MSEC);
|
||||||
memcpy(iph+opt->ts+iph[opt->ts+2]-5, &midtime, 4);
|
memcpy(iph+opt->ts+iph[opt->ts+2]-5, &midtime, 4);
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
|
@ -406,10 +406,10 @@ int ip_options_compile(struct net *net,
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if (timeptr) {
|
if (timeptr) {
|
||||||
struct timeval tv;
|
struct timespec tv;
|
||||||
__be32 midtime;
|
__be32 midtime;
|
||||||
do_gettimeofday(&tv);
|
getnstimeofday(&tv);
|
||||||
midtime = htonl((tv.tv_sec % 86400) * 1000 + tv.tv_usec / 1000);
|
midtime = htonl((tv.tv_sec % 86400) * MSEC_PER_SEC + tv.tv_nsec / NSEC_PER_MSEC);
|
||||||
memcpy(timeptr, &midtime, sizeof(__be32));
|
memcpy(timeptr, &midtime, sizeof(__be32));
|
||||||
opt->is_changed = 1;
|
opt->is_changed = 1;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1722,7 +1722,7 @@ static int tcp_close_state(struct sock *sk)
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Shutdown the sending side of a connection. Much like close except
|
* Shutdown the sending side of a connection. Much like close except
|
||||||
* that we don't receive shut down or set_sock_flag(sk, SOCK_DEAD).
|
* that we don't receive shut down or sock_set_flag(sk, SOCK_DEAD).
|
||||||
*/
|
*/
|
||||||
|
|
||||||
void tcp_shutdown(struct sock *sk, int how)
|
void tcp_shutdown(struct sock *sk, int how)
|
||||||
|
|
|
@ -2298,7 +2298,7 @@ static inline int tcp_packet_delayed(struct tcp_sock *tp)
|
||||||
{
|
{
|
||||||
return !tp->retrans_stamp ||
|
return !tp->retrans_stamp ||
|
||||||
(tp->rx_opt.saw_tstamp && tp->rx_opt.rcv_tsecr &&
|
(tp->rx_opt.saw_tstamp && tp->rx_opt.rcv_tsecr &&
|
||||||
(__s32)(tp->rx_opt.rcv_tsecr - tp->retrans_stamp) < 0);
|
before(tp->rx_opt.rcv_tsecr, tp->retrans_stamp));
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Undo procedures. */
|
/* Undo procedures. */
|
||||||
|
|
|
@ -4338,12 +4338,6 @@ int unregister_inet6addr_notifier(struct notifier_block *nb)
|
||||||
|
|
||||||
EXPORT_SYMBOL(unregister_inet6addr_notifier);
|
EXPORT_SYMBOL(unregister_inet6addr_notifier);
|
||||||
|
|
||||||
|
|
||||||
static int addrconf_net_init(struct net *net)
|
|
||||||
{
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void addrconf_net_exit(struct net *net)
|
static void addrconf_net_exit(struct net *net)
|
||||||
{
|
{
|
||||||
struct net_device *dev;
|
struct net_device *dev;
|
||||||
|
@ -4360,7 +4354,6 @@ static void addrconf_net_exit(struct net *net)
|
||||||
}
|
}
|
||||||
|
|
||||||
static struct pernet_operations addrconf_net_ops = {
|
static struct pernet_operations addrconf_net_ops = {
|
||||||
.init = addrconf_net_init,
|
|
||||||
.exit = addrconf_net_exit,
|
.exit = addrconf_net_exit,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -1543,7 +1543,7 @@ out_timer:
|
||||||
static void fib6_net_exit(struct net *net)
|
static void fib6_net_exit(struct net *net)
|
||||||
{
|
{
|
||||||
rt6_ifdown(net, NULL);
|
rt6_ifdown(net, NULL);
|
||||||
del_timer(net->ipv6.ip6_fib_timer);
|
del_timer_sync(net->ipv6.ip6_fib_timer);
|
||||||
kfree(net->ipv6.ip6_fib_timer);
|
kfree(net->ipv6.ip6_fib_timer);
|
||||||
#ifdef CONFIG_IPV6_MULTIPLE_TABLES
|
#ifdef CONFIG_IPV6_MULTIPLE_TABLES
|
||||||
kfree(net->ipv6.fib6_local_tbl);
|
kfree(net->ipv6.fib6_local_tbl);
|
||||||
|
|
|
@ -150,7 +150,7 @@ static struct rt6_info ip6_null_entry_template = {
|
||||||
static int ip6_pkt_prohibit(struct sk_buff *skb);
|
static int ip6_pkt_prohibit(struct sk_buff *skb);
|
||||||
static int ip6_pkt_prohibit_out(struct sk_buff *skb);
|
static int ip6_pkt_prohibit_out(struct sk_buff *skb);
|
||||||
|
|
||||||
struct rt6_info ip6_prohibit_entry_template = {
|
static struct rt6_info ip6_prohibit_entry_template = {
|
||||||
.u = {
|
.u = {
|
||||||
.dst = {
|
.dst = {
|
||||||
.__refcnt = ATOMIC_INIT(1),
|
.__refcnt = ATOMIC_INIT(1),
|
||||||
|
@ -2614,9 +2614,8 @@ struct ctl_table *ipv6_route_sysctl_init(struct net *net)
|
||||||
|
|
||||||
static int ip6_route_net_init(struct net *net)
|
static int ip6_route_net_init(struct net *net)
|
||||||
{
|
{
|
||||||
int ret = 0;
|
int ret = -ENOMEM;
|
||||||
|
|
||||||
ret = -ENOMEM;
|
|
||||||
net->ipv6.ip6_dst_ops = kmemdup(&ip6_dst_ops_template,
|
net->ipv6.ip6_dst_ops = kmemdup(&ip6_dst_ops_template,
|
||||||
sizeof(*net->ipv6.ip6_dst_ops),
|
sizeof(*net->ipv6.ip6_dst_ops),
|
||||||
GFP_KERNEL);
|
GFP_KERNEL);
|
||||||
|
|
|
@ -1907,7 +1907,7 @@ parse_ipsecrequest(struct xfrm_policy *xp, struct sadb_x_ipsecrequest *rq)
|
||||||
t->encap_family = xp->family;
|
t->encap_family = xp->family;
|
||||||
|
|
||||||
/* No way to set this via kame pfkey */
|
/* No way to set this via kame pfkey */
|
||||||
t->aalgos = t->ealgos = t->calgos = ~0;
|
t->allalgs = 1;
|
||||||
xp->xfrm_nr++;
|
xp->xfrm_nr++;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
|
@ -857,7 +857,6 @@ int rose_route_frame(struct sk_buff *skb, ax25_cb *ax25)
|
||||||
src_addr = (rose_address *)(skb->data + 9);
|
src_addr = (rose_address *)(skb->data + 9);
|
||||||
dest_addr = (rose_address *)(skb->data + 4);
|
dest_addr = (rose_address *)(skb->data + 4);
|
||||||
|
|
||||||
spin_lock_bh(&rose_node_list_lock);
|
|
||||||
spin_lock_bh(&rose_neigh_list_lock);
|
spin_lock_bh(&rose_neigh_list_lock);
|
||||||
spin_lock_bh(&rose_route_list_lock);
|
spin_lock_bh(&rose_route_list_lock);
|
||||||
|
|
||||||
|
@ -1060,7 +1059,6 @@ int rose_route_frame(struct sk_buff *skb, ax25_cb *ax25)
|
||||||
out:
|
out:
|
||||||
spin_unlock_bh(&rose_route_list_lock);
|
spin_unlock_bh(&rose_route_list_lock);
|
||||||
spin_unlock_bh(&rose_neigh_list_lock);
|
spin_unlock_bh(&rose_neigh_list_lock);
|
||||||
spin_unlock_bh(&rose_node_list_lock);
|
|
||||||
|
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
|
@ -2327,9 +2327,6 @@ int kernel_sock_shutdown(struct socket *sock, enum sock_shutdown_cmd how)
|
||||||
return sock->ops->shutdown(sock, how);
|
return sock->ops->shutdown(sock, how);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ABI emulation layers need these two */
|
|
||||||
EXPORT_SYMBOL(move_addr_to_kernel);
|
|
||||||
EXPORT_SYMBOL(move_addr_to_user);
|
|
||||||
EXPORT_SYMBOL(sock_create);
|
EXPORT_SYMBOL(sock_create);
|
||||||
EXPORT_SYMBOL(sock_create_kern);
|
EXPORT_SYMBOL(sock_create_kern);
|
||||||
EXPORT_SYMBOL(sock_create_lite);
|
EXPORT_SYMBOL(sock_create_lite);
|
||||||
|
|
|
@ -1819,7 +1819,7 @@ xfrm_state_ok(struct xfrm_tmpl *tmpl, struct xfrm_state *x,
|
||||||
(x->id.spi == tmpl->id.spi || !tmpl->id.spi) &&
|
(x->id.spi == tmpl->id.spi || !tmpl->id.spi) &&
|
||||||
(x->props.reqid == tmpl->reqid || !tmpl->reqid) &&
|
(x->props.reqid == tmpl->reqid || !tmpl->reqid) &&
|
||||||
x->props.mode == tmpl->mode &&
|
x->props.mode == tmpl->mode &&
|
||||||
((tmpl->aalgos & (1<<x->props.aalgo)) ||
|
(tmpl->allalgs || (tmpl->aalgos & (1<<x->props.aalgo)) ||
|
||||||
!(xfrm_id_proto_match(tmpl->id.proto, IPSEC_PROTO_ANY))) &&
|
!(xfrm_id_proto_match(tmpl->id.proto, IPSEC_PROTO_ANY))) &&
|
||||||
!(x->props.mode != XFRM_MODE_TRANSPORT &&
|
!(x->props.mode != XFRM_MODE_TRANSPORT &&
|
||||||
xfrm_state_addr_cmp(tmpl, x, family));
|
xfrm_state_addr_cmp(tmpl, x, family));
|
||||||
|
|
|
@ -981,6 +981,8 @@ static void copy_templates(struct xfrm_policy *xp, struct xfrm_user_tmpl *ut,
|
||||||
t->aalgos = ut->aalgos;
|
t->aalgos = ut->aalgos;
|
||||||
t->ealgos = ut->ealgos;
|
t->ealgos = ut->ealgos;
|
||||||
t->calgos = ut->calgos;
|
t->calgos = ut->calgos;
|
||||||
|
/* If all masks are ~0, then we allow all algorithms. */
|
||||||
|
t->allalgs = !~(t->aalgos & t->ealgos & t->calgos);
|
||||||
t->encap_family = ut->family;
|
t->encap_family = ut->family;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue