dde_linux: make drivers self containing

Ported drivers list and extract all needed source files. This decouples
ports according to contrib sources and also enables us to revert lxip to
Linux version 3.9, while staying with 3.14 for usb.

Fixes #1285
This commit is contained in:
Sebastian Sumpf 2014-10-29 18:52:47 +01:00 committed by Christian Helmuth
parent 2eca4ec98b
commit d426c5e6c2
29 changed files with 877 additions and 1484 deletions

View File

@ -5,7 +5,7 @@ LIB_INC_DIR = $(LIB_DIR)/include
LIBS += base cxx dde_kit
LX_CONTRIB_DIR := $(call select_from_ports,dde_linux)/src/lib/dde_linux
LX_CONTRIB_DIR := $(call select_from_ports,dde_linux)/src/lib/lxip
NET_DIR := $(LX_CONTRIB_DIR)/net
#
@ -14,7 +14,6 @@ NET_DIR := $(LX_CONTRIB_DIR)/net
#
INC_DIR += $(LIB_INC_DIR)
INC_DIR += $(LX_CONTRIB_DIR)/include $(LX_CONTRIB_DIR)/include/uapi \
$(LX_CONTRIB_DIR)/lxip/include $(LX_CONTRIB_DIR)/lxip/include/uapi \
$(LX_CONTRIB_DIR)
CC_OLEVEL = -O2

View File

@ -1,4 +1,6 @@
SRC_C += usbnet.c asix_devices.c asix_common.c ax88172a.c ax88179_178a.c ehci-exynos.c
SRC_C += $(addprefix net/usb/, usbnet.c asix_devices.c asix_common.c ax88172a.c \
ax88179_178a.c)
SRC_C += usb/host/ehci-exynos.c
include $(REP_DIR)/lib/mk/xhci.inc
include $(REP_DIR)/lib/mk/usb.inc
@ -10,11 +12,9 @@ INC_DIR += $(LX_CONTRIB_DIR)/arch/arm/plat-samsung/include
SRC_CC += platform.cc
#DWC3
SRC_C += host.c core.c
SRC_C += $(addprefix usb/dwc3/, host.c core.c)
#XHCI
SRC_C += xhci-plat.c
SRC_C += usb/host/xhci-plat.c
vpath platform.cc $(LIB_DIR)/arm/platform_arndale
vpath %.c $(LX_CONTRIB_DIR)/drivers/usb/dwc3
vpath %.c $(LX_CONTRIB_DIR)/drivers/net/usb

View File

@ -1,4 +1,5 @@
SRC_C += usbnet.c smsc95xx.c ehci-omap.c
SRC_C += $(addprefix net/usb/, usbnet.c smsc95xx.c)
SRC_C += usb/host/ehci-omap.c
include $(REP_DIR)/lib/mk/usb.inc
include $(REP_DIR)/lib/mk/armv7/usb.inc
@ -7,5 +8,3 @@ CC_OPT += -DCONFIG_USB_EHCI_HCD_OMAP -DCONFIG_USB_EHCI_TT_NEWSCHED -DVERBOSE_DE
SRC_CC += platform.cc
vpath platform.cc $(LIB_DIR)/arm/platform_panda
vpath %.c $(LX_CONTRIB_DIR)/drivers/net/usb
vpath %.c $(LX_CONTRIB_DIR)/drivers/usb/host

View File

@ -20,7 +20,7 @@ SRC_C += \
usb/host/dwc_otg/dwc_common_port/dwc_modpow.c \
usb/host/dwc_otg/dwc_common_port/dwc_notifier.c
SRC_C += usbnet.c smsc95xx.c
SRC_C += net/usb/usbnet.c net/usb/smsc95xx.c
include $(REP_DIR)/lib/mk/usb.inc
include $(REP_DIR)/lib/mk/armv6/usb.inc

View File

@ -6,7 +6,7 @@ SRC_CC += main.cc lx_emul.cc irq.cc timer.cc event.cc storage.cc \
input_component.cc nic.cc
SRC_C += dummies.c scsi.c evdev.c
LX_CONTRIB_DIR := $(call select_from_ports,dde_linux)/src/lib/dde_linux
LX_CONTRIB_DIR := $(call select_from_ports,dde_linux)/src/lib/usb
DRIVERS_DIR := $(LX_CONTRIB_DIR)/drivers
USB_DIR := $(DRIVERS_DIR)/usb
@ -25,7 +25,7 @@ CC_OPT += -DCONFIG_USB_DEVICEFS -DCONFIG_HOTPLUG -DDEBUG -DCONFIG_USB_PHY=1
CC_WARN = -Wall -Wno-unused-variable -Wno-uninitialized \
-Wno-unused-function -Wno-overflow
CC_C_OPT += -Wno-unused-but-set-variable -Wno-pointer-sign
CC_C_OPT += -Wno-unused-but-set-variable -Wno-pointer-sign -Wno-unused-label
CXX_OPT = -fpermissive
CC_CXX_OPT = -fpermissive
@ -96,7 +96,6 @@ $(GEN_INCLUDES):
$(VERBOSE)ln -s $(LIB_INC_DIR)/lx_emul.h $@
vpath %.c $(DRIVERS_DIR)
vpath %.c $(USB_DIR)/host
vpath %.c $(LIB_DIR)
vpath %.cc $(LIB_DIR)
vpath %.cc $(LIB_DIR)/signal

View File

@ -3,10 +3,10 @@ SRC_C += $(addprefix usb/host/,pci-quirks.c uhci-hcd.c ehci-pci.c)
#
# USB netwpork support
#
SRC_C += usbnet.c ax88179_178a.c
SRC_C += $(addprefix net/usb/, usbnet.c ax88179_178a.c)
#XHCI
SRC_C += xhci-pci.c
SRC_C += usb/host/xhci-pci.c
SRC_CC += pci_driver.cc platform.cc
@ -16,6 +16,5 @@ include $(REP_DIR)/lib/mk/usb.inc
CC_OPT += -DCONFIG_PCI -DCONFIG_USB_EHCI_PCI=1 -DCONFIG_USB_XHCI_HCD=1
vpath platform.cc $(LIB_DIR)/x86
vpath %.c $(LX_CONTRIB_DIR)/drivers/net/usb
# vi:set ft=make :

View File

@ -1,6 +1,6 @@
#
# Generic XHCI files
#
SRC_C += xhci-dbg.c xhci-hub.c xhci-mem.c xhci-ring.c xhci.c
#
SRC_C += $(addprefix usb/host/, xhci-dbg.c xhci-hub.c xhci-mem.c xhci-ring.c xhci.c)
# vi:set ft=make :

140
repos/dde_linux/lxip.list Normal file
View File

@ -0,0 +1,140 @@
linux-3.9/include/asm-generic/bitops/non-atomic.h
linux-3.9/include/linux/errqueue.h
linux-3.9/include/linux/etherdevice.h
linux-3.9/include/linux/ethtool.h
linux-3.9/include/linux/icmp.h
linux-3.9/include/linux/if_arp.h
linux-3.9/include/linux/if_ether.h
linux-3.9/include/linux/if_link.h
linux-3.9/include/linux/inetdevice.h
linux-3.9/include/linux/jhash.h
linux-3.9/include/linux/list.h
linux-3.9/include/linux/list_nulls.h
linux-3.9/include/linux/netdev_features.h
linux-3.9/include/linux/netdevice.h
linux-3.9/include/linux/net.h
linux-3.9/include/linux/netlink.h
linux-3.9/include/linux/skbuff.h
linux-3.9/include/linux/socket.h
linux-3.9/include/linux/swab.h
linux-3.9/include/linux/tcp.h
linux-3.9/include/linux/udp.h
linux-3.9/include/net/arp.h
linux-3.9/include/net/datalink.h
linux-3.9/include/net/dsfield.h
linux-3.9/include/net/dst.h
linux-3.9/include/net/dst_ops.h
linux-3.9/include/net/flow.h
linux-3.9/include/net/icmp.h
linux-3.9/include/net/inet_connection_sock.h
linux-3.9/include/net/inet_frag.h
linux-3.9/include/net/inet_hashtables.h
linux-3.9/include/net/inetpeer.h
linux-3.9/include/net/inet_sock.h
linux-3.9/include/net/inet_timewait_sock.h
linux-3.9/include/net/ipconfig.h
linux-3.9/include/net/ip_fib.h
linux-3.9/include/net/ip.h
linux-3.9/include/net/neighbour.h
linux-3.9/include/net/netlink.h
linux-3.9/include/net/netns/ipv4.h
linux-3.9/include/net/netns/mib.h
linux-3.9/include/net/ping.h
linux-3.9/include/net/pkt_sched.h
linux-3.9/include/net/protocol.h
linux-3.9/include/net/raw.h
linux-3.9/include/net/request_sock.h
linux-3.9/include/net/route.h
linux-3.9/include/net/sch_generic.h
linux-3.9/include/net/snmp.h
linux-3.9/include/net/sock.h
linux-3.9/include/net/tcp.h
linux-3.9/include/net/tcp_states.h
linux-3.9/include/net/timewait_sock.h
linux-3.9/include/net/udp.h
linux-3.9/include/net/udplite.h
linux-3.9/include/uapi/asm-generic/socket.h
linux-3.9/include/uapi/linux/byteorder/little_endian.h
linux-3.9/include/uapi/linux/errqueue.h
linux-3.9/include/uapi/linux/ethtool.h
linux-3.9/include/uapi/linux/fib_rules.h
linux-3.9/include/uapi/linux/gen_stats.h
linux-3.9/include/uapi/linux/icmp.h
linux-3.9/include/uapi/linux/if_addr.h
linux-3.9/include/uapi/linux/if_arp.h
linux-3.9/include/uapi/linux/if_ether.h
linux-3.9/include/uapi/linux/if.h
linux-3.9/include/uapi/linux/if_link.h
linux-3.9/include/uapi/linux/if_packet.h
linux-3.9/include/uapi/linux/in6.h
linux-3.9/include/uapi/linux/inet_diag.h
linux-3.9/include/uapi/linux/in.h
linux-3.9/include/uapi/linux/in_route.h
linux-3.9/include/uapi/linux/ip.h
linux-3.9/include/uapi/linux/neighbour.h
linux-3.9/include/uapi/linux/netconf.h
linux-3.9/include/uapi/linux/netdevice.h
linux-3.9/include/uapi/linux/netfilter.h
linux-3.9/include/uapi/linux/net.h
linux-3.9/include/uapi/linux/netlink.h
linux-3.9/include/uapi/linux/pkt_sched.h
linux-3.9/include/uapi/linux/route.h
linux-3.9/include/uapi/linux/rtnetlink.h
linux-3.9/include/uapi/linux/snmp.h
linux-3.9/include/uapi/linux/socket.h
linux-3.9/include/uapi/linux/sockios.h
linux-3.9/include/uapi/linux/swab.h
linux-3.9/include/uapi/linux/tcp.h
linux-3.9/include/uapi/linux/udp.h
linux-3.9/lib/checksum.c
linux-3.9/net/802/p8023.c
linux-3.9/net/core/datagram.c
linux-3.9/net/core/dev_addr_lists.c
linux-3.9/net/core/dev.c
linux-3.9/net/core/dst.c
linux-3.9/net/core/ethtool.c
linux-3.9/net/core/iovec.c
linux-3.9/net/core/neighbour.c
linux-3.9/net/core/net-sysfs.h
linux-3.9/net/core/request_sock.c
linux-3.9/net/core/skbuff.c
linux-3.9/net/core/sock.c
linux-3.9/net/core/stream.c
linux-3.9/net/core/utils.c
linux-3.9/net/ethernet/eth.c
linux-3.9/net/ipv4/af_inet.c
linux-3.9/net/ipv4/arp.c
linux-3.9/net/ipv4/devinet.c
linux-3.9/net/ipv4/fib_frontend.c
linux-3.9/net/ipv4/fib_lookup.h
linux-3.9/net/ipv4/fib_semantics.c
linux-3.9/net/ipv4/fib_trie.c
linux-3.9/net/ipv4/icmp.c
linux-3.9/net/ipv4/inet_connection_sock.c
linux-3.9/net/ipv4/inet_fragment.c
linux-3.9/net/ipv4/inet_hashtables.c
linux-3.9/net/ipv4/inetpeer.c
linux-3.9/net/ipv4/ipconfig.c
linux-3.9/net/ipv4/ip_forward.c
linux-3.9/net/ipv4/ip_fragment.c
linux-3.9/net/ipv4/ip_input.c
linux-3.9/net/ipv4/ip_options.c
linux-3.9/net/ipv4/ip_output.c
linux-3.9/net/ipv4/ip_sockglue.c
linux-3.9/net/ipv4/ping.c
linux-3.9/net/ipv4/protocol.c
linux-3.9/net/ipv4/raw.c
linux-3.9/net/ipv4/route.c
linux-3.9/net/ipv4/tcp_cong.c
linux-3.9/net/ipv4/tcp_cubic.c
linux-3.9/net/ipv4/tcp_diag.c
linux-3.9/net/ipv4/tcp_input.c
linux-3.9/net/ipv4/tcp_ipv4.c
linux-3.9/net/ipv4/tcp_minisocks.c
linux-3.9/net/ipv4/tcp.c
linux-3.9/net/ipv4/tcp_output.c
linux-3.9/net/ipv4/tcp_timer.c
linux-3.9/net/ipv4/udp_impl.h
linux-3.9/net/ipv4/udp.c
linux-3.9/net/netlink/af_netlink.c
linux-3.9/net/sched/sch_generic.c

View File

@ -1,87 +0,0 @@
linux-3.14.5/include/linux/errqueue.h
linux-3.14.5/include/linux/etherdevice.h
linux-3.14.5/include/linux/ethtool.h
linux-3.14.5/include/linux/icmp.h
linux-3.14.5/include/linux/if_arp.h
linux-3.14.5/include/linux/if_ether.h
linux-3.14.5/include/linux/if_link.h
linux-3.14.5/include/linux/jhash.h
linux-3.14.5/include/linux/inetdevice.h
linux-3.14.5/include/linux/list_nulls.h
linux-3.14.5/include/linux/netdev_features.h
linux-3.14.5/include/linux/netdevice.h
linux-3.14.5/include/linux/net.h
linux-3.14.5/include/linux/netlink.h
linux-3.14.5/include/linux/skbuff.h
linux-3.14.5/include/linux/socket.h
linux-3.14.5/include/linux/tcp.h
linux-3.14.5/include/linux/udp.h
linux-3.14.5/include/net/arp.h
linux-3.14.5/include/net/datalink.h
linux-3.14.5/include/net/dst.h
linux-3.14.5/include/net/dst_ops.h
linux-3.14.5/include/net/dsfield.h
linux-3.14.5/include/net/flow.h
linux-3.14.5/include/net/flow_keys.h
linux-3.14.5/include/net/icmp.h
linux-3.14.5/include/net/inet_connection_sock.h
linux-3.14.5/include/net/inet_frag.h
linux-3.14.5/include/net/inet_hashtables.h
linux-3.14.5/include/net/inetpeer.h
linux-3.14.5/include/net/inet_sock.h
linux-3.14.5/include/net/inet_timewait_sock.h
linux-3.14.5/include/net/ipconfig.h
linux-3.14.5/include/net/ip_fib.h
linux-3.14.5/include/net/ip.h
linux-3.14.5/include/net/neighbour.h
linux-3.14.5/include/net/netlink.h
linux-3.14.5/include/net/netns/ipv4.h
linux-3.14.5/include/net/netns/mib.h
linux-3.14.5/include/net/ping.h
linux-3.14.5/include/net/pkt_sched.h
linux-3.14.5/include/net/protocol.h
linux-3.14.5/include/net/raw.h
linux-3.14.5/include/net/request_sock.h
linux-3.14.5/include/net/route.h
linux-3.14.5/include/net/sch_generic.h
linux-3.14.5/include/net/snmp.h
linux-3.14.5/include/net/sock.h
linux-3.14.5/include/net/tcp.h
linux-3.14.5/include/net/tcp_states.h
linux-3.14.5/include/net/timewait_sock.h
linux-3.14.5/include/net/udp.h
linux-3.14.5/include/net/udplite.h
linux-3.14.5/include/uapi/asm-generic/socket.h
linux-3.14.5/include/uapi/linux/errqueue.h
linux-3.14.5/include/uapi/linux/ethtool.h
linux-3.14.5/include/uapi/linux/fib_rules.h
linux-3.14.5/include/uapi/linux/gen_stats.h
linux-3.14.5/include/uapi/linux/icmp.h
linux-3.14.5/include/uapi/linux/if_addr.h
linux-3.14.5/include/uapi/linux/if_arp.h
linux-3.14.5/include/uapi/linux/if_bridge.h
linux-3.14.5/include/uapi/linux/if_ether.h
linux-3.14.5/include/uapi/linux/if.h
linux-3.14.5/include/uapi/linux/if_link.h
linux-3.14.5/include/uapi/linux/if_packet.h
linux-3.14.5/include/uapi/linux/in6.h
linux-3.14.5/include/uapi/linux/inet_diag.h
linux-3.14.5/include/uapi/linux/in.h
linux-3.14.5/include/uapi/linux/in_route.h
linux-3.14.5/include/uapi/linux/ip.h
linux-3.14.5/include/uapi/linux/libc-compat.h
linux-3.14.5/include/uapi/linux/neighbour.h
linux-3.14.5/include/uapi/linux/netconf.h
linux-3.14.5/include/uapi/linux/netdevice.h
linux-3.14.5/include/uapi/linux/netfilter.h
linux-3.14.5/include/uapi/linux/net.h
linux-3.14.5/include/uapi/linux/netlink.h
linux-3.14.5/include/uapi/linux/pkt_sched.h
linux-3.14.5/include/uapi/linux/route.h
linux-3.14.5/include/uapi/linux/rtnetlink.h
linux-3.14.5/include/uapi/linux/snmp.h
linux-3.14.5/include/uapi/linux/socket.h
linux-3.14.5/include/uapi/linux/sockios.h
linux-3.14.5/include/uapi/linux/swab.h
linux-3.14.5/include/uapi/linux/tcp.h
linux-3.14.5/include/uapi/linux/udp.h

