kernel: update 4.1 to 4.1.10
Fixes a regression on spi flash devices (upstream commit 1583eaece6fa). Changelogs: * https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.1.7 * https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.1.8 * https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.1.9 * https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.1.10 096-ipv4-off-by-one-in-continuation-handling-in-proc-net.patch was applied upstream and dropped. Signed-off-by: Mathias Kresin <openwrt@kresin.me> [update from 4.1.9 to 4.1.10] Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de> SVN-Revision: 47104
This commit is contained in:
@@ -1,46 +0,0 @@
|
||||
From 25b97c016b26039982daaa2c11d83979f93b71ab Mon Sep 17 00:00:00 2001
|
||||
From: Andy Whitcroft <apw@canonical.com>
|
||||
Date: Thu, 13 Aug 2015 20:49:01 +0100
|
||||
Subject: [PATCH] ipv4: off-by-one in continuation handling in /proc/net/route
|
||||
|
||||
When generating /proc/net/route we emit a header followed by a line for
|
||||
each route. When a short read is performed we will restart this process
|
||||
based on the open file descriptor. When calculating the start point we
|
||||
fail to take into account that the 0th entry is the header. This leads
|
||||
us to skip the first entry when doing a continuation read.
|
||||
|
||||
This can be easily seen with the comparison below:
|
||||
|
||||
while read l; do echo "$l"; done </proc/net/route >A
|
||||
cat /proc/net/route >B
|
||||
diff -bu A B | grep '^[+-]'
|
||||
|
||||
On my example machine I have approximatly 10KB of route output. There we
|
||||
see the very first non-title element is lost in the while read case,
|
||||
and an entry around the 8K mark in the cat case:
|
||||
|
||||
+wlan0 00000000 02021EAC 0003 0 0 400 00000000 0 0 0
|
||||
-tun1 00C0AC0A 00000000 0001 0 0 950 00C0FFFF 0 0 0
|
||||
|
||||
Fix up the off-by-one when reaquiring position on continuation.
|
||||
|
||||
Fixes: 8be33e955cb9 ("fib_trie: Fib walk rcu should take a tnode and key instead of a trie and a leaf")
|
||||
BugLink: http://bugs.launchpad.net/bugs/1483440
|
||||
Acked-by: Alexander Duyck <alexander.h.duyck@redhat.com>
|
||||
Signed-off-by: Andy Whitcroft <apw@canonical.com>
|
||||
Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
---
|
||||
net/ipv4/fib_trie.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
--- a/net/ipv4/fib_trie.c
|
||||
+++ b/net/ipv4/fib_trie.c
|
||||
@@ -2457,7 +2457,7 @@ static struct key_vector *fib_route_get_
|
||||
key = l->key + 1;
|
||||
iter->pos++;
|
||||
|
||||
- if (pos-- <= 0)
|
||||
+ if (--pos <= 0)
|
||||
break;
|
||||
|
||||
l = NULL;
|
||||
@@ -15,7 +15,7 @@ they still want to support gcc 3.3 -- well, we don't.
|
||||
|
||||
--- a/arch/powerpc/boot/Makefile
|
||||
+++ b/arch/powerpc/boot/Makefile
|
||||
@@ -45,10 +45,10 @@ BOOTCFLAGS += -I$(obj) -I$(srctree)/$(ob
|
||||
@@ -48,10 +48,10 @@ BOOTCFLAGS += -I$(obj) -I$(srctree)/$(ob
|
||||
DTC_FLAGS ?= -p 1024
|
||||
|
||||
$(obj)/4xx.o: BOOTCFLAGS += -mcpu=405
|
||||
|
||||
@@ -83,7 +83,7 @@ Signed-off-by: Felix Fietkau <nbd@openwrt.org>
|
||||
if (!net_eq(dev_net(dev), sock_net(sk)))
|
||||
goto drop;
|
||||
|
||||
@@ -2852,6 +2854,7 @@ static int packet_create(struct net *net
|
||||
@@ -2851,6 +2853,7 @@ static int packet_create(struct net *net
|
||||
spin_lock_init(&po->bind_lock);
|
||||
mutex_init(&po->pg_vec_lock);
|
||||
po->prot_hook.func = packet_rcv;
|
||||
@@ -91,7 +91,7 @@ Signed-off-by: Felix Fietkau <nbd@openwrt.org>
|
||||
|
||||
if (sock->type == SOCK_PACKET)
|
||||
po->prot_hook.func = packet_rcv_spkt;
|
||||
@@ -3457,6 +3460,16 @@ packet_setsockopt(struct socket *sock, i
|
||||
@@ -3456,6 +3459,16 @@ packet_setsockopt(struct socket *sock, i
|
||||
po->xmit = val ? packet_direct_xmit : dev_queue_xmit;
|
||||
return 0;
|
||||
}
|
||||
@@ -108,7 +108,7 @@ Signed-off-by: Felix Fietkau <nbd@openwrt.org>
|
||||
default:
|
||||
return -ENOPROTOOPT;
|
||||
}
|
||||
@@ -3508,6 +3521,13 @@ static int packet_getsockopt(struct sock
|
||||
@@ -3507,6 +3520,13 @@ static int packet_getsockopt(struct sock
|
||||
case PACKET_VNET_HDR:
|
||||
val = po->has_vnet_hdr;
|
||||
break;
|
||||
|
||||
@@ -61,7 +61,7 @@ Isolating individual bridge ports
|
||||
skb = NULL;
|
||||
--- a/net/bridge/br_forward.c
|
||||
+++ b/net/bridge/br_forward.c
|
||||
@@ -118,7 +118,7 @@ EXPORT_SYMBOL_GPL(br_deliver);
|
||||
@@ -119,7 +119,7 @@ EXPORT_SYMBOL_GPL(br_deliver);
|
||||
/* called with rcu_read_lock */
|
||||
void br_forward(const struct net_bridge_port *to, struct sk_buff *skb, struct sk_buff *skb0)
|
||||
{
|
||||
@@ -70,7 +70,7 @@ Isolating individual bridge ports
|
||||
if (skb0)
|
||||
deliver_clone(to, skb, __br_forward);
|
||||
else
|
||||
@@ -174,7 +174,7 @@ static void br_flood(struct net_bridge *
|
||||
@@ -175,7 +175,7 @@ static void br_flood(struct net_bridge *
|
||||
struct sk_buff *skb0,
|
||||
void (*__packet_hook)(const struct net_bridge_port *p,
|
||||
struct sk_buff *skb),
|
||||
@@ -79,7 +79,7 @@ Isolating individual bridge ports
|
||||
{
|
||||
struct net_bridge_port *p;
|
||||
struct net_bridge_port *prev;
|
||||
@@ -182,6 +182,8 @@ static void br_flood(struct net_bridge *
|
||||
@@ -183,6 +183,8 @@ static void br_flood(struct net_bridge *
|
||||
prev = NULL;
|
||||
|
||||
list_for_each_entry_rcu(p, &br->port_list, list) {
|
||||
@@ -88,7 +88,7 @@ Isolating individual bridge ports
|
||||
/* Do not flood unicast traffic to ports that turn it off */
|
||||
if (unicast && !(p->flags & BR_FLOOD))
|
||||
continue;
|
||||
@@ -216,14 +218,14 @@ out:
|
||||
@@ -217,14 +219,14 @@ out:
|
||||
/* called with rcu_read_lock */
|
||||
void br_flood_deliver(struct net_bridge *br, struct sk_buff *skb, bool unicast)
|
||||
{
|
||||
|
||||
@@ -310,7 +310,7 @@ Implement optinal multicast->unicast conversion for igmp snooping
|
||||
rcu_assign_pointer(*pp, p);
|
||||
--- a/net/bridge/br_forward.c
|
||||
+++ b/net/bridge/br_forward.c
|
||||
@@ -169,6 +169,34 @@ out:
|
||||
@@ -170,6 +170,34 @@ out:
|
||||
return p;
|
||||
}
|
||||
|
||||
@@ -345,7 +345,7 @@ Implement optinal multicast->unicast conversion for igmp snooping
|
||||
/* called under bridge lock */
|
||||
static void br_flood(struct net_bridge *br, struct sk_buff *skb,
|
||||
struct sk_buff *skb0,
|
||||
@@ -241,6 +269,7 @@ static void br_multicast_flood(struct ne
|
||||
@@ -242,6 +270,7 @@ static void br_multicast_flood(struct ne
|
||||
struct net_bridge_port *prev = NULL;
|
||||
struct net_bridge_port_group *p;
|
||||
struct hlist_node *rp;
|
||||
@@ -353,7 +353,7 @@ Implement optinal multicast->unicast conversion for igmp snooping
|
||||
|
||||
rp = rcu_dereference(hlist_first_rcu(&br->router_list));
|
||||
p = mdst ? rcu_dereference(mdst->ports) : NULL;
|
||||
@@ -251,10 +280,19 @@ static void br_multicast_flood(struct ne
|
||||
@@ -252,10 +281,19 @@ static void br_multicast_flood(struct ne
|
||||
rport = rp ? hlist_entry(rp, struct net_bridge_port, rlist) :
|
||||
NULL;
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
--- a/net/netlink/af_netlink.c
|
||||
+++ b/net/netlink/af_netlink.c
|
||||
@@ -1724,27 +1724,7 @@ void netlink_detachskb(struct sock *sk,
|
||||
@@ -1775,27 +1775,7 @@ void netlink_detachskb(struct sock *sk,
|
||||
|
||||
static struct sk_buff *netlink_trim(struct sk_buff *skb, gfp_t allocation)
|
||||
{
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
--- a/include/linux/skbuff.h
|
||||
+++ b/include/linux/skbuff.h
|
||||
@@ -2031,7 +2031,7 @@ static inline int pskb_network_may_pull(
|
||||
@@ -2027,7 +2027,7 @@ static inline int pskb_network_may_pull(
|
||||
* NET_IP_ALIGN(2) + ethernet_header(14) + IP_header(20/40) + ports(8)
|
||||
*/
|
||||
#ifndef NET_SKB_PAD
|
||||
|
||||
@@ -14,7 +14,7 @@ when needed.
|
||||
|
||||
--- a/include/linux/skbuff.h
|
||||
+++ b/include/linux/skbuff.h
|
||||
@@ -2076,6 +2076,24 @@ static inline void pskb_trim_unique(stru
|
||||
@@ -2072,6 +2072,24 @@ static inline void pskb_trim_unique(stru
|
||||
BUG_ON(err);
|
||||
}
|
||||
|
||||
|
||||
@@ -68,7 +68,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
|
||||
static void rt_fibinfo_free(struct rtable __rcu **rtp)
|
||||
--- a/net/ipv4/fib_trie.c
|
||||
+++ b/net/ipv4/fib_trie.c
|
||||
@@ -2352,6 +2352,7 @@ static const char *const rtn_type_names[
|
||||
@@ -2348,6 +2348,7 @@ static const char *const rtn_type_names[
|
||||
[RTN_THROW] = "THROW",
|
||||
[RTN_NAT] = "NAT",
|
||||
[RTN_XRESOLVE] = "XRESOLVE",
|
||||
@@ -143,7 +143,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
|
||||
static const struct rt6_info ip6_blk_hole_entry_template = {
|
||||
.dst = {
|
||||
.__refcnt = ATOMIC_INIT(1),
|
||||
@@ -1635,6 +1652,11 @@ int ip6_route_add(struct fib6_config *cf
|
||||
@@ -1634,6 +1651,11 @@ int ip6_route_info_create(struct fib6_co
|
||||
rt->dst.output = ip6_pkt_prohibit_out;
|
||||
rt->dst.input = ip6_pkt_prohibit;
|
||||
break;
|
||||
@@ -155,7 +155,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
|
||||
case RTN_THROW:
|
||||
default:
|
||||
rt->dst.error = (cfg->fc_type == RTN_THROW) ? -EAGAIN
|
||||
@@ -2202,6 +2224,17 @@ static int ip6_pkt_prohibit_out(struct s
|
||||
@@ -2225,6 +2247,17 @@ static int ip6_pkt_prohibit_out(struct s
|
||||
return ip6_pkt_drop(skb, ICMPV6_ADM_PROHIBITED, IPSTATS_MIB_OUTNOROUTES);
|
||||
}
|
||||
|
||||
@@ -173,7 +173,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
|
||||
/*
|
||||
* Allocate a dst for local (unicast / anycast) address.
|
||||
*/
|
||||
@@ -2428,7 +2461,8 @@ static int rtm_to_fib6_config(struct sk_
|
||||
@@ -2451,7 +2484,8 @@ static int rtm_to_fib6_config(struct sk_
|
||||
if (rtm->rtm_type == RTN_UNREACHABLE ||
|
||||
rtm->rtm_type == RTN_BLACKHOLE ||
|
||||
rtm->rtm_type == RTN_PROHIBIT ||
|
||||
@@ -183,7 +183,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
|
||||
cfg->fc_flags |= RTF_REJECT;
|
||||
|
||||
if (rtm->rtm_type == RTN_LOCAL)
|
||||
@@ -2644,6 +2678,9 @@ static int rt6_fill_node(struct net *net
|
||||
@@ -2793,6 +2827,9 @@ static int rt6_fill_node(struct net *net
|
||||
case -EACCES:
|
||||
rtm->rtm_type = RTN_PROHIBIT;
|
||||
break;
|
||||
@@ -193,7 +193,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
|
||||
case -EAGAIN:
|
||||
rtm->rtm_type = RTN_THROW;
|
||||
break;
|
||||
@@ -2901,6 +2938,8 @@ static int ip6_route_dev_notify(struct n
|
||||
@@ -3050,6 +3087,8 @@ static int ip6_route_dev_notify(struct n
|
||||
#ifdef CONFIG_IPV6_MULTIPLE_TABLES
|
||||
net->ipv6.ip6_prohibit_entry->dst.dev = dev;
|
||||
net->ipv6.ip6_prohibit_entry->rt6i_idev = in6_dev_get(dev);
|
||||
@@ -202,7 +202,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
|
||||
net->ipv6.ip6_blk_hole_entry->dst.dev = dev;
|
||||
net->ipv6.ip6_blk_hole_entry->rt6i_idev = in6_dev_get(dev);
|
||||
#endif
|
||||
@@ -3117,6 +3156,17 @@ static int __net_init ip6_route_net_init
|
||||
@@ -3266,6 +3305,17 @@ static int __net_init ip6_route_net_init
|
||||
net->ipv6.ip6_blk_hole_entry->dst.ops = &net->ipv6.ip6_dst_ops;
|
||||
dst_init_metrics(&net->ipv6.ip6_blk_hole_entry->dst,
|
||||
ip6_template_metrics, true);
|
||||
@@ -220,7 +220,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
|
||||
#endif
|
||||
|
||||
net->ipv6.sysctl.flush_delay = 0;
|
||||
@@ -3135,6 +3185,8 @@ out:
|
||||
@@ -3284,6 +3334,8 @@ out:
|
||||
return ret;
|
||||
|
||||
#ifdef CONFIG_IPV6_MULTIPLE_TABLES
|
||||
@@ -229,7 +229,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
|
||||
out_ip6_prohibit_entry:
|
||||
kfree(net->ipv6.ip6_prohibit_entry);
|
||||
out_ip6_null_entry:
|
||||
@@ -3152,6 +3204,7 @@ static void __net_exit ip6_route_net_exi
|
||||
@@ -3301,6 +3353,7 @@ static void __net_exit ip6_route_net_exi
|
||||
#ifdef CONFIG_IPV6_MULTIPLE_TABLES
|
||||
kfree(net->ipv6.ip6_prohibit_entry);
|
||||
kfree(net->ipv6.ip6_blk_hole_entry);
|
||||
@@ -237,7 +237,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
|
||||
#endif
|
||||
dst_entries_destroy(&net->ipv6.ip6_dst_ops);
|
||||
}
|
||||
@@ -3248,6 +3301,9 @@ int __init ip6_route_init(void)
|
||||
@@ -3397,6 +3450,9 @@ int __init ip6_route_init(void)
|
||||
init_net.ipv6.ip6_prohibit_entry->rt6i_idev = in6_dev_get(init_net.loopback_dev);
|
||||
init_net.ipv6.ip6_blk_hole_entry->dst.dev = init_net.loopback_dev;
|
||||
init_net.ipv6.ip6_blk_hole_entry->rt6i_idev = in6_dev_get(init_net.loopback_dev);
|
||||
|
||||
@@ -17,7 +17,7 @@ Signed-off-by: Felix Fietkau <nbd@openwrt.org>
|
||||
|
||||
--- a/net/core/dev.c
|
||||
+++ b/net/core/dev.c
|
||||
@@ -4039,6 +4039,9 @@ static enum gro_result dev_gro_receive(s
|
||||
@@ -4036,6 +4036,9 @@ static enum gro_result dev_gro_receive(s
|
||||
enum gro_result ret;
|
||||
int grow;
|
||||
|
||||
@@ -27,7 +27,7 @@ Signed-off-by: Felix Fietkau <nbd@openwrt.org>
|
||||
if (!(skb->dev->features & NETIF_F_GRO))
|
||||
goto normal;
|
||||
|
||||
@@ -5186,6 +5189,48 @@ static void __netdev_adjacent_dev_unlink
|
||||
@@ -5185,6 +5188,48 @@ static void __netdev_adjacent_dev_unlink
|
||||
&upper_dev->adj_list.lower);
|
||||
}
|
||||
|
||||
@@ -76,7 +76,7 @@ Signed-off-by: Felix Fietkau <nbd@openwrt.org>
|
||||
static int __netdev_upper_dev_link(struct net_device *dev,
|
||||
struct net_device *upper_dev, bool master,
|
||||
void *private)
|
||||
@@ -5246,6 +5291,7 @@ static int __netdev_upper_dev_link(struc
|
||||
@@ -5245,6 +5290,7 @@ static int __netdev_upper_dev_link(struc
|
||||
goto rollback_lower_mesh;
|
||||
}
|
||||
|
||||
@@ -84,7 +84,7 @@ Signed-off-by: Felix Fietkau <nbd@openwrt.org>
|
||||
call_netdevice_notifiers(NETDEV_CHANGEUPPER, dev);
|
||||
return 0;
|
||||
|
||||
@@ -5363,6 +5409,7 @@ void netdev_upper_dev_unlink(struct net_
|
||||
@@ -5362,6 +5408,7 @@ void netdev_upper_dev_unlink(struct net_
|
||||
list_for_each_entry(i, &upper_dev->all_adj_list.upper, list)
|
||||
__netdev_adjacent_dev_unlink(dev, i->dev);
|
||||
|
||||
@@ -92,7 +92,7 @@ Signed-off-by: Felix Fietkau <nbd@openwrt.org>
|
||||
call_netdevice_notifiers(NETDEV_CHANGEUPPER, dev);
|
||||
}
|
||||
EXPORT_SYMBOL(netdev_upper_dev_unlink);
|
||||
@@ -5902,6 +5949,7 @@ int dev_set_mac_address(struct net_devic
|
||||
@@ -5901,6 +5948,7 @@ int dev_set_mac_address(struct net_devic
|
||||
if (err)
|
||||
return err;
|
||||
dev->addr_assign_type = NET_ADDR_SET;
|
||||
|
||||
@@ -41,7 +41,7 @@
|
||||
*/
|
||||
--- a/include/linux/skbuff.h
|
||||
+++ b/include/linux/skbuff.h
|
||||
@@ -2062,6 +2062,10 @@ static inline int pskb_trim(struct sk_bu
|
||||
@@ -2058,6 +2058,10 @@ static inline int pskb_trim(struct sk_bu
|
||||
return (len < skb->len) ? __pskb_trim(skb, len) : 0;
|
||||
}
|
||||
|
||||
@@ -52,7 +52,7 @@
|
||||
/**
|
||||
* pskb_trim_unique - remove end from a paged unique (not cloned) buffer
|
||||
* @skb: buffer to alter
|
||||
@@ -2188,16 +2192,6 @@ static inline struct sk_buff *dev_alloc_
|
||||
@@ -2184,16 +2188,6 @@ static inline struct sk_buff *dev_alloc_
|
||||
}
|
||||
|
||||
|
||||
@@ -86,7 +86,7 @@
|
||||
help
|
||||
--- a/net/core/dev.c
|
||||
+++ b/net/core/dev.c
|
||||
@@ -2649,10 +2649,20 @@ static int xmit_one(struct sk_buff *skb,
|
||||
@@ -2645,10 +2645,20 @@ static int xmit_one(struct sk_buff *skb,
|
||||
if (!list_empty(&ptype_all) || !list_empty(&dev->ptype_all))
|
||||
dev_queue_xmit_nit(skb, dev);
|
||||
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
/* The Mellanox Tavor device gives false positive parity errors
|
||||
* Mark this device with a broken_parity_status, to allow
|
||||
* PCI scanning code to "skip" this now blacklisted device.
|
||||
@@ -2925,6 +2926,7 @@ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_I
|
||||
@@ -2949,6 +2950,7 @@ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_I
|
||||
DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x65f9, quirk_intel_mc_errata);
|
||||
DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x65fa, quirk_intel_mc_errata);
|
||||
|
||||
@@ -31,7 +31,7 @@
|
||||
|
||||
/*
|
||||
* Ivytown NTB BAR sizes are misreported by the hardware due to an erratum. To
|
||||
@@ -2981,6 +2983,8 @@ static void fixup_debug_report(struct pc
|
||||
@@ -3005,6 +3007,8 @@ static void fixup_debug_report(struct pc
|
||||
}
|
||||
}
|
||||
|
||||
@@ -40,7 +40,7 @@
|
||||
/*
|
||||
* Some BIOS implementations leave the Intel GPU interrupts enabled,
|
||||
* even though no one is handling them (f.e. i915 driver is never loaded).
|
||||
@@ -3015,6 +3019,8 @@ DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_IN
|
||||
@@ -3039,6 +3043,8 @@ DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_IN
|
||||
DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x010a, disable_igfx_irq);
|
||||
DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x0152, disable_igfx_irq);
|
||||
|
||||
|
||||
@@ -49,7 +49,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
|
||||
depends on ACPI && PCI
|
||||
--- a/drivers/ata/libata-core.c
|
||||
+++ b/drivers/ata/libata-core.c
|
||||
@@ -728,6 +728,19 @@ u64 ata_tf_read_block(const struct ata_t
|
||||
@@ -728,6 +728,19 @@ u64 ata_tf_read_block(struct ata_taskfil
|
||||
return block;
|
||||
}
|
||||
|
||||
@@ -69,7 +69,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
|
||||
/**
|
||||
* ata_build_rw_tf - Build ATA taskfile for given read/write request
|
||||
* @tf: Target ATA taskfile
|
||||
@@ -4789,6 +4802,9 @@ struct ata_queued_cmd *ata_qc_new_init(s
|
||||
@@ -4773,6 +4786,9 @@ struct ata_queued_cmd *ata_qc_new_init(s
|
||||
if (tag < 0)
|
||||
return NULL;
|
||||
}
|
||||
@@ -79,7 +79,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
|
||||
|
||||
qc = __ata_qc_from_tag(ap, tag);
|
||||
qc->tag = tag;
|
||||
@@ -5686,6 +5702,9 @@ struct ata_port *ata_port_alloc(struct a
|
||||
@@ -5670,6 +5686,9 @@ struct ata_port *ata_port_alloc(struct a
|
||||
ap->stats.unhandled_irq = 1;
|
||||
ap->stats.idle_irq = 1;
|
||||
#endif
|
||||
@@ -89,7 +89,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
|
||||
ata_sff_port_init(ap);
|
||||
|
||||
return ap;
|
||||
@@ -5707,6 +5726,12 @@ static void ata_host_release(struct devi
|
||||
@@ -5691,6 +5710,12 @@ static void ata_host_release(struct devi
|
||||
|
||||
kfree(ap->pmp_link);
|
||||
kfree(ap->slave_link);
|
||||
@@ -102,7 +102,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
|
||||
kfree(ap);
|
||||
host->ports[i] = NULL;
|
||||
}
|
||||
@@ -6153,7 +6178,23 @@ int ata_host_register(struct ata_host *h
|
||||
@@ -6137,7 +6162,23 @@ int ata_host_register(struct ata_host *h
|
||||
host->ports[i]->print_id = atomic_inc_return(&ata_print_id);
|
||||
host->ports[i]->local_port_no = i + 1;
|
||||
}
|
||||
|
||||
@@ -184,7 +184,7 @@
|
||||
|
||||
--- a/net/ipv4/fib_trie.c
|
||||
+++ b/net/ipv4/fib_trie.c
|
||||
@@ -2630,10 +2630,12 @@ static const struct file_operations fib_
|
||||
@@ -2626,10 +2626,12 @@ static const struct file_operations fib_
|
||||
|
||||
int __net_init fib_proc_init(struct net *net)
|
||||
{
|
||||
@@ -199,7 +199,7 @@
|
||||
&fib_triestat_fops))
|
||||
goto out2;
|
||||
|
||||
@@ -2643,17 +2645,21 @@ int __net_init fib_proc_init(struct net
|
||||
@@ -2639,17 +2641,21 @@ int __net_init fib_proc_init(struct net
|
||||
return 0;
|
||||
|
||||
out3:
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
+#endif
|
||||
--- a/lib/decompress_unlzo.c
|
||||
+++ b/lib/decompress_unlzo.c
|
||||
@@ -38,6 +38,7 @@
|
||||
@@ -39,6 +39,7 @@
|
||||
|
||||
#include <linux/types.h>
|
||||
#include <linux/lzo.h>
|
||||
|
||||
Reference in New Issue
Block a user