View File

@ -1,19 +0,0 @@
commit 3085e764d1545cd2dae199037265c8d5c8a1b458
Author: Sebastian Sumpf <sebastian.sumpf@genode-labs.com>
Date: Mon Jun 2 13:25:18 2014 +0200
icmp.patch
diff --git a/net/ipv4/icmp.c b/net/ipv4/icmp.c
index 0134663..aee0c67 100644
--- a/net/ipv4/icmp.c
+++ b/net/ipv4/icmp.c
@@ -822,7 +822,7 @@ static void icmp_echo(struct sk_buff *skb)
if (!net->ipv4.sysctl_icmp_echo_ignore_all) {
struct icmp_bxm icmp_param;
- icmp_param.data.icmph = *icmp_hdr(skb);
+ memcpy(&icmp_param.data.icmph, icmp_hdr(skb), sizeof(struct icmphdr));
icmp_param.data.icmph.type = ICMP_ECHOREPLY;
icmp_param.skb = skb;
icmp_param.offset = 0;

View File

@ -0,0 +1,12 @@
diff -r a4522abad72d net/ipv4/icmp.c
--- a/net/ipv4/icmp.c Tue Oct 15 12:18:08 2013 +0200
+++ b/net/ipv4/icmp.c Tue Oct 15 12:18:33 2013 +0200
@@ -787,7 +787,7 @@
if (!net->ipv4.sysctl_icmp_echo_ignore_all) {
struct icmp_bxm icmp_param;
- icmp_param.data.icmph = *icmp_hdr(skb);
+ memcpy(&icmp_param.data.icmph, icmp_hdr(skb), sizeof(struct icmphdr));
icmp_param.data.icmph.type = ICMP_ECHOREPLY;
icmp_param.skb = skb;
icmp_param.offset = 0;

View File

@ -1,14 +1,7 @@
commit 3785e30c9833a908775a69c2961a3c1d6fe50d09
Author: Sebastian Sumpf <sebastian.sumpf@genode-labs.com>
Date: Mon Jun 2 13:25:30 2014 +0200
ip_config.patch
diff --git a/net/ipv4/ipconfig.c b/net/ipv4/ipconfig.c
index b3e86ea..cd93457 100644
--- a/net/ipv4/ipconfig.c
+++ b/net/ipv4/ipconfig.c
@@ -1516,24 +1516,24 @@ static int __init ip_auto_config(void)
diff -r d3a8e67b38cf net/ipv4/ipconfig.c
--- a/net/ipv4/ipconfig.c Fri Sep 20 12:18:22 2013 +0200
+++ b/net/ipv4/ipconfig.c Fri Sep 20 12:18:56 2013 +0200
@@ -1505,24 +1505,24 @@
*/
pr_info("IP-Config: Complete:\n");

View File

@ -0,0 +1,38 @@
--- a/include/net/netlink.h
+++ b/include/net/netlink.h
@@ -321,7 +321,7 @@
static inline struct nlattr *nlmsg_attrdata(const struct nlmsghdr *nlh,
int hdrlen)
{
- unsigned char *data = nlmsg_data(nlh);
+ unsigned char *data = (unsigned char *)nlmsg_data(nlh);
return (struct nlattr *) (data + NLMSG_ALIGN(hdrlen));
}
@@ -730,7 +730,7 @@
static inline struct nlattr *
nla_find_nested(const struct nlattr *nla, int attrtype)
{
- return nla_find(nla_data(nla), nla_len(nla), attrtype);
+ return nla_find((const struct nlattr *)nla_data(nla), nla_len(nla), attrtype);
}
/**
@@ -746,7 +746,7 @@
const struct nlattr *nla,
const struct nla_policy *policy)
{
- return nla_parse(tb, maxtype, nla_data(nla), nla_len(nla), policy);
+ return nla_parse(tb, maxtype, (const struct nlattr *)nla_data(nla), nla_len(nla), policy);
}
/**
@@ -1174,7 +1174,7 @@
static inline int nla_validate_nested(const struct nlattr *start, int maxtype,
const struct nla_policy *policy)
{
- return nla_validate(nla_data(start), nla_len(start), maxtype, policy);
+ return nla_validate((const struct nlattr *)nla_data(start), nla_len(start), maxtype, policy);
}
/**

View File

@ -1,22 +1,13 @@
commit 1843c9d95c0a7f6cf04357bf26633cfd2e5bdda4
Author: Sebastian Sumpf <sebastian.sumpf@genode-labs.com>
Date: Mon Jun 2 13:34:18 2014 +0200
skbuff.patch
diff --git a/net/core/skbuff.c b/net/core/skbuff.c
index e5ae776..abfa703 100644
--- a/net/core/skbuff.c
+++ b/net/core/skbuff.c
@@ -414,23 +414,9 @@ struct sk_buff *__netdev_alloc_skb(struct net_device *dev,
diff -r 6e1a0ab143a5 net/core/skbuff.c
--- a/net/core/skbuff.c Fri Oct 18 12:02:45 2013 +0200
+++ b/net/core/skbuff.c Fri Oct 18 12:04:07 2013 +0200
@@ -419,23 +419,9 @@
unsigned int fragsz = SKB_DATA_ALIGN(length + NET_SKB_PAD) +
SKB_DATA_ALIGN(sizeof(struct skb_shared_info));
- if (fragsz <= PAGE_SIZE && !(gfp_mask & (__GFP_WAIT | GFP_DMA))) {
- void *data;
+ skb = __alloc_skb(length + NET_SKB_PAD, gfp_mask,
+ SKB_ALLOC_RX, NUMA_NO_NODE);
-
- if (sk_memalloc_socks())
- gfp_mask |= __GFP_MEMALLOC;
-
@ -31,6 +22,9 @@ index e5ae776..abfa703 100644
- skb = __alloc_skb(length + NET_SKB_PAD, gfp_mask,
- SKB_ALLOC_RX, NUMA_NO_NODE);
- }
+ skb = __alloc_skb(length + NET_SKB_PAD, gfp_mask,
+ SKB_ALLOC_RX, NUMA_NO_NODE);
+
if (likely(skb)) {
skb_reserve(skb, NET_SKB_PAD);
skb->dev = dev;

View File

@ -0,0 +1,32 @@
From 8b2f74f2258b62ca0e62656cdccbc9159aeab893 Mon Sep 17 00:00:00 2001
From: Sebastian Sumpf <sebastian.sumpf@genode-labs.com>
Date: Tue, 6 Aug 2013 16:12:54 +0200
Subject: [PATCH] L4Linux: Increase TCP-window size
TCP window size is calculated by the amount of memory within L4Linux, use a
larger window size to allow acceptable performance even on smaller VMs.
---
net/ipv4/tcp.c | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/net/ipv4/tcp.c b/net/ipv4/tcp.c
index e220207..29613bf 100644
--- a/net/ipv4/tcp.c
+++ b/net/ipv4/tcp.c
@@ -3648,6 +3648,13 @@ void __init tcp_init(void)
tcp_init_mem(&init_net);
/* Set per-socket limits to no more than 1/128 the pressure threshold */
limit = nr_free_buffer_pages() << (PAGE_SHIFT - 7);
+
+ /*
+ * Adjust limit so it performs well on systems with little memory. If
+ * this causes errors increase L4Linux main memory
+ */
+ limit = limit < 1024U * 1024 ? 1024U * 1024 : limit;
+
max_wshare = min(4UL*1024*1024, limit);
max_rshare = min(6UL*1024*1024, limit);
--
1.8.4

View File

@ -1,782 +0,0 @@
diff --git a/drivers/hid/usbhid/hid-core.c b/drivers/hid/usbhid/hid-core.c
index 44df131..0d0aa68 100644
--- a/drivers/hid/usbhid/hid-core.c
+++ b/drivers/hid/usbhid/hid-core.c
@@ -840,7 +840,7 @@ static int hid_alloc_buffers(struct usb_device *dev, struct hid_device *hid)
&usbhid->inbuf_dma);
usbhid->outbuf = usb_alloc_coherent(dev, usbhid->bufsize, GFP_KERNEL,
&usbhid->outbuf_dma);
- usbhid->cr = kmalloc(sizeof(*usbhid->cr), GFP_KERNEL);
+ usbhid->cr = kmalloc(sizeof(*usbhid->cr), GFP_NOIO);
usbhid->ctrlbuf = usb_alloc_coherent(dev, usbhid->bufsize, GFP_KERNEL,
&usbhid->ctrlbuf_dma);
if (!usbhid->inbuf || !usbhid->outbuf || !usbhid->cr ||
@@ -998,7 +998,7 @@ static int usbhid_parse(struct hid_device *hid)
return -EINVAL;
}
- if (!(rdesc = kmalloc(rsize, GFP_KERNEL))) {
+ if (!(rdesc = kmalloc(rsize, GFP_NOIO))) {
dbg_hid("couldn't allocate rdesc memory\n");
return -ENOMEM;
}
diff --git a/drivers/net/usb/usbnet.c b/drivers/net/usb/usbnet.c
index 3242006..d03d2ed 100644
--- a/drivers/net/usb/usbnet.c
+++ b/drivers/net/usb/usbnet.c
@@ -250,7 +250,7 @@ static int init_status (struct usbnet *dev, struct usb_interface *intf)
period = max ((int) dev->status->desc.bInterval,
(dev->udev->speed == USB_SPEED_HIGH) ? 7 : 3);
- buf = kmalloc (maxp, GFP_KERNEL);
+ buf = kmalloc (maxp, GFP_NOIO);
if (buf) {
dev->interrupt = usb_alloc_urb (0, GFP_KERNEL);
if (!dev->interrupt) {
@@ -1794,7 +1794,7 @@ int usbnet_resume (struct usb_interface *intf)
if (!--dev->suspend_count) {
/* resume interrupt URB if it was previously submitted */
- __usbnet_status_start_force(dev, GFP_NOIO);
+ __usbnet_status_start_force(dev, GFP_KERNEL);
spin_lock_irq(&dev->txq.lock);
while ((res = usb_get_from_anchor(&dev->deferred))) {
@@ -1823,7 +1823,7 @@ int usbnet_resume (struct usb_interface *intf)
if (netif_device_present(dev->net) &&
!timer_pending(&dev->delay) &&
!test_bit(EVENT_RX_HALT, &dev->flags))
- rx_alloc_submit(dev, GFP_NOIO);
+ rx_alloc_submit(dev, GFP_KERNEL);
if (!(dev->txq.qlen >= TX_QLEN(dev)))
netif_tx_wake_all_queues(dev->net);
@@ -1889,7 +1889,7 @@ static int __usbnet_read_cmd(struct usbnet *dev, u8 cmd, u8 reqtype,
cmd, reqtype, value, index, size);
if (data) {
- buf = kmalloc(size, GFP_KERNEL);
+ buf = kmalloc(size, GFP_NOIO);
if (!buf)
goto out;
}
@@ -1916,7 +1916,7 @@ static int __usbnet_write_cmd(struct usbnet *dev, u8 cmd, u8 reqtype,
cmd, reqtype, value, index, size);
if (data) {
- buf = kmemdup(data, size, GFP_KERNEL);
+ buf = kmemdup(data, size, GFP_NOIO);
if (!buf)
goto out;
}
@@ -2028,7 +2028,7 @@ int usbnet_write_cmd_async(struct usbnet *dev, u8 cmd, u8 reqtype,
}
if (data) {
- buf = kmemdup(data, size, GFP_ATOMIC);
+ buf = kmemdup(data, size, GFP_NOIO);
if (!buf) {
netdev_err(dev->net, "Error allocating buffer"
" in %s!\n", __func__);
@@ -2036,7 +2036,7 @@ int usbnet_write_cmd_async(struct usbnet *dev, u8 cmd, u8 reqtype,
}
}
- req = kmalloc(sizeof(struct usb_ctrlrequest), GFP_ATOMIC);
+ req = kmalloc(sizeof(struct usb_ctrlrequest), GFP_NOIO);
if (!req)
goto fail_free_buf;
diff --git a/drivers/usb/core/config.c b/drivers/usb/core/config.c
index 062967c..f5da439 100644
--- a/drivers/usb/core/config.c
+++ b/drivers/usb/core/config.c
@@ -683,7 +683,7 @@ int usb_get_configuration(struct usb_device *dev)
if (!dev->rawdescriptors)
goto err2;
- desc = kmalloc(USB_DT_CONFIG_SIZE, GFP_KERNEL);
+ desc = kmalloc(USB_DT_CONFIG_SIZE, GFP_NOIO);
if (!desc)
goto err2;
@@ -712,7 +712,7 @@ int usb_get_configuration(struct usb_device *dev)
USB_DT_CONFIG_SIZE);
/* Now that we know the length, get the whole thing */
- bigbuffer = kmalloc(length, GFP_KERNEL);
+ bigbuffer = kmalloc(length, GFP_NOIO);
if (!bigbuffer) {
result = -ENOMEM;
goto err;
@@ -774,7 +774,7 @@ int usb_get_bos_descriptor(struct usb_device *dev)
int length, total_len, num, i;
int ret;
- bos = kzalloc(sizeof(struct usb_bos_descriptor), GFP_KERNEL);
+ bos = kzalloc(sizeof(struct usb_bos_descriptor), GFP_NOIO);
if (!bos)
return -ENOMEM;
@@ -800,7 +800,7 @@ int usb_get_bos_descriptor(struct usb_device *dev)
return -ENOMEM;
/* Now let's get the whole BOS descriptor set */
- buffer = kzalloc(total_len, GFP_KERNEL);
+ buffer = kzalloc(total_len, GFP_NOIO);
if (!buffer) {
ret = -ENOMEM;
goto err;
diff --git a/drivers/usb/core/devices.c b/drivers/usb/core/devices.c
index 2a3bbdf..c78eedd 100644
--- a/drivers/usb/core/devices.c
+++ b/drivers/usb/core/devices.c
@@ -513,7 +513,7 @@ static ssize_t usb_device_dump(char __user **buffer, size_t *nbytes,
return 0;
/* allocate 2^1 pages = 8K (on i386);
* should be more than enough for one device */
- pages_start = (char *)__get_free_pages(GFP_NOIO, 1);
+ pages_start = (char *)__get_free_pages(GFP_KERNEL, 1);
if (!pages_start)
return -ENOMEM;
diff --git a/drivers/usb/core/hub.c b/drivers/usb/core/hub.c
index d498d03..87b0b6b 100644
--- a/drivers/usb/core/hub.c
+++ b/drivers/usb/core/hub.c
@@ -1056,7 +1056,7 @@ static void hub_activate(struct usb_hub *hub, enum hub_activation_type type)
hcd = bus_to_hcd(hdev->bus);
if (hcd->driver->update_hub_device) {
ret = hcd->driver->update_hub_device(hcd, hdev,
- &hub->tt, GFP_NOIO);
+ &hub->tt, GFP_KERNEL);
if (ret < 0) {
dev_err(hub->intfdev, "Host not "
"accepting hub info "
@@ -1205,7 +1205,7 @@ static void hub_activate(struct usb_hub *hub, enum hub_activation_type type)
init3:
hub->quiescing = 0;
- status = usb_submit_urb(hub->urb, GFP_NOIO);
+ status = usb_submit_urb(hub->urb, GFP_KERNEL);
if (status < 0)
dev_err(hub->intfdev, "activate --> %d\n", status);
if (hub->has_indicators && blinkenlights)
@@ -1296,20 +1296,20 @@ static int hub_configure(struct usb_hub *hub,
unsigned unit_load;
unsigned full_load;
- hub->buffer = kmalloc(sizeof(*hub->buffer), GFP_KERNEL);
+ hub->buffer = kmalloc(sizeof(*hub->buffer), GFP_NOIO);
if (!hub->buffer) {
ret = -ENOMEM;
goto fail;
}
- hub->status = kmalloc(sizeof(*hub->status), GFP_KERNEL);
+ hub->status = kmalloc(sizeof(*hub->status), GFP_NOIO);
if (!hub->status) {
ret = -ENOMEM;
goto fail;
}
mutex_init(&hub->status_mutex);
- hub->descriptor = kmalloc(sizeof(*hub->descriptor), GFP_KERNEL);
+ hub->descriptor = kmalloc(sizeof(*hub->descriptor), GFP_NOIO);
if (!hub->descriptor) {
ret = -ENOMEM;
goto fail;
@@ -3464,9 +3464,9 @@ static int usb_req_set_sel(struct usb_device *udev, enum usb3_link_state state)
/*
* usb_enable_lpm() can be called as part of a failed device reset,
* which may be initiated by an error path of a mass storage driver.
- * Therefore, use GFP_NOIO.
+ * Therefore, use GFP_KERNEL.
*/
- sel_values = kmalloc(sizeof *(sel_values), GFP_NOIO);
+ sel_values = kmalloc(sizeof *(sel_values), GFP_KERNEL);
if (!sel_values)
return -ENOMEM;
@@ -4299,7 +4299,7 @@ check_highspeed (struct usb_hub *hub, struct usb_device *udev, int port1)
struct usb_qualifier_descriptor *qual;
int status;
- qual = kmalloc (sizeof *qual, GFP_KERNEL);
+ qual = kmalloc (sizeof *qual, GFP_NOIO);
if (qual == NULL)
return;
@@ -5030,7 +5030,7 @@ static int descriptors_changed(struct usb_device *udev,
len = max(len, old_length);
}
- buf = kmalloc(len, GFP_NOIO);
+ buf = kmalloc(len, GFP_KERNEL);
if (buf == NULL) {
dev_err(&udev->dev, "no mem to re-read configs after reset\n");
/* assume the worst */
diff --git a/drivers/usb/core/message.c b/drivers/usb/core/message.c
index f829a1a..91aa41a 100644
--- a/drivers/usb/core/message.c
+++ b/drivers/usb/core/message.c
@@ -49,7 +49,7 @@ static int usb_start_wait_urb(struct urb *urb, int timeout, int *actual_length)
init_completion(&ctx.done);
urb->context = &ctx;
urb->actual_length = 0;
- retval = usb_submit_urb(urb, GFP_NOIO);
+ retval = usb_submit_urb(urb, GFP_KERNEL);
if (unlikely(retval))
goto out;
@@ -86,7 +86,7 @@ static int usb_internal_control_msg(struct usb_device *usb_dev,
int retv;
int length;
- urb = usb_alloc_urb(0, GFP_NOIO);
+ urb = usb_alloc_urb(0, GFP_KERNEL);
if (!urb)
return -ENOMEM;
@@ -869,11 +869,11 @@ char *usb_cache_string(struct usb_device *udev, int index)
if (index <= 0)
return NULL;
- buf = kmalloc(MAX_USB_STRING_SIZE, GFP_NOIO);
+ buf = kmalloc(MAX_USB_STRING_SIZE, GFP_KERNEL);
if (buf) {
len = usb_string(udev, index, buf, MAX_USB_STRING_SIZE);
if (len > 0) {
- smallbuf = kmalloc(++len, GFP_NOIO);
+ smallbuf = kmalloc(++len, GFP_KERNEL);
if (!smallbuf)
return buf;
memcpy(smallbuf, buf, len);
@@ -944,7 +944,7 @@ int usb_get_device_descriptor(struct usb_device *dev, unsigned int size)
int usb_get_status(struct usb_device *dev, int type, int target, void *data)
{
int ret;
- __le16 *status = kmalloc(sizeof(*status), GFP_KERNEL);
+ __le16 *status = kmalloc(sizeof(*status), GFP_NOIO);
if (!status)
return -ENOMEM;
@@ -1743,7 +1743,7 @@ int usb_set_configuration(struct usb_device *dev, int configuration)
if (cp) {
nintf = cp->desc.bNumInterfaces;
new_interfaces = kmalloc(nintf * sizeof(*new_interfaces),
- GFP_NOIO);
+ GFP_KERNEL);
if (!new_interfaces) {
dev_err(&dev->dev, "Out of memory\n");
return -ENOMEM;
@@ -1752,7 +1752,7 @@ int usb_set_configuration(struct usb_device *dev, int configuration)
for (; n < nintf; ++n) {
new_interfaces[n] = kzalloc(
sizeof(struct usb_interface),
- GFP_NOIO);
+ GFP_KERNEL);
if (!new_interfaces[n]) {
dev_err(&dev->dev, "Out of memory\n");
ret = -ENOMEM;
diff --git a/drivers/usb/host/ehci-mem.c b/drivers/usb/host/ehci-mem.c
index c0fb6a8..107f41d 100644
--- a/drivers/usb/host/ehci-mem.c
+++ b/drivers/usb/host/ehci-mem.c
@@ -82,7 +82,7 @@ static struct ehci_qh *ehci_qh_alloc (struct ehci_hcd *ehci, gfp_t flags)
struct ehci_qh *qh;
dma_addr_t dma;
- qh = kzalloc(sizeof *qh, GFP_ATOMIC);
+ qh = kzalloc(sizeof *qh, GFP_NOIO);
if (!qh)
goto done;
qh->hw = (struct ehci_qh_hw *)
diff --git a/drivers/usb/host/xhci-hub.c b/drivers/usb/host/xhci-hub.c
index 9992fbf..10f539c 100644
--- a/drivers/usb/host/xhci-hub.c
+++ b/drivers/usb/host/xhci-hub.c
@@ -276,7 +276,7 @@ static int xhci_stop_device(struct xhci_hcd *xhci, int slot_id, int suspend)
ret = 0;
virt_dev = xhci->devs[slot_id];
- cmd = xhci_alloc_command(xhci, false, true, GFP_NOIO);
+ cmd = xhci_alloc_command(xhci, false, true, GFP_KERNEL);
if (!cmd) {
xhci_dbg(xhci, "Couldn't allocate command structure.\n");
return -ENOMEM;
diff --git a/drivers/usb/host/xhci.c b/drivers/usb/host/xhci.c
index cca2896..9b5c07e 100644
--- a/drivers/usb/host/xhci.c
+++ b/drivers/usb/host/xhci.c
@@ -1279,7 +1279,7 @@ int xhci_urb_enqueue(struct usb_hcd *hcd, struct urb *urb, gfp_t mem_flags)
size = 1;
urb_priv = kzalloc(sizeof(struct urb_priv) +
- size * sizeof(struct xhci_td *), mem_flags);
+ size * sizeof(struct xhci_td *), GFP_NOIO);
if (!urb_priv)
return -ENOMEM;
@@ -1722,7 +1722,7 @@ int xhci_add_endpoint(struct usb_hcd *hcd, struct usb_device *udev,
* process context, not interrupt context (or so documenation
* for usb_set_interface() and usb_set_configuration() claim).
*/
- if (xhci_endpoint_init(xhci, virt_dev, udev, ep, GFP_NOIO) < 0) {
+ if (xhci_endpoint_init(xhci, virt_dev, udev, ep, GFP_KERNEL) < 0) {
dev_dbg(&udev->dev, "%s - could not initialize ep %#x\n",
__func__, ep->desc.bEndpointAddress);
return -ENOMEM;
@@ -3435,10 +3435,10 @@ int xhci_discover_or_reset_device(struct usb_hcd *hcd, struct usb_device *udev)
/* Allocate the command structure that holds the struct completion.
* Assume we're in process context, since the normal device reset
* process has to wait for the device anyway. Storage devices are
- * reset as part of error handling, so use GFP_NOIO instead of
+ * reset as part of error handling, so use GFP_KERNEL instead of
* GFP_KERNEL.
*/
- reset_device_cmd = xhci_alloc_command(xhci, false, true, GFP_NOIO);
+ reset_device_cmd = xhci_alloc_command(xhci, false, true, GFP_KERNEL);
if (!reset_device_cmd) {
xhci_dbg(xhci, "Couldn't allocate command structure.\n");
return -ENOMEM;
@@ -3682,11 +3682,11 @@ int xhci_alloc_dev(struct usb_hcd *hcd, struct usb_device *udev)
}
spin_unlock_irqrestore(&xhci->lock, flags);
}
- /* Use GFP_NOIO, since this function can be called from
+ /* Use GFP_KERNEL, since this function can be called from
* xhci_discover_or_reset_device(), which may be called as part of
* mass storage driver error handling.
*/
- if (!xhci_alloc_virt_device(xhci, xhci->slot_id, udev, GFP_NOIO)) {
+ if (!xhci_alloc_virt_device(xhci, xhci->slot_id, udev, GFP_KERNEL)) {
xhci_warn(xhci, "Could not allocate xHCI USB device data structures\n");
goto disable_slot;
}
diff --git a/drivers/usb/storage/alauda.c b/drivers/usb/storage/alauda.c
index 6636a58..0bedf73 100644
--- a/drivers/usb/storage/alauda.c
+++ b/drivers/usb/storage/alauda.c
@@ -443,8 +443,8 @@ static int alauda_init_media(struct us_data *us)
num_zones = MEDIA_INFO(us).capacity >> (MEDIA_INFO(us).zoneshift
+ MEDIA_INFO(us).blockshift + MEDIA_INFO(us).pageshift);
- MEDIA_INFO(us).pba_to_lba = kcalloc(num_zones, sizeof(u16*), GFP_NOIO);
- MEDIA_INFO(us).lba_to_pba = kcalloc(num_zones, sizeof(u16*), GFP_NOIO);
+ MEDIA_INFO(us).pba_to_lba = kcalloc(num_zones, sizeof(u16*), GFP_KERNEL);
+ MEDIA_INFO(us).lba_to_pba = kcalloc(num_zones, sizeof(u16*), GFP_KERNEL);
if (alauda_reset_media(us) != USB_STOR_XFER_GOOD)
return USB_STOR_TRANSPORT_ERROR;
@@ -572,8 +572,8 @@ static int alauda_read_map(struct us_data *us, unsigned int zone)
unsigned int lba_offset, lba_real, blocknum;
unsigned int zone_base_lba = zone * uzonesize;
unsigned int zone_base_pba = zone * zonesize;
- u16 *lba_to_pba = kcalloc(zonesize, sizeof(u16), GFP_NOIO);
- u16 *pba_to_lba = kcalloc(zonesize, sizeof(u16), GFP_NOIO);
+ u16 *lba_to_pba = kcalloc(zonesize, sizeof(u16), GFP_KERNEL);
+ u16 *pba_to_lba = kcalloc(zonesize, sizeof(u16), GFP_KERNEL);
if (lba_to_pba == NULL || pba_to_lba == NULL) {
result = USB_STOR_TRANSPORT_ERROR;
goto error;
@@ -931,7 +931,7 @@ static int alauda_read_data(struct us_data *us, unsigned long address,
*/
len = min(sectors, blocksize) * (pagesize + 64);
- buffer = kmalloc(len, GFP_NOIO);
+ buffer = kmalloc(len, GFP_KERNEL);
if (buffer == NULL) {
printk(KERN_WARNING "alauda_read_data: Out of memory\n");
return USB_STOR_TRANSPORT_ERROR;
@@ -1023,7 +1023,7 @@ static int alauda_write_data(struct us_data *us, unsigned long address,
*/
len = min(sectors, blocksize) * pagesize;
- buffer = kmalloc(len, GFP_NOIO);
+ buffer = kmalloc(len, GFP_KERNEL);
if (buffer == NULL) {
printk(KERN_WARNING "alauda_write_data: Out of memory\n");
return USB_STOR_TRANSPORT_ERROR;
@@ -1033,7 +1033,7 @@ static int alauda_write_data(struct us_data *us, unsigned long address,
* We also need a temporary block buffer, where we read in the old data,
* overwrite parts with the new data, and manipulate the redundancy data
*/
- blockbuffer = kmalloc((pagesize + 64) * blocksize, GFP_NOIO);
+ blockbuffer = kmalloc((pagesize + 64) * blocksize, GFP_KERNEL);
if (blockbuffer == NULL) {
printk(KERN_WARNING "alauda_write_data: Out of memory\n");
kfree(buffer);
@@ -1111,7 +1111,7 @@ static int init_alauda(struct us_data *us)
struct usb_host_interface *altsetting = us->pusb_intf->cur_altsetting;
nand_init_ecc();
- us->extra = kzalloc(sizeof(struct alauda_info), GFP_NOIO);
+ us->extra = kzalloc(sizeof(struct alauda_info), GFP_KERNEL);
if (!us->extra)
return USB_STOR_TRANSPORT_ERROR;
diff --git a/drivers/usb/storage/datafab.c b/drivers/usb/storage/datafab.c
index 7b17c21..941f8c7 100644
--- a/drivers/usb/storage/datafab.c
+++ b/drivers/usb/storage/datafab.c
@@ -174,7 +174,7 @@ static int datafab_read_data(struct us_data *us,
// bounce buffer and the actual transfer buffer.
alloclen = min(totallen, 65536u);
- buffer = kmalloc(alloclen, GFP_NOIO);
+ buffer = kmalloc(alloclen, GFP_KERNEL);
if (buffer == NULL)
return USB_STOR_TRANSPORT_ERROR;
@@ -258,7 +258,7 @@ static int datafab_write_data(struct us_data *us,
// bounce buffer and the actual transfer buffer.
alloclen = min(totallen, 65536u);
- buffer = kmalloc(alloclen, GFP_NOIO);
+ buffer = kmalloc(alloclen, GFP_KERNEL);
if (buffer == NULL)
return USB_STOR_TRANSPORT_ERROR;
@@ -337,7 +337,7 @@ static int datafab_determine_lun(struct us_data *us,
return USB_STOR_TRANSPORT_ERROR;
memcpy(command, scommand, 8);
- buf = kmalloc(512, GFP_NOIO);
+ buf = kmalloc(512, GFP_KERNEL);
if (!buf)
return USB_STOR_TRANSPORT_ERROR;
@@ -408,7 +408,7 @@ static int datafab_id_device(struct us_data *us,
}
memcpy(command, scommand, 8);
- reply = kmalloc(512, GFP_NOIO);
+ reply = kmalloc(512, GFP_KERNEL);
if (!reply)
return USB_STOR_TRANSPORT_ERROR;
@@ -564,7 +564,7 @@ static int datafab_transport(struct scsi_cmnd *srb, struct us_data *us)
};
if (!us->extra) {
- us->extra = kzalloc(sizeof(struct datafab_info), GFP_NOIO);
+ us->extra = kzalloc(sizeof(struct datafab_info), GFP_KERNEL);
if (!us->extra)
return USB_STOR_TRANSPORT_ERROR;
diff --git a/drivers/usb/storage/jumpshot.c b/drivers/usb/storage/jumpshot.c
index 563078b..4b2a45e 100644
--- a/drivers/usb/storage/jumpshot.c
+++ b/drivers/usb/storage/jumpshot.c
@@ -187,7 +187,7 @@ static int jumpshot_read_data(struct us_data *us,
// bounce buffer and the actual transfer buffer.
alloclen = min(totallen, 65536u);
- buffer = kmalloc(alloclen, GFP_NOIO);
+ buffer = kmalloc(alloclen, GFP_KERNEL);
if (buffer == NULL)
return USB_STOR_TRANSPORT_ERROR;
@@ -264,7 +264,7 @@ static int jumpshot_write_data(struct us_data *us,
// bounce buffer and the actual transfer buffer.
alloclen = min(totallen, 65536u);
- buffer = kmalloc(alloclen, GFP_NOIO);
+ buffer = kmalloc(alloclen, GFP_KERNEL);
if (buffer == NULL)
return USB_STOR_TRANSPORT_ERROR;
@@ -339,7 +339,7 @@ static int jumpshot_id_device(struct us_data *us,
command[0] = 0xE0;
command[1] = 0xEC;
- reply = kmalloc(512, GFP_NOIO);
+ reply = kmalloc(512, GFP_KERNEL);
if (!reply)
return USB_STOR_TRANSPORT_ERROR;
@@ -491,7 +491,7 @@ static int jumpshot_transport(struct scsi_cmnd *srb, struct us_data *us)
};
if (!us->extra) {
- us->extra = kzalloc(sizeof(struct jumpshot_info), GFP_NOIO);
+ us->extra = kzalloc(sizeof(struct jumpshot_info), GFP_KERNEL);
if (!us->extra)
return USB_STOR_TRANSPORT_ERROR;
diff --git a/drivers/usb/storage/karma.c b/drivers/usb/storage/karma.c
index 94d16ee..5c0dffa 100644
--- a/drivers/usb/storage/karma.c
+++ b/drivers/usb/storage/karma.c
@@ -182,11 +182,11 @@ static void rio_karma_destructor(void *extra)
static int rio_karma_init(struct us_data *us)
{
int ret = 0;
- struct karma_data *data = kzalloc(sizeof(struct karma_data), GFP_NOIO);
+ struct karma_data *data = kzalloc(sizeof(struct karma_data), GFP_KERNEL);
if (!data)
goto out;
- data->recv = kmalloc(RIO_RECV_LEN, GFP_NOIO);
+ data->recv = kmalloc(RIO_RECV_LEN, GFP_KERNEL);
if (!data->recv) {
kfree(data);
goto out;
diff --git a/drivers/usb/storage/onetouch.c b/drivers/usb/storage/onetouch.c
index 74e2aa2..f18c9ed 100644
--- a/drivers/usb/storage/onetouch.c
+++ b/drivers/usb/storage/onetouch.c
@@ -162,7 +162,7 @@ static void usb_onetouch_pm_hook(struct us_data *us, int action)
usb_kill_urb(onetouch->irq);
break;
case US_RESUME:
- if (usb_submit_urb(onetouch->irq, GFP_NOIO) != 0)
+ if (usb_submit_urb(onetouch->irq, GFP_KERNEL) != 0)
dev_err(&onetouch->irq->dev->dev,
"usb_submit_urb failed\n");
break;
diff --git a/drivers/usb/storage/realtek_cr.c b/drivers/usb/storage/realtek_cr.c
index 281be56..0c62dbd 100644
--- a/drivers/usb/storage/realtek_cr.c
+++ b/drivers/usb/storage/realtek_cr.c
@@ -368,7 +368,7 @@ static int rts51x_read_mem(struct us_data *us, u16 addr, u8 *data, u16 len)
u8 cmnd[12] = { 0 };
u8 *buf;
- buf = kmalloc(len, GFP_NOIO);
+ buf = kmalloc(len, GFP_KERNEL);
if (buf == NULL)
return USB_STOR_TRANSPORT_ERROR;
@@ -399,7 +399,7 @@ static int rts51x_write_mem(struct us_data *us, u16 addr, u8 *data, u16 len)
u8 cmnd[12] = { 0 };
u8 *buf;
- buf = kmemdup(data, len, GFP_NOIO);
+ buf = kmemdup(data, len, GFP_KERNEL);
if (buf == NULL)
return USB_STOR_TRANSPORT_ERROR;
@@ -428,7 +428,7 @@ static int rts51x_read_status(struct us_data *us,
u8 cmnd[12] = { 0 };
u8 *buf;
- buf = kmalloc(len, GFP_NOIO);
+ buf = kmalloc(len, GFP_KERNEL);
if (buf == NULL)
return USB_STOR_TRANSPORT_ERROR;
@@ -512,7 +512,7 @@ static int __do_config_autodelink(struct us_data *us, u8 *data, u16 len)
usb_stor_dbg(us, "addr = 0xfe47, len = %d\n", len);
- buf = kmemdup(data, len, GFP_NOIO);
+ buf = kmemdup(data, len, GFP_KERNEL);
if (!buf)
return USB_STOR_TRANSPORT_ERROR;
diff --git a/drivers/usb/storage/sddr09.c b/drivers/usb/storage/sddr09.c
index 073a2c3..72d4346 100644
--- a/drivers/usb/storage/sddr09.c
+++ b/drivers/usb/storage/sddr09.c
@@ -685,7 +685,7 @@ sddr09_read_sg_test_only(struct us_data *us) {
return result;
}
- buf = kmalloc(bulklen, GFP_NOIO);
+ buf = kmalloc(bulklen, GFP_KERNEL);
if (!buf)
return -ENOMEM;
@@ -761,7 +761,7 @@ sddr09_read_data(struct us_data *us,
// bounce buffer and the actual transfer buffer.
len = min(sectors, (unsigned int) info->blocksize) * info->pagesize;
- buffer = kmalloc(len, GFP_NOIO);
+ buffer = kmalloc(len, GFP_KERNEL);
if (buffer == NULL) {
printk(KERN_WARNING "sddr09_read_data: Out of memory\n");
return -ENOMEM;
@@ -991,7 +991,7 @@ sddr09_write_data(struct us_data *us,
pagelen = (1 << info->pageshift) + (1 << CONTROL_SHIFT);
blocklen = (pagelen << info->blockshift);
- blockbuffer = kmalloc(blocklen, GFP_NOIO);
+ blockbuffer = kmalloc(blocklen, GFP_KERNEL);
if (!blockbuffer) {
printk(KERN_WARNING "sddr09_write_data: Out of memory\n");
return -ENOMEM;
@@ -1002,7 +1002,7 @@ sddr09_write_data(struct us_data *us,
// at a time between the bounce buffer and the actual transfer buffer.
len = min(sectors, (unsigned int) info->blocksize) * info->pagesize;
- buffer = kmalloc(len, GFP_NOIO);
+ buffer = kmalloc(len, GFP_KERNEL);
if (buffer == NULL) {
printk(KERN_WARNING "sddr09_write_data: Out of memory\n");
kfree(blockbuffer);
@@ -1221,7 +1221,7 @@ sddr09_read_map(struct us_data *us) {
alloc_blocks = min(numblocks, SDDR09_READ_MAP_BUFSZ >> CONTROL_SHIFT);
alloc_len = (alloc_blocks << CONTROL_SHIFT);
- buffer = kmalloc(alloc_len, GFP_NOIO);
+ buffer = kmalloc(alloc_len, GFP_KERNEL);
if (buffer == NULL) {
printk(KERN_WARNING "sddr09_read_map: out of memory\n");
result = -1;
@@ -1233,8 +1233,8 @@ sddr09_read_map(struct us_data *us) {
kfree(info->lba_to_pba);
kfree(info->pba_to_lba);
- info->lba_to_pba = kmalloc(numblocks*sizeof(int), GFP_NOIO);
- info->pba_to_lba = kmalloc(numblocks*sizeof(int), GFP_NOIO);
+ info->lba_to_pba = kmalloc(numblocks*sizeof(int), GFP_KERNEL);
+ info->pba_to_lba = kmalloc(numblocks*sizeof(int), GFP_KERNEL);
if (info->lba_to_pba == NULL || info->pba_to_lba == NULL) {
printk(KERN_WARNING "sddr09_read_map: out of memory\n");
@@ -1429,7 +1429,7 @@ sddr09_common_init(struct us_data *us) {
return -EINVAL;
}
- us->extra = kzalloc(sizeof(struct sddr09_card_info), GFP_NOIO);
+ us->extra = kzalloc(sizeof(struct sddr09_card_info), GFP_KERNEL);
if (!us->extra)
return -ENOMEM;
us->extra_destructor = sddr09_card_info_destructor;
diff --git a/drivers/usb/storage/sddr55.c b/drivers/usb/storage/sddr55.c
index aacedef..50550e0 100644
--- a/drivers/usb/storage/sddr55.c
+++ b/drivers/usb/storage/sddr55.c
@@ -215,7 +215,7 @@ static int sddr55_read_data(struct us_data *us,
len = min((unsigned int) sectors, (unsigned int) info->blocksize >>
info->smallpageshift) * PAGESIZE;
- buffer = kmalloc(len, GFP_NOIO);
+ buffer = kmalloc(len, GFP_KERNEL);
if (buffer == NULL)
return USB_STOR_TRANSPORT_ERROR; /* out of memory */
offset = 0;
@@ -342,7 +342,7 @@ static int sddr55_write_data(struct us_data *us,
len = min((unsigned int) sectors, (unsigned int) info->blocksize >>
info->smallpageshift) * PAGESIZE;
- buffer = kmalloc(len, GFP_NOIO);
+ buffer = kmalloc(len, GFP_KERNEL);
if (buffer == NULL)
return USB_STOR_TRANSPORT_ERROR;
offset = 0;
@@ -658,7 +658,7 @@ static int sddr55_read_map(struct us_data *us) {
numblocks = info->capacity >> (info->blockshift + info->pageshift);
- buffer = kmalloc( numblocks * 2, GFP_NOIO );
+ buffer = kmalloc( numblocks * 2, GFP_KERNEL );
if (!buffer)
return -1;
@@ -691,8 +691,8 @@ static int sddr55_read_map(struct us_data *us) {
kfree(info->lba_to_pba);
kfree(info->pba_to_lba);
- info->lba_to_pba = kmalloc(numblocks*sizeof(int), GFP_NOIO);
- info->pba_to_lba = kmalloc(numblocks*sizeof(int), GFP_NOIO);
+ info->lba_to_pba = kmalloc(numblocks*sizeof(int), GFP_KERNEL);
+ info->pba_to_lba = kmalloc(numblocks*sizeof(int), GFP_KERNEL);
if (info->lba_to_pba == NULL || info->pba_to_lba == NULL) {
kfree(info->lba_to_pba);
@@ -796,7 +796,7 @@ static int sddr55_transport(struct scsi_cmnd *srb, struct us_data *us)
if (!us->extra) {
us->extra = kzalloc(
- sizeof(struct sddr55_card_info), GFP_NOIO);
+ sizeof(struct sddr55_card_info), GFP_KERNEL);
if (!us->extra)
return USB_STOR_TRANSPORT_ERROR;
us->extra_destructor = sddr55_card_info_destructor;
diff --git a/drivers/usb/storage/shuttle_usbat.c b/drivers/usb/storage/shuttle_usbat.c
index 4ef2a80..b3968db 100644
--- a/drivers/usb/storage/shuttle_usbat.c
+++ b/drivers/usb/storage/shuttle_usbat.c
@@ -1071,7 +1071,7 @@ static int usbat_flash_get_sector_count(struct us_data *us,
if (!us || !info)
return USB_STOR_TRANSPORT_ERROR;
- reply = kmalloc(512, GFP_NOIO);
+ reply = kmalloc(512, GFP_KERNEL);
if (!reply)
return USB_STOR_TRANSPORT_ERROR;
@@ -1156,7 +1156,7 @@ static int usbat_flash_read_data(struct us_data *us,
*/
alloclen = min(totallen, 65536u);
- buffer = kmalloc(alloclen, GFP_NOIO);
+ buffer = kmalloc(alloclen, GFP_KERNEL);
if (buffer == NULL)
return USB_STOR_TRANSPORT_ERROR;
@@ -1247,7 +1247,7 @@ static int usbat_flash_write_data(struct us_data *us,
*/
alloclen = min(totallen, 65536u);
- buffer = kmalloc(alloclen, GFP_NOIO);
+ buffer = kmalloc(alloclen, GFP_KERNEL);
if (buffer == NULL)
return USB_STOR_TRANSPORT_ERROR;
@@ -1350,7 +1350,7 @@ static int usbat_hp8200e_handle_read10(struct us_data *us,
len = (65535/srb->transfersize) * srb->transfersize;
usb_stor_dbg(us, "Max read is %d bytes\n", len);
len = min(len, scsi_bufflen(srb));
- buffer = kmalloc(len, GFP_NOIO);
+ buffer = kmalloc(len, GFP_KERNEL);
if (buffer == NULL) /* bloody hell! */
return USB_STOR_TRANSPORT_FAILED;
sector = short_pack(data[7+3], data[7+2]);
@@ -1461,7 +1461,7 @@ static int init_usbat(struct us_data *us, int devicetype)
unsigned char subcountL = USBAT_ATA_LBA_ME;
unsigned char *status = us->iobuf;
- us->extra = kzalloc(sizeof(struct usbat_info), GFP_NOIO);
+ us->extra = kzalloc(sizeof(struct usbat_info), GFP_KERNEL);
if (!us->extra)
return 1;
diff --git a/drivers/usb/storage/transport.c b/drivers/usb/storage/transport.c
index 22c7d43..783f745 100644
--- a/drivers/usb/storage/transport.c
+++ b/drivers/usb/storage/transport.c
@@ -151,7 +151,7 @@ static int usb_stor_msg_common(struct us_data *us, int timeout)
us->current_urb->transfer_dma = us->iobuf_dma;
/* submit the URB */
- status = usb_submit_urb(us->current_urb, GFP_NOIO);
+ status = usb_submit_urb(us->current_urb, GFP_KERNEL);
if (status) {
/* something went wrong */
return status;
@@ -427,7 +427,7 @@ static int usb_stor_bulk_transfer_sglist(struct us_data *us, unsigned int pipe,
/* initialize the scatter-gather request block */
usb_stor_dbg(us, "xfer %u bytes, %d entries\n", length, num_sg);
result = usb_sg_init(&us->current_sg, us->pusb_dev, pipe, 0,
- sg, num_sg, length, GFP_NOIO);
+ sg, num_sg, length, GFP_KERNEL);
if (result) {
usb_stor_dbg(us, "usb_sg_init returned %d\n", result);
return USB_STOR_XFER_ERROR;
diff --git a/drivers/usb/storage/usb.c b/drivers/usb/storage/usb.c
index 1c0b89f..e34e087 100644
--- a/drivers/usb/storage/usb.c
+++ b/drivers/usb/storage/usb.c
@@ -442,7 +442,7 @@ static int associate_dev(struct us_data *us, struct usb_interface *intf)
usb_set_intfdata(intf, us);
/* Allocate the control/setup and DMA-mapped buffers */
- us->cr = kmalloc(sizeof(*us->cr), GFP_KERNEL);
+ us->cr = kmalloc(sizeof(*us->cr), GFP_NOIO);
if (!us->cr)
return -ENOMEM;

View File

@ -1,24 +0,0 @@
commit dc0fb534ff37768cdc4c6782fb25376f89ed04d3
Author: Sebastian Sumpf <sebastian.sumpf@genode-labs.com>
Date: Mon Jun 2 13:34:39 2014 +0200
tcp.patch
diff --git a/net/ipv4/tcp.c b/net/ipv4/tcp.c
index 97c8f56..4091fe3 100644
--- a/net/ipv4/tcp.c
+++ b/net/ipv4/tcp.c
@@ -3209,6 +3209,13 @@ void __init tcp_init(void)
tcp_init_mem();
/* Set per-socket limits to no more than 1/128 the pressure threshold */
limit = nr_free_buffer_pages() << (PAGE_SHIFT - 7);
+
+ /*
+ * Adjust limit so it performs well on systems with little memory. If
+ * this causes errors increase L4Linux main memory
+ */
+ limit = limit < 1024U * 1024 ? 1024U * 1024 : limit;
+
max_wshare = min(4UL*1024*1024, limit);
max_rshare = min(6UL*1024*1024, limit);

View File

@ -0,0 +1,391 @@
diff --git a/drivers/hid/usbhid/hid-core.c b/drivers/hid/usbhid/hid-core.c
index 44df131..0d0aa68 100644
--- a/drivers/hid/usbhid/hid-core.c
+++ b/drivers/hid/usbhid/hid-core.c
@@ -840,7 +840,7 @@ static int hid_alloc_buffers(struct usb_device *dev, struct hid_device *hid)
&usbhid->inbuf_dma);
usbhid->outbuf = usb_alloc_coherent(dev, usbhid->bufsize, GFP_KERNEL,
&usbhid->outbuf_dma);
- usbhid->cr = kmalloc(sizeof(*usbhid->cr), GFP_KERNEL);
+ usbhid->cr = kmalloc(sizeof(*usbhid->cr), GFP_NOIO);
usbhid->ctrlbuf = usb_alloc_coherent(dev, usbhid->bufsize, GFP_KERNEL,
&usbhid->ctrlbuf_dma);
if (!usbhid->inbuf || !usbhid->outbuf || !usbhid->cr ||
@@ -998,7 +998,7 @@ static int usbhid_parse(struct hid_device *hid)
return -EINVAL;
}
- if (!(rdesc = kmalloc(rsize, GFP_KERNEL))) {
+ if (!(rdesc = kmalloc(rsize, GFP_NOIO))) {
dbg_hid("couldn't allocate rdesc memory\n");
return -ENOMEM;
}
diff --git a/drivers/net/usb/usbnet.c b/drivers/net/usb/usbnet.c
index f9e96c4..31d8b12 100644
--- a/drivers/net/usb/usbnet.c
+++ b/drivers/net/usb/usbnet.c
@@ -228,7 +228,7 @@ static int init_status (struct usbnet *dev, struct usb_interface *intf)
period = max ((int) dev->status->desc.bInterval,
(dev->udev->speed == USB_SPEED_HIGH) ? 7 : 3);
- buf = kmalloc (maxp, GFP_KERNEL);
+ buf = kmalloc (maxp, GFP_NOIO);
if (buf) {
dev->interrupt = usb_alloc_urb (0, GFP_KERNEL);
if (!dev->interrupt) {
@@ -1772,7 +1772,7 @@ int usbnet_resume (struct usb_interface *intf)
if (!--dev->suspend_count) {
/* resume interrupt URB if it was previously submitted */
- __usbnet_status_start_force(dev, GFP_NOIO);
+ __usbnet_status_start_force(dev, GFP_KERNEL);
spin_lock_irq(&dev->txq.lock);
while ((res = usb_get_from_anchor(&dev->deferred))) {
@@ -1801,7 +1801,7 @@ int usbnet_resume (struct usb_interface *intf)
if (netif_device_present(dev->net) &&
!timer_pending(&dev->delay) &&
!test_bit(EVENT_RX_HALT, &dev->flags))
- rx_alloc_submit(dev, GFP_NOIO);
+ rx_alloc_submit(dev, GFP_KERNEL);
if (!(dev->txq.qlen >= TX_QLEN(dev)))
netif_tx_wake_all_queues(dev->net);
@@ -1867,7 +1867,7 @@ static int __usbnet_read_cmd(struct usbnet *dev, u8 cmd, u8 reqtype,
cmd, reqtype, value, index, size);
if (data) {
- buf = kmalloc(size, GFP_KERNEL);
+ buf = kmalloc(size, GFP_NOIO);
if (!buf)
goto out;
}
@@ -1894,7 +1894,7 @@ static int __usbnet_write_cmd(struct usbnet *dev, u8 cmd, u8 reqtype,
cmd, reqtype, value, index, size);
if (data) {
- buf = kmemdup(data, size, GFP_KERNEL);
+ buf = kmemdup(data, size, GFP_NOIO);
if (!buf)
goto out;
}
@@ -2006,7 +2006,7 @@ int usbnet_write_cmd_async(struct usbnet *dev, u8 cmd, u8 reqtype,
}
if (data) {
- buf = kmemdup(data, size, GFP_ATOMIC);
+ buf = kmemdup(data, size, GFP_NOIO);
if (!buf) {
netdev_err(dev->net, "Error allocating buffer"
" in %s!\n", __func__);
@@ -2014,7 +2014,7 @@ int usbnet_write_cmd_async(struct usbnet *dev, u8 cmd, u8 reqtype,
}
}
- req = kmalloc(sizeof(struct usb_ctrlrequest), GFP_ATOMIC);
+ req = kmalloc(sizeof(struct usb_ctrlrequest), GFP_NOIO);
if (!req)
goto fail_free_buf;
diff --git a/drivers/usb/core/config.c b/drivers/usb/core/config.c
index 062967c..f5da439 100644
--- a/drivers/usb/core/config.c
+++ b/drivers/usb/core/config.c
@@ -683,7 +683,7 @@ int usb_get_configuration(struct usb_device *dev)
if (!dev->rawdescriptors)
goto err2;
- desc = kmalloc(USB_DT_CONFIG_SIZE, GFP_KERNEL);
+ desc = kmalloc(USB_DT_CONFIG_SIZE, GFP_NOIO);
if (!desc)
goto err2;
@@ -712,7 +712,7 @@ int usb_get_configuration(struct usb_device *dev)
USB_DT_CONFIG_SIZE);
/* Now that we know the length, get the whole thing */
- bigbuffer = kmalloc(length, GFP_KERNEL);
+ bigbuffer = kmalloc(length, GFP_NOIO);
if (!bigbuffer) {
result = -ENOMEM;
goto err;
@@ -774,7 +774,7 @@ int usb_get_bos_descriptor(struct usb_device *dev)
int length, total_len, num, i;
int ret;
- bos = kzalloc(sizeof(struct usb_bos_descriptor), GFP_KERNEL);
+ bos = kzalloc(sizeof(struct usb_bos_descriptor), GFP_NOIO);
if (!bos)
return -ENOMEM;
@@ -800,7 +800,7 @@ int usb_get_bos_descriptor(struct usb_device *dev)
return -ENOMEM;
/* Now let's get the whole BOS descriptor set */
- buffer = kzalloc(total_len, GFP_KERNEL);
+ buffer = kzalloc(total_len, GFP_NOIO);
if (!buffer) {
ret = -ENOMEM;
goto err;
diff --git a/drivers/usb/core/devices.c b/drivers/usb/core/devices.c
index 2a3bbdf..c78eedd 100644
--- a/drivers/usb/core/devices.c
+++ b/drivers/usb/core/devices.c
@@ -513,7 +513,7 @@ static ssize_t usb_device_dump(char __user **buffer, size_t *nbytes,
return 0;
/* allocate 2^1 pages = 8K (on i386);
* should be more than enough for one device */
- pages_start = (char *)__get_free_pages(GFP_NOIO, 1);
+ pages_start = (char *)__get_free_pages(GFP_KERNEL, 1);
if (!pages_start)
return -ENOMEM;
diff --git a/drivers/usb/core/hub.c b/drivers/usb/core/hub.c
index d498d03..87b0b6b 100644
--- a/drivers/usb/core/hub.c
+++ b/drivers/usb/core/hub.c
@@ -1056,7 +1056,7 @@ static void hub_activate(struct usb_hub *hub, enum hub_activation_type type)
hcd = bus_to_hcd(hdev->bus);
if (hcd->driver->update_hub_device) {
ret = hcd->driver->update_hub_device(hcd, hdev,
- &hub->tt, GFP_NOIO);
+ &hub->tt, GFP_KERNEL);
if (ret < 0) {
dev_err(hub->intfdev, "Host not "
"accepting hub info "
@@ -1205,7 +1205,7 @@ static void hub_activate(struct usb_hub *hub, enum hub_activation_type type)
init3:
hub->quiescing = 0;
- status = usb_submit_urb(hub->urb, GFP_NOIO);
+ status = usb_submit_urb(hub->urb, GFP_KERNEL);
if (status < 0)
dev_err(hub->intfdev, "activate --> %d\n", status);
if (hub->has_indicators && blinkenlights)
@@ -1296,20 +1296,20 @@ static int hub_configure(struct usb_hub *hub,
unsigned unit_load;
unsigned full_load;
- hub->buffer = kmalloc(sizeof(*hub->buffer), GFP_KERNEL);
+ hub->buffer = kmalloc(sizeof(*hub->buffer), GFP_NOIO);
if (!hub->buffer) {
ret = -ENOMEM;
goto fail;
}
- hub->status = kmalloc(sizeof(*hub->status), GFP_KERNEL);
+ hub->status = kmalloc(sizeof(*hub->status), GFP_NOIO);
if (!hub->status) {
ret = -ENOMEM;
goto fail;
}
mutex_init(&hub->status_mutex);
- hub->descriptor = kmalloc(sizeof(*hub->descriptor), GFP_KERNEL);
+ hub->descriptor = kmalloc(sizeof(*hub->descriptor), GFP_NOIO);
if (!hub->descriptor) {
ret = -ENOMEM;
goto fail;
@@ -3464,9 +3464,9 @@ static int usb_req_set_sel(struct usb_device *udev, enum usb3_link_state state)
/*
* usb_enable_lpm() can be called as part of a failed device reset,
* which may be initiated by an error path of a mass storage driver.
- * Therefore, use GFP_NOIO.
+ * Therefore, use GFP_KERNEL.
*/
- sel_values = kmalloc(sizeof *(sel_values), GFP_NOIO);
+ sel_values = kmalloc(sizeof *(sel_values), GFP_KERNEL);
if (!sel_values)
return -ENOMEM;
@@ -4299,7 +4299,7 @@ check_highspeed (struct usb_hub *hub, struct usb_device *udev, int port1)
struct usb_qualifier_descriptor *qual;
int status;
- qual = kmalloc (sizeof *qual, GFP_KERNEL);
+ qual = kmalloc (sizeof *qual, GFP_NOIO);
if (qual == NULL)
return;
@@ -5030,7 +5030,7 @@ static int descriptors_changed(struct usb_device *udev,
len = max(len, old_length);
}
- buf = kmalloc(len, GFP_NOIO);
+ buf = kmalloc(len, GFP_KERNEL);
if (buf == NULL) {
dev_err(&udev->dev, "no mem to re-read configs after reset\n");
/* assume the worst */
diff --git a/drivers/usb/core/message.c b/drivers/usb/core/message.c
index f829a1a..91aa41a 100644
--- a/drivers/usb/core/message.c
+++ b/drivers/usb/core/message.c
@@ -49,7 +49,7 @@ static int usb_start_wait_urb(struct urb *urb, int timeout, int *actual_length)
init_completion(&ctx.done);
urb->context = &ctx;
urb->actual_length = 0;
- retval = usb_submit_urb(urb, GFP_NOIO);
+ retval = usb_submit_urb(urb, GFP_KERNEL);
if (unlikely(retval))
goto out;
@@ -86,7 +86,7 @@ static int usb_internal_control_msg(struct usb_device *usb_dev,
int retv;
int length;
- urb = usb_alloc_urb(0, GFP_NOIO);
+ urb = usb_alloc_urb(0, GFP_KERNEL);
if (!urb)
return -ENOMEM;
@@ -869,11 +869,11 @@ char *usb_cache_string(struct usb_device *udev, int index)
if (index <= 0)
return NULL;
- buf = kmalloc(MAX_USB_STRING_SIZE, GFP_NOIO);
+ buf = kmalloc(MAX_USB_STRING_SIZE, GFP_KERNEL);
if (buf) {
len = usb_string(udev, index, buf, MAX_USB_STRING_SIZE);
if (len > 0) {
- smallbuf = kmalloc(++len, GFP_NOIO);
+ smallbuf = kmalloc(++len, GFP_KERNEL);
if (!smallbuf)
return buf;
memcpy(smallbuf, buf, len);
@@ -944,7 +944,7 @@ int usb_get_device_descriptor(struct usb_device *dev, unsigned int size)
int usb_get_status(struct usb_device *dev, int type, int target, void *data)
{
int ret;
- __le16 *status = kmalloc(sizeof(*status), GFP_KERNEL);
+ __le16 *status = kmalloc(sizeof(*status), GFP_NOIO);
if (!status)
return -ENOMEM;
@@ -1743,7 +1743,7 @@ int usb_set_configuration(struct usb_device *dev, int configuration)
if (cp) {
nintf = cp->desc.bNumInterfaces;
new_interfaces = kmalloc(nintf * sizeof(*new_interfaces),
- GFP_NOIO);
+ GFP_KERNEL);
if (!new_interfaces) {
dev_err(&dev->dev, "Out of memory\n");
return -ENOMEM;
@@ -1752,7 +1752,7 @@ int usb_set_configuration(struct usb_device *dev, int configuration)
for (; n < nintf; ++n) {
new_interfaces[n] = kzalloc(
sizeof(struct usb_interface),
- GFP_NOIO);
+ GFP_KERNEL);
if (!new_interfaces[n]) {
dev_err(&dev->dev, "Out of memory\n");
ret = -ENOMEM;
diff --git a/drivers/usb/host/ehci-mem.c b/drivers/usb/host/ehci-mem.c
index c0fb6a8..107f41d 100644
--- a/drivers/usb/host/ehci-mem.c
+++ b/drivers/usb/host/ehci-mem.c
@@ -82,7 +82,7 @@ static struct ehci_qh *ehci_qh_alloc (struct ehci_hcd *ehci, gfp_t flags)
struct ehci_qh *qh;
dma_addr_t dma;
- qh = kzalloc(sizeof *qh, GFP_ATOMIC);
+ qh = kzalloc(sizeof *qh, GFP_NOIO);
if (!qh)
goto done;
qh->hw = (struct ehci_qh_hw *)
diff --git a/drivers/usb/host/xhci-hub.c b/drivers/usb/host/xhci-hub.c
index 9992fbf..10f539c 100644
--- a/drivers/usb/host/xhci-hub.c
+++ b/drivers/usb/host/xhci-hub.c
@@ -276,7 +276,7 @@ static int xhci_stop_device(struct xhci_hcd *xhci, int slot_id, int suspend)
ret = 0;
virt_dev = xhci->devs[slot_id];
- cmd = xhci_alloc_command(xhci, false, true, GFP_NOIO);
+ cmd = xhci_alloc_command(xhci, false, true, GFP_KERNEL);
if (!cmd) {
xhci_dbg(xhci, "Couldn't allocate command structure.\n");
return -ENOMEM;
diff --git a/drivers/usb/host/xhci.c b/drivers/usb/host/xhci.c
index cca2896..9b5c07e 100644
--- a/drivers/usb/host/xhci.c
+++ b/drivers/usb/host/xhci.c
@@ -1279,7 +1279,7 @@ int xhci_urb_enqueue(struct usb_hcd *hcd, struct urb *urb, gfp_t mem_flags)
size = 1;
urb_priv = kzalloc(sizeof(struct urb_priv) +
- size * sizeof(struct xhci_td *), mem_flags);
+ size * sizeof(struct xhci_td *), GFP_NOIO);
if (!urb_priv)
return -ENOMEM;
@@ -1722,7 +1722,7 @@ int xhci_add_endpoint(struct usb_hcd *hcd, struct usb_device *udev,
* process context, not interrupt context (or so documenation
* for usb_set_interface() and usb_set_configuration() claim).
*/
- if (xhci_endpoint_init(xhci, virt_dev, udev, ep, GFP_NOIO) < 0) {
+ if (xhci_endpoint_init(xhci, virt_dev, udev, ep, GFP_KERNEL) < 0) {
dev_dbg(&udev->dev, "%s - could not initialize ep %#x\n",
__func__, ep->desc.bEndpointAddress);
return -ENOMEM;
@@ -3435,10 +3435,10 @@ int xhci_discover_or_reset_device(struct usb_hcd *hcd, struct usb_device *udev)
/* Allocate the command structure that holds the struct completion.
* Assume we're in process context, since the normal device reset
* process has to wait for the device anyway. Storage devices are
- * reset as part of error handling, so use GFP_NOIO instead of
+ * reset as part of error handling, so use GFP_KERNEL instead of
* GFP_KERNEL.
*/
- reset_device_cmd = xhci_alloc_command(xhci, false, true, GFP_NOIO);
+ reset_device_cmd = xhci_alloc_command(xhci, false, true, GFP_KERNEL);
if (!reset_device_cmd) {
xhci_dbg(xhci, "Couldn't allocate command structure.\n");
return -ENOMEM;
@@ -3682,11 +3682,11 @@ int xhci_alloc_dev(struct usb_hcd *hcd, struct usb_device *udev)
}
spin_unlock_irqrestore(&xhci->lock, flags);
}
- /* Use GFP_NOIO, since this function can be called from
+ /* Use GFP_KERNEL, since this function can be called from
* xhci_discover_or_reset_device(), which may be called as part of
* mass storage driver error handling.
*/
- if (!xhci_alloc_virt_device(xhci, xhci->slot_id, udev, GFP_NOIO)) {
+ if (!xhci_alloc_virt_device(xhci, xhci->slot_id, udev, GFP_KERNEL)) {
xhci_warn(xhci, "Could not allocate xHCI USB device data structures\n");
goto disable_slot;
}
diff --git a/drivers/usb/storage/transport.c b/drivers/usb/storage/transport.c
index 22c7d43..783f745 100644
--- a/drivers/usb/storage/transport.c
+++ b/drivers/usb/storage/transport.c
@@ -151,7 +151,7 @@ static int usb_stor_msg_common(struct us_data *us, int timeout)
us->current_urb->transfer_dma = us->iobuf_dma;
/* submit the URB */
- status = usb_submit_urb(us->current_urb, GFP_NOIO);
+ status = usb_submit_urb(us->current_urb, GFP_KERNEL);
if (status) {
/* something went wrong */
return status;
@@ -427,7 +427,7 @@ static int usb_stor_bulk_transfer_sglist(struct us_data *us, unsigned int pipe,
/* initialize the scatter-gather request block */
usb_stor_dbg(us, "xfer %u bytes, %d entries\n", length, num_sg);
result = usb_sg_init(&us->current_sg, us->pusb_dev, pipe, 0,
- sg, num_sg, length, GFP_NOIO);
+ sg, num_sg, length, GFP_KERNEL);
if (result) {
usb_stor_dbg(us, "usb_sg_init returned %d\n", result);
return USB_STOR_XFER_ERROR;
diff --git a/drivers/usb/storage/usb.c b/drivers/usb/storage/usb.c
index 1c0b89f..e34e087 100644
--- a/drivers/usb/storage/usb.c
+++ b/drivers/usb/storage/usb.c
@@ -442,7 +442,7 @@ static int associate_dev(struct us_data *us, struct usb_interface *intf)
usb_set_intfdata(intf, us);
/* Allocate the control/setup and DMA-mapped buffers */
- us->cr = kmalloc(sizeof(*us->cr), GFP_KERNEL);
+ us->cr = kmalloc(sizeof(*us->cr), GFP_NOIO);
if (!us->cr)
return -ENOMEM;

View File

@ -1 +1 @@
9d0720c26d3b4d92101bbc115d5ae3d73975d2b9
bef53a5523bf042a29c5d390e9b55f43a128afec

View File

@ -1,40 +1,64 @@
LICENSE := GPL
VERSION := 3.14.5
DOWNLOADS := dwc_otg.git linux.archive linux_lxip.archive
SRC_DIR := src/lib/dde_linux
LICENSE := GPL
VERSION := 1
DOWNLOADS := dwc_otg.git usb.archive lxip.archive
#
# The git checkout checks for the existence of SRC_DIR, which is created by the
# Linux extraction, therefore make sure to checkout the GIT sources first.
#
linux.archive linux_lxip.archive: dwc_otg.git
usb.archive: dwc_otg.git
#
# USB and IP stack sources
# USB
#
URL(linux) := http://www.kernel.org/pub/linux/kernel/v3.x/linux-$(VERSION).tar.gz
SHA(linux) := 675bb3446cbf0889d59a048f6af177ca0a7aacb5
DIR(linux) := $(SRC_DIR)
TAR_OPT(linux) := --strip-components=1 --files-from $(REP_DIR)/files.list
HASH_INPUT += $(REP_DIR)/files.list
SRC_DIR_USB := src/lib/usb
VERSION_USB := 3.14.5
URL(usb) := http://www.kernel.org/pub/linux/kernel/v3.x/linux-$(VERSION_USB).tar.gz
SHA(usb) := 675bb3446cbf0889d59a048f6af177ca0a7aacb5
DIR(usb) := $(SRC_DIR_USB)
TAR_OPT(usb) := --strip-components=1 --files-from $(REP_DIR)/usb.list
HASH_INPUT += $(REP_DIR)/usb.list
#
# IP stack headers
#
URL(linux_lxip) := ${URL(linux)}
SHA(linux_lxip) := ${SHA(linux)}
DIR(linux_lxip) := $(SRC_DIR)/lxip
TAR_OPT(linux_lxip) := --strip-components=1 --files-from $(REP_DIR)/lxip_header.list
HASH_INPUT += $(REP_DIR)/lxip_header.list
#
# Raspberry Pi USB controller
#
URL(dwc_otg) := https://github.com/nfeske/dwc_otg.git
REV(dwc_otg) := r2
DIR(dwc_otg) := $(SRC_DIR)/drivers/usb/host/dwc_otg
DIR(dwc_otg) := $(SRC_DIR_USB)/drivers/usb/host/dwc_otg
PATCHES := patches/*.patch
PATCH_OPT = -p1 -d$(SRC_DIR)
#
# IP stack sources
#
SRC_DIR_LXIP := src/lib/lxip
VERSION_LXIP := 3.9
URL(lxip) := http://www.kernel.org/pub/linux/kernel/v3.x/linux-$(VERSION_LXIP).tar.gz
SHA(lxip) := 7979f0d670838d0552c7ede5cc06497b81dcd812
DIR(lxip) := $(SRC_DIR_LXIP)
TAR_OPT(lxip) := --strip-components=1 --files-from $(REP_DIR)/lxip.list
HASH_INPUT += $(REP_DIR)/lxip.list
#
# Patches
#
PATCHES := $(addprefix patches/,$(notdir $(wildcard $(REP_DIR)/patches/*.patch)))
USB_OPT = -p1 -d$(SRC_DIR_USB)
PATCH_OPT(patches/usb_ax88179.patch) := $(USB_OPT)
PATCH_OPT(patches/usb_csum.patch) := $(USB_OPT)
PATCH_OPT(patches/usb_evdev.patch) := $(USB_OPT)
PATCH_OPT(patches/usb_mem.patch) := $(USB_OPT)
PATCH_OPT(patches/usb_usbnet.patch) := $(USB_OPT)
PATCH_OPT(patches/usb_xchi-quirks.patch) := $(USB_OPT)
LXIP_OPT = -p1 -d$(SRC_DIR_LXIP)
PATCH_OPT(patches/lxip_icmp.patch) := $(LXIP_OPT)
PATCH_OPT(patches/lxip_ip_config.patch) := $(LXIP_OPT)
PATCH_OPT(patches/lxip_skbuff.patch) := $(LXIP_OPT)
PATCH_OPT(patches/lxip_tcp.patch) := $(LXIP_OPT)
PATCH_OPT(patches/lxip_netlink.patch) := $(LXIP_OPT)
# vi: set ft=make :

View File

@ -50,7 +50,6 @@ enum {
DUMMY_RET(0, in_irq)
DUMMY_RET(0, inet_twsk_alloc)
DUMMY_RET(0, ipv6_only_sock)
DUMMY_RET(0, is_vmalloc_addr)
DUMMY_RET(0, netpoll_receive_skb)
DUMMY_RET(0, netpoll_rx_disable)
DUMMY_RET(1, nf_hook)
@ -83,7 +82,6 @@ DUMMY_RET(0, xfrm_decode_session_reverse)
*/
DUMMY_SKIP( 0, ASSERT_RTNL)
DUMMY_SKIP(-1, debug_check_no_locks_freed)
DUMMY_SKIP(-1, kmemcheck_annotate_variable)
DUMMY_SKIP(-1, local_bh_disable)
DUMMY_SKIP(-1, local_bh_enable)
DUMMY_SKIP(-1, local_irq_disable)
@ -92,21 +90,22 @@ DUMMY_SKIP(-1, local_irq_restore)
DUMMY_SKIP(-1, local_irq_save)
DUMMY_SKIP(-1, lockdep_init_map)
DUMMY_SKIP(-1, lockdep_set_class_and_name)
DUMMY_SKIP(-1, kmemcheck_annotate_variable)
DUMMY_SKIP(-1, might_sleep)
DUMMY_SKIP(-1, mutex_acquire)
DUMMY_SKIP(-1, mutex_init)
DUMMY_SKIP(-1, mutex_lock)
DUMMY_SKIP(-1, mutex_release)
DUMMY_SKIP(-1, mutex_unlock)
DUMMY_SKIP(-1, prefetchw)
DUMMY_SKIP(-1, mutex_lock)
DUMMY_SKIP(-1, rcu_read_lock)
DUMMY_SKIP(-1, rcu_read_lock_bh)
DUMMY_SKIP(-1, rcu_read_unlock)
DUMMY_SKIP(-1, rcu_read_lock_bh)
DUMMY_SKIP(-1, rcu_read_unlock_bh)
DUMMY_SKIP(-1, read_lock)
DUMMY_SKIP(-1, read_lock_bh)
DUMMY_SKIP(-1, read_seqbegin)
DUMMY_SKIP(-1, read_unlock)
DUMMY_SKIP(-1, read_lock_bh)
DUMMY_SKIP(-1, read_unlock_bh)
DUMMY_SKIP(-1, rwlock_init)
DUMMY_SKIP(-1, seqlock_init)
@ -117,23 +116,10 @@ DUMMY_SKIP(-1, spin_lock_irqsave)
DUMMY_SKIP( 1, spin_trylock)
DUMMY_SKIP(-1, spin_unlock_irqrestore)
DUMMY_SKIP(-1, synchronize_rcu)
DUMMY_SKIP(-1, trace_consume_skb)
DUMMY_SKIP(-1, trace_kfree_skb)
DUMMY_SKIP(-1, trace_napi_gro_frags_entry)
DUMMY_SKIP(-1, trace_napi_gro_receive_entry)
DUMMY_SKIP(-1, trace_napi_poll)
DUMMY_SKIP(-1, trace_net_dev_queue)
DUMMY_SKIP(-1, trace_net_dev_start_xmit)
DUMMY_SKIP(-1, trace_consume_skb)
DUMMY_SKIP(-1, trace_net_dev_xmit)
DUMMY_SKIP(-1, trace_netif_receive_skb)
DUMMY_SKIP(-1, trace_netif_receive_skb_entry)
DUMMY_SKIP(-1, trace_netif_rx)
DUMMY_SKIP(-1, trace_netif_rx_entry)
DUMMY_SKIP(-1, trace_netif_rx_ni_entry)
DUMMY_SKIP(-1, trace_skb_copy_datagram_iovec)
DUMMY_SKIP(-1, trace_sock_exceed_buf_limit)
DUMMY_SKIP(-1, trace_sock_rcvqueue_full)
DUMMY_SKIP(-1, trace_udp_fail_queue_rcv_skb)
DUMMY_SKIP(-1, write_lock)
DUMMY_SKIP(-1, write_lock_bh)
DUMMY_SKIP(-1, write_lock_irq)
@ -186,21 +172,18 @@ DUMMY(-1, audit_get_sessionid)
DUMMY(-1, audit_log)
DUMMY(-1, autoremove_wake_function)
DUMMY(-1, blocking_notifier_chain_unregister)
DUMMY(-1, bpf_tell_extensions)
DUMMY(-1, call_netevent_notifiers)
DUMMY(-1, cancel_delayed_work)
DUMMY(-1, cancel_delayed_work_sync)
DUMMY(-1, capable)
DUMMY(-1, cipso_v4_validate)
DUMMY(-1, clamp)
DUMMY(-1, __clear_bit)
DUMMY(-1, clamp)
DUMMY(-1, clear_bit)
DUMMY(-1, cond_resched)
DUMMY(-1, cond_resched_softirq)
DUMMY(-1, __copy_from_user_nocache)
DUMMY(-1, csum_block_add_ext)
DUMMY(-1, csum_block_sub)
DUMMY(-1, csum_ipv6_magic)
DUMMY(-1, csum_replace2)
DUMMY(-1, csum_sub)
DUMMY(-1, csum_unfold)
@ -226,7 +209,6 @@ DUMMY(-1, file_inode)
DUMMY(-1, finish_wait)
DUMMY(-1, __fls)
DUMMY(-1, fls64)
DUMMY(-1, fnhe_genid)
DUMMY(-1, free_pages)
DUMMY(-1, from_kgid)
DUMMY(-1, from_kgid_munged)
@ -246,7 +228,6 @@ DUMMY(-1, getnstimeofday)
DUMMY(-1, get_nulls_value)
DUMMY(-1, get_options)
DUMMY(-1, get_page)
DUMMY(-1, get_user_pages_fast)
DUMMY(-1, gfp_pfmemalloc_allowed)
DUMMY(-1, gid_lte)
DUMMY(-1, hash32_ptr)
@ -258,8 +239,6 @@ DUMMY(-1, hlist_nulls_empty)
DUMMY(-1, hotcpu_notifier)
DUMMY(-1, hweight32)
DUMMY(-1, hweight64)
DUMMY(-1, icmp6_hdr)
DUMMY(-1, inet6_sk)
DUMMY(-1, inet_ctl_sock_destroy)
DUMMY(-1, inet_diag_dump_icsk)
DUMMY(-1, inet_diag_dump_one_icsk)
@ -273,7 +252,6 @@ DUMMY(-1, inet_twdr_twcal_tick)
DUMMY(-1, inet_twdr_twkill_work)
DUMMY(-1, inet_twsk_bind_unhash)
DUMMY(-1, inet_twsk_deschedule)
DUMMY(-1, inet_twsk_free)
DUMMY(-1, __inet_twsk_hashdance)
DUMMY(-1, inet_twsk_purge)
DUMMY(-1, inet_twsk_put)
@ -286,7 +264,6 @@ DUMMY(-1, init_user_ns)
DUMMY(-1, init_waitqueue_head)
DUMMY(-1, INIT_WORK)
DUMMY(-1, in_softirq)
DUMMY(-1, iov_length)
DUMMY(-1, ip4_datagram_connect)
DUMMY(-1, ip4_datagram_release_cb)
DUMMY(-1, ip_check_mc_rcu)
@ -308,8 +285,6 @@ DUMMY(-1, ip_mroute_setsockopt)
DUMMY(-1, ipv4_is_lbcast)
DUMMY(-1, ipv4_is_local_multicast)
DUMMY(-1, ipv4_is_zeronet)
DUMMY(-1, ipv6_hdr)
DUMMY(-1, ipv6_sk_rxinfo)
DUMMY(-1, irqs_disabled)
DUMMY(-1, is_a_nulls)
DUMMY(-1, is_multicast_ether_addr)
@ -342,11 +317,8 @@ DUMMY(-1, list_del_rcu)
DUMMY(-1, list_replace_rcu)
DUMMY(-1, local_softirq_pending)
DUMMY(-1, lockdep_rtnl_is_held)
DUMMY(-1, macvlan_dev_real_dev)
DUMMY(-1, memcpy_fromiovec)
DUMMY(-1, min)
DUMMY(-1, mod_delayed_work)
DUMMY(-1, __module_get)
DUMMY(-1, module_put)
DUMMY(-1, move_addr_to_kernel)
DUMMY(-1, mq_qdisc_ops)
@ -374,7 +346,6 @@ DUMMY(-1, nla_reserve)
DUMMY(-1, nla_strcmp)
DUMMY(-1, nla_strlcpy)
DUMMY(-1, nla_validate)
DUMMY(-1, nosteal_pipe_buf_ops)
DUMMY(-1, notifier_from_errno)
DUMMY(-1, ns_capable)
DUMMY(-1, num_online_cpus)
@ -384,33 +355,33 @@ DUMMY(-1, PageHighMem)
DUMMY(-1, percpu_counter_destroy)
DUMMY(-1, percpu_counter_sum_positive)
DUMMY(-1, pid_vnr)
DUMMY(-1, prandom_seed)
DUMMY(-1, prandom_u32)
DUMMY(-1, pr_crit)
DUMMY(-1, pr_err_once)
DUMMY(-1, preempt_disable)
DUMMY(-1, preempt_enable)
DUMMY(-1, prefetch)
DUMMY(-1, pr_emerg)
DUMMY(-1, prepare_to_wait)
DUMMY(-1, prepare_to_wait_exclusive)
DUMMY(-1, pr_err)
DUMMY(-1, pr_info)
DUMMY(-1, pr_info_once)
DUMMY(-1, pr_warn)
DUMMY(-1, put_cmsg)
DUMMY(-1, put_cpu)
DUMMY(-1, put_cpu_var)
DUMMY(-1, put_cred)
DUMMY(-1, put_device)
DUMMY(-1, put_group_info)
DUMMY(-1, put_pid)
DUMMY(-1, put_unaligned_be32)
DUMMY(-1, queue_delayed_work)
DUMMY(-1, __raise_softirq_irqoff)
DUMMY(-1, raise_softirq_irqoff)
DUMMY(-1, random32)
DUMMY(-1, ___ratelimit)
DUMMY(-1, raw_notifier_chain_unregister)
DUMMY(-1, raw_seqcount_begin)
DUMMY(-1, rcu_barrier)
DUMMY(-1, read_seqcount_retry)
DUMMY(-1, register_gifconf)
DUMMY(-1, release_net)
DUMMY(-1, release_pages)
DUMMY(-1, remove_proc_entry)
DUMMY(-1, remove_wait_queue)
DUMMY(-1, request_module)
@ -419,8 +390,6 @@ DUMMY(-1, round_jiffies_relative)
DUMMY(-1, round_jiffies_up)
DUMMY(-1, roundup_pow_of_two)
DUMMY(-1, rt_genid_bump)
DUMMY(-1, rt_genid_bump_ipv4)
DUMMY(-1, rt_genid_ipv4)
DUMMY(-1, rtnetlink_init)
DUMMY(-1, __rtnl_unlock)
DUMMY(-1, schedule)
@ -448,8 +417,8 @@ DUMMY(-1, security_sk_free)
DUMMY(-1, security_socket_getpeersec_dgram)
DUMMY(-1, security_socket_getpeersec_stream)
DUMMY(-1, security_sock_graft)
DUMMY(-1, send_sig)
DUMMY(-1, send_sigurg)
DUMMY(-1, send_sig)
DUMMY(-1, __set_bit)
DUMMY(-1, set_bit)
DUMMY(-1, __set_current_state)
@ -462,14 +431,10 @@ DUMMY(-1, sha_transform)
DUMMY(-1, si_meminfo)
DUMMY(-1, S_ISSOCK)
DUMMY(-1, sk_attach_filter)
DUMMY(-1, sk_busy_loop)
DUMMY(-1, sk_can_busy_loop)
DUMMY(-1, sk_detach_filter)
DUMMY(-1, sk_filter_len)
DUMMY(-1, sk_filter_release_rcu)
DUMMY(-1, sk_filter_size)
DUMMY(-1, sk_get_filter)
DUMMY(-1, sk_mark_napi_id)
DUMMY(-1, smp_mb__after_clear_bit)
DUMMY(-1, smp_mb__before_atomic_dec)
DUMMY(-1, __sock_recv_timestamp)
@ -486,15 +451,11 @@ DUMMY(-1, ssleep)
DUMMY(-1, static_key_enabled)
DUMMY(-1, static_key_slow_dec)
DUMMY(-1, static_key_slow_inc)
DUMMY(-1, static_key_true)
DUMMY(-1, strcat)
DUMMY(-1, strncpy_from_user)
DUMMY(-1, synchronize_rcu_expedited)
DUMMY(-1, sysctl_igmp_max_msf)
DUMMY(-1, sysctl_tcp_fastopen)
DUMMY(-1, sysfs_create_link)
DUMMY(-1, sysfs_remove_link)
DUMMY(-1, system_power_efficient_wq)
DUMMY(-1, system_wq)
DUMMY(-1, tasklet_init)
DUMMY(-1, tasklet_schedule)
@ -511,29 +472,31 @@ DUMMY(-1, tcp_peer_is_proven)
DUMMY(-1, tcp_remember_stamp)
DUMMY(-1, tcp_tw_remember_stamp)
DUMMY(-1, tcp_update_metrics)
DUMMY(-1, tcpv4_offload_init)
DUMMY(-1, test_and_clear_bit)
DUMMY(-1, test_and_set_bit)
DUMMY(-1, test_bit)
DUMMY(-1, textsearch_find)
DUMMY(-1, __this_cpu_read)
DUMMY(-1, trace_napi_poll)
DUMMY(-1, trace_net_dev_queue)
DUMMY(-1, trace_netif_rx)
DUMMY(-1, trace_skb_copy_datagram_iovec)
DUMMY(-1, trace_sock_exceed_buf_limit)
DUMMY(-1, trace_sock_rcvqueue_full)
DUMMY(-1, trace_udp_fail_queue_rcv_skb)
DUMMY(-1, try_module_get)
DUMMY(-1, tsk_restore_flags)
DUMMY(-1, u64_stats_fetch_begin_bh)
DUMMY(-1, u64_stats_fetch_retry_bh)
DUMMY(-1, u64_stats_init)
DUMMY(-1, u64_stats_update_begin)
DUMMY(-1, u64_stats_update_end)
DUMMY(-1, udplite4_register)
DUMMY(-1, udpv4_offload_init)
DUMMY(-1, uid_eq)
DUMMY(-1, vfree)
DUMMY(-1, virt_to_page)
DUMMY(-1, vlan_do_receive)
DUMMY(-1, vlan_hw_offload_capable)
DUMMY(-1, __vlan_put_tag)
DUMMY(-1, vlan_untag)
DUMMY(-1, vmalloc)
DUMMY(-1, vzalloc)
DUMMY(-1, wake_up_interruptible)
DUMMY(-1, wake_up_interruptible_all)
@ -542,7 +505,6 @@ DUMMY(-1, wake_up_interruptible_sync_poll)
DUMMY(-1, WARN_ONCE)
DUMMY(-1, write_seqcount_begin)
DUMMY(-1, write_seqcount_end)
DUMMY(-1, __xchg)
DUMMY(-1, xchg)
DUMMY(-1, xfrm4_policy_check_reverse)
DUMMY(-1, xfrm4_route_forward)
@ -550,5 +512,6 @@ DUMMY(-1, xfrm4_udp_encap_rcv)
DUMMY(-1, xfrm_sk_free_policy)
DUMMY(-1, xfrm_user_policy)
DUMMY(-1, yield)
DUMMY(-1, __xchg)
} /* extern "C" */

View File

@ -26,7 +26,7 @@ extern "C" {
#include <dde_kit/printf.h>
#include <dde_kit/types.h>
#define DEBUG_PRINTK 0
#define DEBUG_PRINTK 1
#define DEBUG_SLAB 0
#define DEBUG_TIMER 0
#define DEBUG_CONG 0
@ -210,7 +210,6 @@ struct module;
#define module_init(fn) void module_##fn(void) { fn(); }
#define module_exit(fn) void module_exit_##fn(void) { fn(); }
void __module_get(struct module *);
void module_put(struct module *);
int try_module_get(struct module *);
@ -288,7 +287,6 @@ typedef __u8 u_int8_t;
typedef int16_t __s16;
typedef int32_t __s32;
typedef int64_t __s64;
typedef __u16 __le16;
typedef __u32 __le32;
@ -336,13 +334,13 @@ struct hlist_node {
};
#ifndef __cplusplus
typedef int bool;
typedef _Bool bool;
enum { true = 1, false = 0 };
#endif /* __cplusplus */
#ifndef NULL
#ifdef __cplusplus
#define NULL 0
#define NULL nullptr
#else
#define NULL ((void *)0)
#endif /* __cplusplus */
@ -498,14 +496,6 @@ static inline int printk(const char *fmt, ...)
u32 hash_32(u32 val, unsigned int);
u32 hash32_ptr(const void *);
/**********************
** linux/hashtable.h *
**********************/
#define HASH_SIZE(name) (ARRAY_SIZE(name))
#define DEFINE_HASHTABLE(name, bits) \
struct hlist_head name[1 << (bits)] = { [0 ... ((1 << (bits)) - 1)] = HLIST_HEAD_INIT }
/****************************************************************
** arch/(*)/include/asm/(processor.h|segment.h|thread_info.h) **
@ -872,11 +862,9 @@ enum { NUMA_NO_NODE = -1 };
struct static_key { };
#define STATIC_KEY_INIT_FALSE ((struct static_key) {})
#define STATIC_KEY_INIT_TRUE ((struct static_key) {})
void static_key_slow_inc(struct static_key *);
void static_key_slow_dec(struct static_key *);
bool static_key_true(struct static_key *);
bool static_key_false(struct static_key *);
bool static_key_enabled(struct static_key *);
@ -979,7 +967,6 @@ unsigned long ilog2(unsigned long n);
* For now, hardcoded
*/
#define PAGE_SIZE 4096
#define PAGE_MASK (~(PAGE_SIZE - 1))
enum {
PAGE_SHIFT = 12,
@ -1006,7 +993,7 @@ struct page
*************************/
enum { RES_USAGE };
struct res_counter { };
struct res_counter;
int res_counter_charge_nofail(struct res_counter *, unsigned long,
struct res_counter **);
u64 res_counter_uncharge(struct res_counter *, unsigned long);
@ -1047,9 +1034,6 @@ struct page_frag
** linux/mm.h **
****************/
#define page_private(page) ((page)->private)
#define set_page_private(page, v) ((page)->private = (v))
extern unsigned long totalram_pages;
extern unsigned long num_physpages;
@ -1064,18 +1048,6 @@ struct page *virt_to_page(const void *x);
void si_meminfo(struct sysinfo *);
int is_vmalloc_addr(const void *x);
int get_user_pages_fast(unsigned long start, int nr_pages, int write,
struct page **pages);
/*********************
** linux/pagemap.h **
*********************/
void release_pages(struct page **pages, int nr, int cold);
/********************
** linux/mmzone.h **
@ -1103,7 +1075,6 @@ enum {
__GFP_COLD = 0x100u,
__GFP_NOWARN = 0x200u,
__GFP_REPEAT = 0x400u,
__GFP_NORETRY = 0x1000u,
__GFP_MEMALLOC = 0x2000u,
__GFP_ZERO = 0x8000u,
__GFP_COMP = 0x4000u,
@ -1167,7 +1138,6 @@ void kmem_cache_destroy(struct kmem_cache *);
** linux/vmalloc.h **
*********************/
void *vmalloc(unsigned long size);
void *vzalloc(unsigned long size);
void vfree(const void *addr);
@ -1278,6 +1248,15 @@ struct rw_semaphore { int dummy; };
#define __RWSEM_INITIALIZER(name) { 0 }
/*********************
** linux/seqlock.h **
*********************/
typedef unsigned seqlock_t;
void seqlock_init (seqlock_t *);
#define __SEQLOCK_UNLOCKED(x) 0
/******************
** linux/time.h **
@ -1500,12 +1479,6 @@ static inline void hlist_nulls_del_init_rcu(struct hlist_nulls_node *n)
}
/**********************
** linux/rcu_list.h **
**********************/
#define list_entry_rcu(ptr, type, member) list_entry(ptr, type, member)
/*********************
** linux/lockdep.h **
*********************/
@ -1656,8 +1629,6 @@ void *__alloc_percpu(size_t size, size_t align);
#define __this_cpu_ptr(ptr) per_cpu_ptr(ptr, 0)
#define this_cpu_ptr(ptr) per_cpu_ptr(ptr, 0)
#define __this_cpu_read(pcp) pcp
#define __this_cpu_write(pcp, val) pcp = val;
#define this_cpu_inc(pcp) pcp += 1
#define this_cpu_dec(pcp) pcp -= 1
@ -2163,8 +2134,6 @@ static inline void current_uid_gid(kuid_t *u, kgid_t *g)
kgid_t current_egid(void);
void put_group_info(struct group_info *);
/*************************
** asm-generic/fcntl.h **
@ -2237,15 +2206,11 @@ struct pipe_buf_operations
void (*get)(struct pipe_inode_info *, struct pipe_buffer *);
};
extern const struct pipe_buf_operations nosteal_pipe_buf_ops;
void *generic_pipe_buf_map(struct pipe_inode_info *, struct pipe_buffer *, int);
void generic_pipe_buf_unmap(struct pipe_inode_info *, struct pipe_buffer *, void *);
int generic_pipe_buf_confirm(struct pipe_inode_info *, struct pipe_buffer *);
/********************
** linux/splice.h **
********************/
@ -2304,9 +2269,8 @@ struct kvec
size_t iov_len;
};
size_t iov_length(const struct iovec *iov, unsigned long nr_segs);
int memcpy_toiovec(struct iovec *iov, unsigned char *kdata, int len);
int memcpy_fromiovec(unsigned char *kdata, struct iovec *iov, int len);
int memcpy_toiovec(struct iovec *iov, unsigned char *kdata, int len);
/*******************************
** uapi/asm-generic/ioctls.h **
@ -2355,7 +2319,6 @@ struct sock_filter;
struct sk_filter
{
atomic_t refcnt;
unsigned len;
struct rcu_head rcu;
};
@ -2365,11 +2328,6 @@ int sk_attach_filter(struct sock_fprog *, struct sock *);
int sk_detach_filter(struct sock *);
int sk_get_filter(struct sock *, struct sock_filter *, unsigned);
int bpf_tell_extensions(void);
unsigned int sk_filter_size(unsigned int proglen);
/*****************************
** uapi/linux/hdlc/ioctl.h **
*****************************/
@ -2413,7 +2371,6 @@ struct delayed_work
#define INIT_WORK(_work, _func) printk("INIT_WORK not implemented\n");
extern struct workqueue_struct *system_wq;
extern struct workqueue_struct *system_power_efficient_wq;
bool schedule_work(struct work_struct *work);
bool schedule_delayed_work(struct delayed_work *, unsigned long);
@ -2421,9 +2378,7 @@ bool cancel_delayed_work(struct delayed_work *);
bool cancel_delayed_work_sync(struct delayed_work *);
bool mod_delayed_work(struct workqueue_struct *, struct delayed_work *,
unsigned long);
bool queue_delayed_work(struct workqueue_struct *wq,
struct delayed_work *dwork,
unsigned long delay);
void INIT_DEFERRABLE_WORK(struct delayed_work *, void (*func)(struct work_struct *));
@ -2455,35 +2410,6 @@ enum {
void sha_transform(__u32 *, const char *, __u32 *);
/*********************
** linux/seqlock.h **
*********************/
typedef struct seqcount {
unsigned sequence;
} seqcount_t;
typedef unsigned seqlock_t;
#define __SEQLOCK_UNLOCKED(x) 0
void seqlock_init (seqlock_t *);
unsigned raw_seqcount_begin(const seqcount_t *s);
unsigned raw_read_seqcount_begin(const seqcount_t *s);
unsigned read_seqbegin(const seqlock_t *sl);
unsigned read_seqretry(const seqlock_t *sl, unsigned start);
int read_seqcount_retry(const seqcount_t *s, unsigned start);
void write_seqlock_bh(seqlock_t *);
void write_sequnlock_bh(seqlock_t *);
void write_seqlock(seqlock_t *);
void write_sequnlock(seqlock_t *);
void write_seqcount_begin(seqcount_t *);
void write_seqcount_end(seqcount_t *);
/***********************
** linux/rtnetlink.h **
***********************/
@ -2496,7 +2422,7 @@ struct netlink_callback;
struct rtnl_af_ops;
struct dst_entry;
typedef int (*rtnl_doit_func)(struct sk_buff *, struct nlmsghdr *);
typedef int (*rtnl_doit_func)(struct sk_buff *, struct nlmsghdr *, void *);
typedef int (*rtnl_dumpit_func)(struct sk_buff *, struct netlink_callback *);
typedef u16 (*rtnl_calcit_func)(struct sk_buff *, struct nlmsghdr *);
@ -2520,7 +2446,6 @@ void __rtnl_unlock(void);
int rtnl_is_locked(void);
int rtnl_put_cacheinfo(struct sk_buff *, struct dst_entry *, u32, long, u32);
int lockdep_rtnl_is_held(void);
/********************
** net/netevent.h **
@ -2567,8 +2492,6 @@ enum { FIB_LOOKUP_NOREF = 1 };
struct u64_stats_sync { };
void u64_stats_init(struct u64_stats_sync *);
/*************************
** net/net_namespace.h **
@ -2600,7 +2523,6 @@ struct net
struct hlist_head *dev_index_head;
unsigned int dev_base_seq;
int ifindex;
unsigned int dev_unreg_count;
struct net_device *loopback_dev;
struct user_namespace *user_ns;
struct proc_dir_entry *proc_net_stat;
@ -2608,7 +2530,7 @@ struct net
struct netns_mib mib;
struct netns_ipv4 ipv4;
atomic_t rt_genid;
atomic_t fnhe_genid;
};
@ -2646,10 +2568,7 @@ void release_net(struct net *net);
int rt_genid(struct net *);
void rt_genid_bump(struct net *);
int rt_genid_ipv4(struct net *);
void rt_genid_bump_ipv4(struct net *);
int fnhe_genid(struct net *net);
/**************************
** linux/seq_file_net.h **
@ -2669,6 +2588,24 @@ struct seq_operations { };
struct seq_file { };
/*********************
** linux/seqlock.h **
*********************/
typedef struct seqcount {
unsigned sequence;
} seqcount_t;
unsigned read_seqbegin(const seqlock_t *sl);
unsigned read_seqretry(const seqlock_t *sl, unsigned start);
void write_seqlock_bh(seqlock_t *);
void write_sequnlock_bh(seqlock_t *);
void write_seqlock(seqlock_t *);
void write_sequnlock(seqlock_t *);
void write_seqcount_begin(seqcount_t *);
void write_seqcount_end(seqcount_t *);
/**********************
** net/secure_seq.h **
**********************/
@ -2803,13 +2740,6 @@ __wsum csum_and_copy_to_user(const void *src, void __user *dst, int len,
return sum;
}
static inline __wsum csum_partial_ext(const void *buff, int len, __wsum sum)
{
return csum_partial(buff, len, sum);
}
__wsum csum_block_add_ext(__wsum csum, __wsum csum2, int offset, int len);
/*********************
** linux/if_vlan.h **
@ -2827,8 +2757,6 @@ struct vlan_ethhdr
__be16 h_vlan_encapsulated_proto;
};
typedef u64 netdev_features_t;
static inline
struct net_device *vlan_dev_real_dev(const struct net_device *dev)
{
@ -2836,21 +2764,12 @@ struct net_device *vlan_dev_real_dev(const struct net_device *dev)
}
#define vlan_tx_tag_get(__skb) 0
#define vlan_tx_tag_get_id(__skb) 0
struct sk_buff *__vlan_put_tag(struct sk_buff *, __be16, u16);
struct sk_buff *__vlan_put_tag(struct sk_buff *, u16);
struct sk_buff *vlan_untag(struct sk_buff *);
int is_vlan_dev(struct net_device *);
u16 vlan_tx_tag_present(struct sk_buff *);
bool vlan_do_receive(struct sk_buff **);
bool vlan_tx_nonzero_tag_present(struct sk_buff *);
bool vlan_hw_offload_capable(netdev_features_t, __be16);
/************************
** linux/if_macvlan.h **
************************/
struct net_device * macvlan_dev_real_dev(const struct net_device *dev);
/********************
@ -2940,11 +2859,15 @@ struct rtnl_af_ops
const struct nlattr *attr);
};
typedef int (*rtnl_doit_func)(struct sk_buff *, struct nlmsghdr *, void *);
typedef int (*rtnl_dumpit_func)(struct sk_buff *, struct netlink_callback *);
typedef u16 (*rtnl_calcit_func)(struct sk_buff *, struct nlmsghdr *);
#define rtnl_dereference(p) p
extern const struct nla_policy ifla_policy[IFLA_MAX+1];
void rtmsg_ifinfo(int type, struct net_device *dev, unsigned change, gfp_t flags);
void rtmsg_ifinfo(int type, struct net_device *dev, unsigned change);
/**********************
@ -2981,7 +2904,7 @@ enum {
** net/cls_cgroup.h **
**********************/
void sock_update_classid(struct sock *);
void sock_update_classid(struct sock *, struct task_struct *);
/****************
@ -2992,6 +2915,7 @@ struct ip_hdr;
struct iphdr *ip_hdr(const struct sk_buff *skb);
/********************************
** uapi/linux/netfilter_arp.h **
********************************/
@ -3281,8 +3205,6 @@ static inline void get_random_bytes(void *buf, int nbytes)
}
u32 random32(void);
u32 prandom_u32(void);
void prandom_seed(u32);
void add_device_randomness(const void *, unsigned int);
u32 next_pseudo_random32(u32);
void srandom32(u32 seed);
@ -3322,78 +3244,15 @@ unsigned int net_hash_mix(struct net *);
** net/netprio_cgroup.h **
**************************/
void sock_update_netprioidx(struct sock *);
void sock_update_netprioidx(struct sock *, struct task_struct *);
/******************
** linux/ipv6.h **
******************/
enum {
IP6_MF = 0x0001,
IP6_OFFSET = 0xfff8,
};
struct frag_hdr
{
__u8 nexthdr;
__be16 frag_off;
};
struct ipv6_opt_hdr
{
__u8 nexthdr;
__u8 hdrlen;
};
struct ipv6hdr
{
__be16 payload_len;
__u8 nexthdr;
struct in6_addr saddr;
struct in6_addr daddr;
};
struct ipv6_pinfo
{
__u16 recverr:1;
};
#define ipv6_optlen(p) (((p)->hdrlen+1) << 3)
#define ipv6_authlen(p) (((p)->hdrlen+2) << 2)
int inet_v6_ipv6only(const struct sock *);
int ipv6_only_sock(const struct sock *);
struct ipv6hdr *ipv6_hdr(const struct sk_buff *);
bool ipv6_sk_rxinfo(const struct sock *);
struct ipv6_pinfo *inet6_sk(const struct sock *);
/************************
** net/ip6_checksum.h **
************************/
__sum16 csum_ipv6_magic(const struct in6_addr *saddr,
const struct in6_addr *daddr,
__u32 len, unsigned short proto,
__wsum csum);
/*************************
** uapi/linux/icmpv6.h **
*************************/
enum {
ICMPV6_ECHO_REQUEST = 128,
};
struct icmp6hdr
{
__u8 icmp6_type;
__u8 icmp6_code;
};
struct icmp6hdr *icmp6_hdr(const struct sk_buff *skb);
int inet_v6_ipv6only(const struct sock *);
int ipv6_only_sock(const struct sock *);
/********************
@ -3430,26 +3289,10 @@ bool S_ISSOCK(int);
*********************/
struct gnet_stats_basic_packed;
struct gnet_stats_rate_est64;
struct gnet_stats_rate_est;
void gen_kill_estimator(struct gnet_stats_basic_packed *,
struct gnet_stats_rate_est64 *);
/*********************
** net/busy_poll.h **
*********************/
bool sk_can_busy_loop(struct sock *sk);
bool sk_busy_loop(struct sock *sk, int nonblock);
void sk_mark_napi_id(struct sock *sk, struct sk_buff *skb);
/*******************
** linux/sysfs.h **
*******************/
struct attribute { };
int sysfs_create_link(struct kobject *, struct kobject *, const char *);
void sysfs_remove_link(struct kobject *, const char *);
struct gnet_stats_rate_est *);
/*******************
@ -3459,29 +3302,18 @@ void sysfs_remove_link(struct kobject *, const char *);
struct proto;
void trace_kfree_skb(struct sk_buff *, void *);
void trace_skb_copy_datagram_iovec(const struct sk_buff *, int);
void trace_consume_skb(struct sk_buff *);
void trace_sock_exceed_buf_limit(struct sock *, struct proto *, long);
void trace_sock_rcvqueue_full(struct sock *, struct sk_buff *);
void trace_net_dev_xmit(struct sk_buff *, int , struct net_device *,
unsigned int);
void trace_net_dev_start_xmit(struct sk_buff *, struct net_device *);
void trace_net_dev_queue(struct sk_buff *);
void trace_netif_receive_skb(struct sk_buff *);
void trace_netif_receive_skb_entry(struct sk_buff *);
void trace_netif_rx(struct sk_buff *);
void trace_netif_rx_entry(struct sk_buff *);
void trace_netif_rx_ni_entry(struct sk_buff *);
void trace_netif_receive_skb(struct sk_buff *);
void trace_napi_poll(struct napi_struct *);
void trace_skb_copy_datagram_iovec(const struct sk_buff *, int);
void trace_udp_fail_queue_rcv_skb(int, struct sock*);
void trace_napi_gro_frags_entry(struct sk_buff *);
void trace_napi_gro_receive_entry(struct sk_buff *);
void trace_napi_poll(struct napi_struct *);
/**
* Misc

View File

@ -225,10 +225,10 @@ struct iphdr *ip_hdr(const struct sk_buff *skb)
** linux/netdevice.h **
***********************/
struct netdev_queue *netdev_pick_tx(struct net_device *dev, struct sk_buff *skb, void *accel_priv)
{
return netdev_get_tx_queue(dev, 0);
}
struct netdev_queue *netdev_pick_tx(struct net_device *dev, struct sk_buff *skb)
{
return netdev_get_tx_queue(dev, 0);
}
/*******************************
@ -347,29 +347,6 @@ int blocking_notifier_call_chain(struct blocking_notifier_head *nh,
}
/*****************
** linux/uio.h **
*****************/
int memcpy_toiovec(struct iovec *iov, unsigned char *kdata, int len)
{
while (len > 0) {
if (iov->iov_len) {
int copy = min_t(unsigned int, iov->iov_len, len);
if (copy_to_user(iov->iov_base, kdata, copy))
return -EFAULT;
kdata += copy;
len -= copy;
iov->iov_len -= copy;
iov->iov_base += copy;
}
iov++;
}
return 0;
}
/****************************
** asm-generic/checksum.h **
****************************/

View File

@ -1,7 +1,117 @@
linux-3.14.5/drivers/hid/hid-cherry.c
linux-3.14.5/drivers/hid/hid-core.c
linux-3.14.5/drivers/hid/hid-generic.c
linux-3.14.5/drivers/hid/hid-ids.h
linux-3.14.5/drivers/hid/hid-input.c
linux-3.14.5/drivers/hid/hid-multitouch.c
linux-3.14.5/drivers/hid/usbhid/hid-core.c
linux-3.14.5/drivers/hid/usbhid/hid-quirks.c
linux-3.14.5/drivers/hid/usbhid/usbhid.h
linux-3.14.5/drivers/input/evdev.c
linux-3.14.5/drivers/input/input-compat.h
linux-3.14.5/drivers/input/input-mt.c
linux-3.14.5/drivers/input/input.c
linux-3.14.5/drivers/net/usb/asix_common.c
linux-3.14.5/drivers/net/usb/asix_devices.c
linux-3.14.5/drivers/net/usb/asix.h
linux-3.14.5/drivers/net/usb/ax88172a.c
linux-3.14.5/drivers/net/usb/ax88179_178a.c
linux-3.14.5/drivers/net/usb/smsc95xx.h
linux-3.14.5/drivers/net/usb/smsc95xx.c
linux-3.14.5/drivers/net/usb/usbnet.c
linux-3.14.5/drivers/scsi/constants.c
linux-3.14.5/drivers/scsi/scsi_logging.h
linux-3.14.5/drivers/scsi/scsi.c
linux-3.14.5/drivers/scsi/scsi_priv.h
linux-3.14.5/drivers/usb/core/buffer.c
linux-3.14.5/drivers/usb/core/config.c
linux-3.14.5/drivers/usb/core/devices.c
linux-3.14.5/drivers/usb/core/driver.c
linux-3.14.5/drivers/usb/core/endpoint.c
linux-3.14.5/drivers/usb/core/file.c
linux-3.14.5/drivers/usb/core/generic.c
linux-3.14.5/drivers/usb/core/hcd.c
linux-3.14.5/drivers/usb/core/hcd-pci.c
linux-3.14.5/drivers/usb/core/hub.h
linux-3.14.5/drivers/usb/core/hub.c
linux-3.14.5/drivers/usb/core/message.c
linux-3.14.5/drivers/usb/core/notify.c
linux-3.14.5/drivers/usb/core/port.c
linux-3.14.5/drivers/usb/core/quirks.c
linux-3.14.5/drivers/usb/core/urb.c
linux-3.14.5/drivers/usb/core/usb.h
linux-3.14.5/drivers/usb/core/usb.c
linux-3.14.5/drivers/usb/dwc3/core.h
linux-3.14.5/drivers/usb/dwc3/core.c
linux-3.14.5/drivers/usb/dwc3/debug.h
linux-3.14.5/drivers/usb/dwc3/gadget.h
linux-3.14.5/drivers/usb/dwc3/host.c
linux-3.14.5/drivers/usb/dwc3/io.h
linux-3.14.5/drivers/usb/dwc3/platform_data.h
linux-3.14.5/drivers/usb/host/ehci-dbg.c
linux-3.14.5/drivers/usb/host/ehci-exynos.c
linux-3.14.5/drivers/usb/host/ehci.h
linux-3.14.5/drivers/usb/host/ehci-hcd.c
linux-3.14.5/drivers/usb/host/ehci-hub.c
linux-3.14.5/drivers/usb/host/ehci-mem.c
linux-3.14.5/drivers/usb/host/ehci-omap.c
linux-3.14.5/drivers/usb/host/ehci-pci.c
linux-3.14.5/drivers/usb/host/ehci-q.c
linux-3.14.5/drivers/usb/host/ehci-sched.c
linux-3.14.5/drivers/usb/host/ehci-sysfs.c
linux-3.14.5/drivers/usb/host/ehci-timer.c
linux-3.14.5/drivers/usb/host/pci-quirks.h
linux-3.14.5/drivers/usb/host/pci-quirks.c
linux-3.14.5/drivers/usb/host/uhci-debug.c
linux-3.14.5/drivers/usb/host/uhci-hcd.h
linux-3.14.5/drivers/usb/host/uhci-hcd.c
linux-3.14.5/drivers/usb/host/uhci-hub.c
linux-3.14.5/drivers/usb/host/uhci-pci.c
linux-3.14.5/drivers/usb/host/uhci-q.c
linux-3.14.5/drivers/usb/host/xhci-dbg.c
linux-3.14.5/drivers/usb/host/xhci-ext-caps.h
linux-3.14.5/drivers/usb/host/xhci.h
linux-3.14.5/drivers/usb/host/xhci-hub.c
linux-3.14.5/drivers/usb/host/xhci-mem.c
linux-3.14.5/drivers/usb/host/xhci.c
linux-3.14.5/drivers/usb/host/xhci-pci.c
linux-3.14.5/drivers/usb/host/xhci-plat.c
linux-3.14.5/drivers/usb/host/xhci-ring.c
linux-3.14.5/drivers/usb/host/xhci-trace.h
linux-3.14.5/drivers/usb/storage/debug.h
linux-3.14.5/drivers/usb/storage/initializers.h
linux-3.14.5/drivers/usb/storage/initializers.c
linux-3.14.5/drivers/usb/storage/option_ms.h
linux-3.14.5/drivers/usb/storage/option_ms.c
linux-3.14.5/drivers/usb/storage/protocol.h
linux-3.14.5/drivers/usb/storage/protocol.c
linux-3.14.5/drivers/usb/storage/scsiglue.h
linux-3.14.5/drivers/usb/storage/scsiglue.c
linux-3.14.5/drivers/usb/storage/sierra_ms.h
linux-3.14.5/drivers/usb/storage/sierra_ms.c
linux-3.14.5/drivers/usb/storage/transport.h
linux-3.14.5/drivers/usb/storage/transport.c
linux-3.14.5/drivers/usb/storage/unusual_alauda.h
linux-3.14.5/drivers/usb/storage/unusual_cypress.h
linux-3.14.5/drivers/usb/storage/unusual_datafab.h
linux-3.14.5/drivers/usb/storage/unusual_devs.h
linux-3.14.5/drivers/usb/storage/unusual_ene_ub6250.h
linux-3.14.5/drivers/usb/storage/unusual_freecom.h
linux-3.14.5/drivers/usb/storage/unusual_isd200.h
linux-3.14.5/drivers/usb/storage/unusual_jumpshot.h
linux-3.14.5/drivers/usb/storage/unusual_karma.h
linux-3.14.5/drivers/usb/storage/unusual_onetouch.h
linux-3.14.5/drivers/usb/storage/unusual_realtek.h
linux-3.14.5/drivers/usb/storage/unusual_sddr09.h
linux-3.14.5/drivers/usb/storage/unusual_sddr55.h
linux-3.14.5/drivers/usb/storage/unusual_usbat.h
linux-3.14.5/drivers/usb/storage/usb.h
linux-3.14.5/drivers/usb/storage/usb.c
linux-3.14.5/drivers/usb/storage/usual-tables.c
linux-3.14.5/drivers/usb/usb-common.c
linux-3.14.5/include/asm-generic/bitops/__ffs.h
linux-3.14.5/include/asm-generic/bitops/non-atomic.h
linux-3.14.5/include/asm-generic/ioctl.h
linux-3.14.5/include/linux/byteorder/generic.h
linux-3.14.5/include/linux/hiddev.h
linux-3.14.5/include/linux/hid.h
linux-3.14.5/include/linux/input.h
@ -9,15 +119,14 @@ linux-3.14.5/include/linux/input/mt.h
linux-3.14.5/include/linux/list.h
linux-3.14.5/include/linux/mod_devicetable.h
linux-3.14.5/include/linux/netdev_features.h
linux-3.14.5/include/linux/pci_ids.h
linux-3.14.5/include/linux/platform_data/dwc3-exynos.h
linux-3.14.5/include/linux/pci_ids.h
linux-3.14.5/include/linux/platform_data/usb-omap.h
linux-3.14.5/include/linux/swab.h
linux-3.14.5/include/linux/usb/ch9.h
linux-3.14.5/include/linux/usb/ehci_def.h
linux-3.14.5/include/linux/usb.h
linux-3.14.5/include/linux/usb/hcd.h
linux-3.14.5/include/linux/usb/input.h
linux-3.14.5/include/linux/usb/otg.h
linux-3.14.5/include/linux/usb/phy.h
linux-3.14.5/include/linux/usb/quirks.h
@ -33,199 +142,3 @@ linux-3.14.5/include/uapi/linux/input.h
linux-3.14.5/include/uapi/linux/pci_regs.h
linux-3.14.5/include/uapi/linux/usb/ch11.h
linux-3.14.5/include/uapi/linux/usb/ch9.h
linux-3.14.5/arch/arm/plat-samsung/include/plat/usb-phy.h
linux-3.14.5/drivers/hid/hid-cherry.c
linux-3.14.5/drivers/hid/hid-core.c
linux-3.14.5/drivers/hid/hid-generic.c
linux-3.14.5/drivers/hid/hid-multitouch.c
linux-3.14.5/drivers/hid/hid-ids.h
linux-3.14.5/drivers/hid/hid-input.c
linux-3.14.5/drivers/hid/usbhid/hid-core.c
linux-3.14.5/drivers/hid/usbhid/hiddev.c
linux-3.14.5/drivers/hid/usbhid/hid-pidff.c
linux-3.14.5/drivers/hid/usbhid/hid-quirks.c
linux-3.14.5/drivers/hid/usbhid/Kconfig
linux-3.14.5/drivers/hid/usbhid/Makefile
linux-3.14.5/drivers/hid/usbhid/usbhid.h
linux-3.14.5/drivers/hid/usbhid/usbkbd.c
linux-3.14.5/drivers/hid/usbhid/usbmouse.c
linux-3.14.5/drivers/input/evdev.c
linux-3.14.5/drivers/input/input.c
linux-3.14.5/drivers/input/input-mt.c
linux-3.14.5/drivers/input/input-compat.h
linux-3.14.5/drivers/net/usb/asix_common.c
linux-3.14.5/drivers/net/usb/asix_devices.c
linux-3.14.5/drivers/net/usb/asix.h
linux-3.14.5/drivers/net/usb/ax88172a.c
linux-3.14.5/drivers/net/usb/ax88179_178a.c
linux-3.14.5/drivers/net/usb/smsc95xx.c
linux-3.14.5/drivers/net/usb/smsc95xx.h
linux-3.14.5/drivers/net/usb/usbnet.c
linux-3.14.5/drivers/scsi/constants.c
linux-3.14.5/drivers/scsi/scsi.c
linux-3.14.5/drivers/scsi/scsi.h
linux-3.14.5/drivers/scsi/scsi_logging.h
linux-3.14.5/drivers/scsi/scsi_priv.h
linux-3.14.5/drivers/usb/core/buffer.c
linux-3.14.5/drivers/usb/core/config.c
linux-3.14.5/drivers/usb/core/devices.c
linux-3.14.5/drivers/usb/core/driver.c
linux-3.14.5/drivers/usb/core/endpoint.c
linux-3.14.5/drivers/usb/core/file.c
linux-3.14.5/drivers/usb/core/generic.c
linux-3.14.5/drivers/usb/core/hcd.c
linux-3.14.5/drivers/usb/core/hcd-pci.c
linux-3.14.5/drivers/usb/core/hub.c
linux-3.14.5/drivers/usb/core/hub.h
linux-3.14.5/drivers/usb/core/message.c
linux-3.14.5/drivers/usb/core/notify.c
linux-3.14.5/drivers/usb/core/port.c
linux-3.14.5/drivers/usb/core/quirks.c
linux-3.14.5/drivers/usb/core/urb.c
linux-3.14.5/drivers/usb/core/usb.c
linux-3.14.5/drivers/usb/core/usb.h
linux-3.14.5/drivers/usb/dwc3/core.c
linux-3.14.5/drivers/usb/dwc3/core.h
linux-3.14.5/drivers/usb/dwc3/debug.h
linux-3.14.5/drivers/usb/dwc3/gadget.h
linux-3.14.5/drivers/usb/dwc3/host.c
linux-3.14.5/drivers/usb/dwc3/io.h
linux-3.14.5/drivers/usb/dwc3/platform_data.h
linux-3.14.5/drivers/usb/host/ehci-dbg.c
linux-3.14.5/drivers/usb/host/ehci.h
linux-3.14.5/drivers/usb/host/ehci-hcd.c
linux-3.14.5/drivers/usb/host/ehci-hub.c
linux-3.14.5/drivers/usb/host/ehci-mem.c
linux-3.14.5/drivers/usb/host/ehci-omap.c
linux-3.14.5/drivers/usb/host/ehci-pci.c
linux-3.14.5/drivers/usb/host/ehci-q.c
linux-3.14.5/drivers/usb/host/ehci-exynos.c
linux-3.14.5/drivers/usb/host/ehci-sched.c
linux-3.14.5/drivers/usb/host/ehci-sysfs.c
linux-3.14.5/drivers/usb/host/ehci-timer.c
linux-3.14.5/drivers/usb/host/ohci-dbg.c
linux-3.14.5/drivers/usb/host/ohci.h
linux-3.14.5/drivers/usb/host/ohci-hcd.c
linux-3.14.5/drivers/usb/host/ohci-hub.c
linux-3.14.5/drivers/usb/host/ohci-mem.c
linux-3.14.5/drivers/usb/host/ohci-pci.c
linux-3.14.5/drivers/usb/host/ohci-q.c
linux-3.14.5/drivers/usb/host/pci-quirks.c
linux-3.14.5/drivers/usb/host/pci-quirks.h
linux-3.14.5/drivers/usb/host/uhci-debug.c
linux-3.14.5/drivers/usb/host/uhci-hcd.c
linux-3.14.5/drivers/usb/host/uhci-hcd.h
linux-3.14.5/drivers/usb/host/uhci-hub.c
linux-3.14.5/drivers/usb/host/uhci-pci.c
linux-3.14.5/drivers/usb/host/uhci-q.c
linux-3.14.5/drivers/usb/host/xhci.c
linux-3.14.5/drivers/usb/host/xhci-dbg.c
linux-3.14.5/drivers/usb/host/xhci-ext-caps.h
linux-3.14.5/drivers/usb/host/xhci.h
linux-3.14.5/drivers/usb/host/xhci-hub.c
linux-3.14.5/drivers/usb/host/xhci-mem.c
linux-3.14.5/drivers/usb/host/xhci-pci.c
linux-3.14.5/drivers/usb/host/xhci-plat.c
linux-3.14.5/drivers/usb/host/xhci-ring.c
linux-3.14.5/drivers/usb/host/xhci-trace.h
linux-3.14.5/drivers/usb/storage/alauda.c
linux-3.14.5/drivers/usb/storage/cypress_atacb.c
linux-3.14.5/drivers/usb/storage/datafab.c
linux-3.14.5/drivers/usb/storage/debug.c
linux-3.14.5/drivers/usb/storage/debug.h
linux-3.14.5/drivers/usb/storage/ene_ub6250.c
linux-3.14.5/drivers/usb/storage/freecom.c
linux-3.14.5/drivers/usb/storage/initializers.c
linux-3.14.5/drivers/usb/storage/initializers.h
linux-3.14.5/drivers/usb/storage/isd200.c
linux-3.14.5/drivers/usb/storage/jumpshot.c
linux-3.14.5/drivers/usb/storage/karma.c
linux-3.14.5/drivers/usb/storage/Kconfig
linux-3.14.5/drivers/usb/storage/Makefile
linux-3.14.5/drivers/usb/storage/onetouch.c
linux-3.14.5/drivers/usb/storage/option_ms.c
linux-3.14.5/drivers/usb/storage/option_ms.h
linux-3.14.5/drivers/usb/storage/protocol.c
linux-3.14.5/drivers/usb/storage/protocol.h
linux-3.14.5/drivers/usb/storage/realtek_cr.c
linux-3.14.5/drivers/usb/storage/scsiglue.c
linux-3.14.5/drivers/usb/storage/scsiglue.h
linux-3.14.5/drivers/usb/storage/sddr09.c
linux-3.14.5/drivers/usb/storage/sddr55.c
linux-3.14.5/drivers/usb/storage/shuttle_usbat.c
linux-3.14.5/drivers/usb/storage/sierra_ms.c
linux-3.14.5/drivers/usb/storage/sierra_ms.h
linux-3.14.5/drivers/usb/storage/transport.c
linux-3.14.5/drivers/usb/storage/transport.h
linux-3.14.5/drivers/usb/storage/uas.c
linux-3.14.5/drivers/usb/storage/unusual_alauda.h
linux-3.14.5/drivers/usb/storage/unusual_cypress.h
linux-3.14.5/drivers/usb/storage/unusual_datafab.h
linux-3.14.5/drivers/usb/storage/unusual_devs.h
linux-3.14.5/drivers/usb/storage/unusual_ene_ub6250.h
linux-3.14.5/drivers/usb/storage/unusual_freecom.h
linux-3.14.5/drivers/usb/storage/unusual_isd200.h
linux-3.14.5/drivers/usb/storage/unusual_jumpshot.h
linux-3.14.5/drivers/usb/storage/unusual_karma.h
linux-3.14.5/drivers/usb/storage/unusual_onetouch.h
linux-3.14.5/drivers/usb/storage/unusual_realtek.h
linux-3.14.5/drivers/usb/storage/unusual_sddr09.h
linux-3.14.5/drivers/usb/storage/unusual_sddr55.h
linux-3.14.5/drivers/usb/storage/unusual_usbat.h
linux-3.14.5/drivers/usb/storage/usb.c
linux-3.14.5/drivers/usb/storage/usb.h
linux-3.14.5/drivers/usb/storage/usual-tables.c
linux-3.14.5/drivers/usb/usb-common.c
linux-3.14.5/lib/checksum.c
linux-3.14.5/net/802/p8023.c
linux-3.14.5/net/core/datagram.c
linux-3.14.5/net/core/dev.c
linux-3.14.5/net/core/dev_addr_lists.c
linux-3.14.5/net/core/dst.c
linux-3.14.5/net/core/ethtool.c
linux-3.14.5/net/core/iovec.c
linux-3.14.5/net/core/neighbour.c
linux-3.14.5/net/core/net-sysfs.h
linux-3.14.5/net/core/request_sock.c
linux-3.14.5/net/core/skbuff.c
linux-3.14.5/net/core/sock.c
linux-3.14.5/net/core/stream.c
linux-3.14.5/net/core/utils.c
linux-3.14.5/net/ethernet/eth.c
linux-3.14.5/net/ipv4/af_inet.c
linux-3.14.5/net/ipv4/arp.c
linux-3.14.5/net/ipv4/devinet.c
linux-3.14.5/net/ipv4/fib_frontend.c
linux-3.14.5/net/ipv4/fib_lookup.h
linux-3.14.5/net/ipv4/fib_semantics.c
linux-3.14.5/net/ipv4/fib_trie.c
linux-3.14.5/net/ipv4/icmp.c
linux-3.14.5/net/ipv4/inet_connection_sock.c
linux-3.14.5/net/ipv4/inet_fragment.c
linux-3.14.5/net/ipv4/inet_hashtables.c
linux-3.14.5/net/ipv4/inetpeer.c
linux-3.14.5/net/ipv4/ipconfig.c
linux-3.14.5/net/ipv4/ip_forward.c
linux-3.14.5/net/ipv4/ip_fragment.c
linux-3.14.5/net/ipv4/ip_input.c
linux-3.14.5/net/ipv4/ip_options.c
linux-3.14.5/net/ipv4/ip_output.c
linux-3.14.5/net/ipv4/ip_sockglue.c
linux-3.14.5/net/ipv4/ping.c
linux-3.14.5/net/ipv4/protocol.c
linux-3.14.5/net/ipv4/raw.c
linux-3.14.5/net/ipv4/route.c
linux-3.14.5/net/ipv4/tcp.c
linux-3.14.5/net/ipv4/tcp_cong.c
linux-3.14.5/net/ipv4/tcp_cubic.c
linux-3.14.5/net/ipv4/tcp_diag.c
linux-3.14.5/net/ipv4/tcp_input.c
linux-3.14.5/net/ipv4/tcp_ipv4.c
linux-3.14.5/net/ipv4/tcp_minisocks.c
linux-3.14.5/net/ipv4/tcp_output.c
linux-3.14.5/net/ipv4/tcp_timer.c
linux-3.14.5/net/ipv4/udp.c
linux-3.14.5/net/ipv4/udp_impl.h
linux-3.14.5/net/netlink/af_netlink.h
linux-3.14.5/net/netlink/af_netlink.c
linux-3.14.5/net/sched/sch_generic.c