From 98165dd91ba1ddd65578464d6c1f7164aa563c6d Mon Sep 17 00:00:00 2001 From: Sebastian Sumpf Date: Mon, 2 Jun 2014 13:50:17 +0200 Subject: [PATCH] dde_linux: Update to Linux 3.14.5 Update patch files and file lists. --- repos/dde_linux/files.list | 462 +++++++++--------- .../dde_linux/lib/mk/platform_arndale/usb.mk | 10 +- repos/dde_linux/lib/mk/platform_panda/usb.mk | 3 +- repos/dde_linux/lib/mk/usb.inc | 7 +- repos/dde_linux/lxip_header.list | 172 +++---- repos/dde_linux/patches/ax88179.patch | 15 +- repos/dde_linux/patches/csum.patch | 15 +- repos/dde_linux/patches/dwc3.patch | 13 - repos/dde_linux/patches/evdev.patch | 17 +- repos/dde_linux/patches/icmp.patch | 15 +- repos/dde_linux/patches/ip_config.patch | 15 +- repos/dde_linux/patches/mem.patch | 220 ++++----- repos/dde_linux/patches/skbuff.patch | 22 +- repos/dde_linux/patches/tcp.patch | 22 +- repos/dde_linux/patches/usbnet.patch | 30 +- repos/dde_linux/patches/xhci-quirks.patch | 39 +- repos/dde_linux/ports/dde_linux.hash | 2 +- repos/dde_linux/ports/dde_linux.port | 4 +- repos/dde_linux/src/lib/lxip/dummies.cc | 81 ++- .../dde_linux/src/lib/lxip/include/lx_emul.h | 289 ++++++++--- repos/dde_linux/src/lib/lxip/lxc_emul.c | 31 +- .../lib/usb/arm/platform_arndale/platform.cc | 14 +- .../src/lib/usb/arm/platform_device.c | 21 +- .../lib/usb/arm/platform_panda/platform.cc | 6 +- repos/dde_linux/src/lib/usb/dummies.c | 81 +-- .../lib/usb/include/arm/platform/lx_emul.h | 39 +- repos/dde_linux/src/lib/usb/include/lx_emul.h | 266 ++++++++-- repos/dde_linux/src/lib/usb/include/routine.h | 3 +- repos/dde_linux/src/lib/usb/input/evdev.c | 3 +- repos/dde_linux/src/lib/usb/lx_emul.cc | 85 +++- repos/dde_linux/src/lib/usb/main.cc | 6 +- repos/dde_linux/src/lib/usb/nic/nic.cc | 6 +- 32 files changed, 1301 insertions(+), 713 deletions(-) delete mode 100644 repos/dde_linux/patches/dwc3.patch diff --git a/repos/dde_linux/files.list b/repos/dde_linux/files.list index f01a667922..4bc888bc5a 100644 --- a/repos/dde_linux/files.list +++ b/repos/dde_linux/files.list @@ -1,231 +1,231 @@ -linux-3.9/include/asm-generic/bitops/__ffs.h -linux-3.9/include/asm-generic/bitops/non-atomic.h -linux-3.9/include/asm-generic/ioctl.h -linux-3.9/include/linux/byteorder/generic.h -linux-3.9/include/linux/hiddev.h -linux-3.9/include/linux/hid.h -linux-3.9/include/linux/input.h -linux-3.9/include/linux/input/mt.h -linux-3.9/include/linux/list.h -linux-3.9/include/linux/mod_devicetable.h -linux-3.9/include/linux/netdev_features.h -linux-3.9/include/linux/pci_ids.h -linux-3.9/include/linux/platform_data/dwc3-exynos.h -linux-3.9/include/linux/platform_data/usb-ehci-s5p.h -linux-3.9/include/linux/platform_data/usb-omap.h -linux-3.9/include/linux/swab.h -linux-3.9/include/linux/usb/ch9.h -linux-3.9/include/linux/usb/ehci_def.h -linux-3.9/include/linux/usb.h -linux-3.9/include/linux/usb/hcd.h -linux-3.9/include/linux/usb/input.h -linux-3.9/include/linux/usb/otg.h -linux-3.9/include/linux/usb/phy.h -linux-3.9/include/linux/usb/quirks.h -linux-3.9/include/linux/usb/storage.h -linux-3.9/include/linux/usb/usbnet.h -linux-3.9/include/linux/usb_usual.h -linux-3.9/include/scsi/scsi.h -linux-3.9/include/scsi/scsi_host.h -linux-3.9/include/uapi/asm-generic/ioctl.h -linux-3.9/include/uapi/linux/byteorder/little_endian.h -linux-3.9/include/uapi/linux/hid.h -linux-3.9/include/uapi/linux/input.h -linux-3.9/include/uapi/linux/pci_regs.h -linux-3.9/include/uapi/linux/usb/ch11.h -linux-3.9/include/uapi/linux/usb/ch9.h -linux-3.9/arch/arm/plat-samsung/include/plat/usb-phy.h -linux-3.9/drivers/hid/hid-cherry.c -linux-3.9/drivers/hid/hid-core.c -linux-3.9/drivers/hid/hid-generic.c -linux-3.9/drivers/hid/hid-multitouch.c -linux-3.9/drivers/hid/hid-ids.h -linux-3.9/drivers/hid/hid-input.c -linux-3.9/drivers/hid/usbhid/hid-core.c -linux-3.9/drivers/hid/usbhid/hiddev.c -linux-3.9/drivers/hid/usbhid/hid-pidff.c -linux-3.9/drivers/hid/usbhid/hid-quirks.c -linux-3.9/drivers/hid/usbhid/Kconfig -linux-3.9/drivers/hid/usbhid/Makefile -linux-3.9/drivers/hid/usbhid/usbhid.h -linux-3.9/drivers/hid/usbhid/usbkbd.c -linux-3.9/drivers/hid/usbhid/usbmouse.c -linux-3.9/drivers/input/evdev.c -linux-3.9/drivers/input/input.c -linux-3.9/drivers/input/input-mt.c -linux-3.9/drivers/input/input-compat.h -linux-3.9/drivers/net/usb/asix_common.c -linux-3.9/drivers/net/usb/asix_devices.c -linux-3.9/drivers/net/usb/asix.h -linux-3.9/drivers/net/usb/ax88172a.c -linux-3.9/drivers/net/usb/ax88179_178a.c -linux-3.9/drivers/net/usb/smsc95xx.c -linux-3.9/drivers/net/usb/smsc95xx.h -linux-3.9/drivers/net/usb/usbnet.c -linux-3.9/drivers/scsi/constants.c -linux-3.9/drivers/scsi/scsi.c -linux-3.9/drivers/scsi/scsi.h -linux-3.9/drivers/scsi/scsi_logging.h -linux-3.9/drivers/scsi/scsi_priv.h -linux-3.9/drivers/usb/core/buffer.c -linux-3.9/drivers/usb/core/config.c -linux-3.9/drivers/usb/core/devices.c -linux-3.9/drivers/usb/core/driver.c -linux-3.9/drivers/usb/core/endpoint.c -linux-3.9/drivers/usb/core/file.c -linux-3.9/drivers/usb/core/generic.c -linux-3.9/drivers/usb/core/hcd.c -linux-3.9/drivers/usb/core/hcd-pci.c -linux-3.9/drivers/usb/core/hub.c -linux-3.9/drivers/usb/core/hub.h -linux-3.9/drivers/usb/core/message.c -linux-3.9/drivers/usb/core/notify.c -linux-3.9/drivers/usb/core/port.c -linux-3.9/drivers/usb/core/quirks.c -linux-3.9/drivers/usb/core/urb.c -linux-3.9/drivers/usb/core/usb.c -linux-3.9/drivers/usb/core/usb.h -linux-3.9/drivers/usb/dwc3/core.c -linux-3.9/drivers/usb/dwc3/core.h -linux-3.9/drivers/usb/dwc3/debug.h -linux-3.9/drivers/usb/dwc3/dwc3-exynos.c -linux-3.9/drivers/usb/dwc3/gadget.h -linux-3.9/drivers/usb/dwc3/host.c -linux-3.9/drivers/usb/dwc3/io.h -linux-3.9/drivers/usb/host/ehci-dbg.c -linux-3.9/drivers/usb/host/ehci.h -linux-3.9/drivers/usb/host/ehci-hcd.c -linux-3.9/drivers/usb/host/ehci-hub.c -linux-3.9/drivers/usb/host/ehci-mem.c -linux-3.9/drivers/usb/host/ehci-omap.c -linux-3.9/drivers/usb/host/ehci-pci.c -linux-3.9/drivers/usb/host/ehci-q.c -linux-3.9/drivers/usb/host/ehci-s5p.c -linux-3.9/drivers/usb/host/ehci-sched.c -linux-3.9/drivers/usb/host/ehci-sysfs.c -linux-3.9/drivers/usb/host/ehci-timer.c -linux-3.9/drivers/usb/host/ohci-dbg.c -linux-3.9/drivers/usb/host/ohci.h -linux-3.9/drivers/usb/host/ohci-hcd.c -linux-3.9/drivers/usb/host/ohci-hub.c -linux-3.9/drivers/usb/host/ohci-mem.c -linux-3.9/drivers/usb/host/ohci-pci.c -linux-3.9/drivers/usb/host/ohci-q.c -linux-3.9/drivers/usb/host/pci-quirks.c -linux-3.9/drivers/usb/host/pci-quirks.h -linux-3.9/drivers/usb/host/uhci-debug.c -linux-3.9/drivers/usb/host/uhci-hcd.c -linux-3.9/drivers/usb/host/uhci-hcd.h -linux-3.9/drivers/usb/host/uhci-hub.c -linux-3.9/drivers/usb/host/uhci-pci.c -linux-3.9/drivers/usb/host/uhci-q.c -linux-3.9/drivers/usb/host/xhci.c -linux-3.9/drivers/usb/host/xhci-dbg.c -linux-3.9/drivers/usb/host/xhci-ext-caps.h -linux-3.9/drivers/usb/host/xhci.h -linux-3.9/drivers/usb/host/xhci-hub.c -linux-3.9/drivers/usb/host/xhci-mem.c -linux-3.9/drivers/usb/host/xhci-pci.c -linux-3.9/drivers/usb/host/xhci-plat.c -linux-3.9/drivers/usb/host/xhci-ring.c -linux-3.9/drivers/usb/storage/alauda.c -linux-3.9/drivers/usb/storage/cypress_atacb.c -linux-3.9/drivers/usb/storage/datafab.c -linux-3.9/drivers/usb/storage/debug.c -linux-3.9/drivers/usb/storage/debug.h -linux-3.9/drivers/usb/storage/ene_ub6250.c -linux-3.9/drivers/usb/storage/freecom.c -linux-3.9/drivers/usb/storage/initializers.c -linux-3.9/drivers/usb/storage/initializers.h -linux-3.9/drivers/usb/storage/isd200.c -linux-3.9/drivers/usb/storage/jumpshot.c -linux-3.9/drivers/usb/storage/karma.c -linux-3.9/drivers/usb/storage/Kconfig -linux-3.9/drivers/usb/storage/Makefile -linux-3.9/drivers/usb/storage/onetouch.c -linux-3.9/drivers/usb/storage/option_ms.c -linux-3.9/drivers/usb/storage/option_ms.h -linux-3.9/drivers/usb/storage/protocol.c -linux-3.9/drivers/usb/storage/protocol.h -linux-3.9/drivers/usb/storage/realtek_cr.c -linux-3.9/drivers/usb/storage/scsiglue.c -linux-3.9/drivers/usb/storage/scsiglue.h -linux-3.9/drivers/usb/storage/sddr09.c -linux-3.9/drivers/usb/storage/sddr55.c -linux-3.9/drivers/usb/storage/shuttle_usbat.c -linux-3.9/drivers/usb/storage/sierra_ms.c -linux-3.9/drivers/usb/storage/sierra_ms.h -linux-3.9/drivers/usb/storage/transport.c -linux-3.9/drivers/usb/storage/transport.h -linux-3.9/drivers/usb/storage/uas.c -linux-3.9/drivers/usb/storage/unusual_alauda.h -linux-3.9/drivers/usb/storage/unusual_cypress.h -linux-3.9/drivers/usb/storage/unusual_datafab.h -linux-3.9/drivers/usb/storage/unusual_devs.h -linux-3.9/drivers/usb/storage/unusual_ene_ub6250.h -linux-3.9/drivers/usb/storage/unusual_freecom.h -linux-3.9/drivers/usb/storage/unusual_isd200.h -linux-3.9/drivers/usb/storage/unusual_jumpshot.h -linux-3.9/drivers/usb/storage/unusual_karma.h -linux-3.9/drivers/usb/storage/unusual_onetouch.h -linux-3.9/drivers/usb/storage/unusual_realtek.h -linux-3.9/drivers/usb/storage/unusual_sddr09.h -linux-3.9/drivers/usb/storage/unusual_sddr55.h -linux-3.9/drivers/usb/storage/unusual_usbat.h -linux-3.9/drivers/usb/storage/usb.c -linux-3.9/drivers/usb/storage/usb.h -linux-3.9/drivers/usb/storage/usual-tables.c -linux-3.9/drivers/usb/usb-common.c -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.c -linux-3.9/net/core/dev_addr_lists.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.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_output.c -linux-3.9/net/ipv4/tcp_timer.c -linux-3.9/net/ipv4/udp.c -linux-3.9/net/ipv4/udp_impl.h -linux-3.9/net/netlink/af_netlink.c -linux-3.9/net/sched/sch_generic.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 +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/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 +linux-3.14.5/include/linux/usb/storage.h +linux-3.14.5/include/linux/usb/usbnet.h +linux-3.14.5/include/linux/usb_usual.h +linux-3.14.5/include/scsi/scsi.h +linux-3.14.5/include/scsi/scsi_host.h +linux-3.14.5/include/uapi/asm-generic/ioctl.h +linux-3.14.5/include/uapi/linux/byteorder/little_endian.h +linux-3.14.5/include/uapi/linux/hid.h +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 diff --git a/repos/dde_linux/lib/mk/platform_arndale/usb.mk b/repos/dde_linux/lib/mk/platform_arndale/usb.mk index 69cd6fe313..f0284a322d 100644 --- a/repos/dde_linux/lib/mk/platform_arndale/usb.mk +++ b/repos/dde_linux/lib/mk/platform_arndale/usb.mk @@ -1,19 +1,19 @@ -SRC_C += usbnet.c asix_devices.c asix_common.c ax88172a.c ax88179_178a.c +SRC_C += usbnet.c asix_devices.c asix_common.c ax88172a.c ax88179_178a.c ehci-exynos.c include $(REP_DIR)/lib/mk/xhci.inc include $(REP_DIR)/lib/mk/usb.inc include $(REP_DIR)/lib/mk/armv7/usb.inc -CC_OPT += -DCONFIG_USB_EHCI_S5P -DCONFIG_USB_EHCI_TT_NEWSCHED -DCONFIG_OF -DCONFIG_USB_DWC3_HOST \ - -DCONFIG_USB_OTG_UTILS -DCONFIG_USB_XHCI_PLATFORM -DDWC3_QUIRK +CC_OPT += -DCONFIG_USB_EHCI_TT_NEWSCHED -DCONFIG_USB_DWC3_HOST=1 \ + -DCONFIG_USB_DWC3_GADGET=0 -DCONFIG_USB_OTG_UTILS -DCONFIG_USB_XHCI_PLATFORM -DDWC3_QUIRK INC_DIR += $(LX_CONTRIB_DIR)/arch/arm/plat-samsung/include SRC_CC += platform.cc #DWC3 -SRC_C += dwc3-exynos.c host.c core.c +SRC_C += host.c core.c #XHCI -SRC_C += xhci-plat.c +SRC_C += xhci-plat.c vpath platform.cc $(LIB_DIR)/arm/platform_arndale vpath %.c $(LX_CONTRIB_DIR)/drivers/usb/dwc3 diff --git a/repos/dde_linux/lib/mk/platform_panda/usb.mk b/repos/dde_linux/lib/mk/platform_panda/usb.mk index d8e30146cd..9658504f8c 100644 --- a/repos/dde_linux/lib/mk/platform_panda/usb.mk +++ b/repos/dde_linux/lib/mk/platform_panda/usb.mk @@ -1,4 +1,4 @@ -SRC_C += usbnet.c smsc95xx.c +SRC_C += usbnet.c smsc95xx.c ehci-omap.c include $(REP_DIR)/lib/mk/usb.inc include $(REP_DIR)/lib/mk/armv7/usb.inc @@ -8,3 +8,4 @@ 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 diff --git a/repos/dde_linux/lib/mk/usb.inc b/repos/dde_linux/lib/mk/usb.inc index b24ae81d85..4223ea8056 100644 --- a/repos/dde_linux/lib/mk/usb.inc +++ b/repos/dde_linux/lib/mk/usb.inc @@ -20,14 +20,16 @@ INC_DIR += $(LIB_INC_DIR) INC_DIR += $(LX_CONTRIB_DIR)/include $(LX_CONTRIB_DIR)/include/uapi $(LX_CONTRIB_DIR) CC_OPT += -U__linux__ -D__KERNEL__ -CC_OPT += -DCONFIG_USB_DEVICEFS -DCONFIG_HOTPLUG -DDEBUG +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 + -Wno-unused-function -Wno-overflow CC_C_OPT += -Wno-unused-but-set-variable -Wno-pointer-sign CXX_OPT = -fpermissive +CC_CXX_OPT = -fpermissive + # # Suffix of global 'module_init' function # @@ -53,6 +55,7 @@ SRC_C += $(addprefix usb/storage/,scsiglue.c protocol.c transport.c usb.c \ # SCSI SRC_C += $(addprefix scsi/,scsi.c constants.c) + # # Determine the header files included by the contrib code. For each # of these header files we create a symlink to 'lx_emul.h'. diff --git a/repos/dde_linux/lxip_header.list b/repos/dde_linux/lxip_header.list index 2d0386ca1c..c241eb5be0 100644 --- a/repos/dde_linux/lxip_header.list +++ b/repos/dde_linux/lxip_header.list @@ -1,85 +1,87 @@ -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/jhash.h -linux-3.9/include/linux/inetdevice.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/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/dst.h -linux-3.9/include/net/dst_ops.h -linux-3.9/include/net/dsfield.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/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_bridge.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.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 diff --git a/repos/dde_linux/patches/ax88179.patch b/repos/dde_linux/patches/ax88179.patch index 814e4c60c2..c92db72c62 100644 --- a/repos/dde_linux/patches/ax88179.patch +++ b/repos/dde_linux/patches/ax88179.patch @@ -1,7 +1,14 @@ -diff -r e55abb7f4c0a drivers/net/usb/ax88179_178a.c ---- a/drivers/net/usb/ax88179_178a.c Thu Jun 20 18:17:35 2013 +0200 -+++ b/drivers/net/usb/ax88179_178a.c Thu Jun 20 18:18:13 2013 +0200 -@@ -1022,6 +1022,7 @@ +commit 5151dad7cc61bf2b4527c56bd0dffcea2da25905 +Author: Sebastian Sumpf +Date: Mon Jun 2 13:23:44 2014 +0200 + + ax88179_178a.patch + +diff --git a/drivers/net/usb/ax88179_178a.c b/drivers/net/usb/ax88179_178a.c +index 054e59c..38d02ec 100644 +--- a/drivers/net/usb/ax88179_178a.c ++++ b/drivers/net/usb/ax88179_178a.c +@@ -1019,6 +1019,7 @@ static int ax88179_bind(struct usbnet *dev, struct usb_interface *intf) dev->net->netdev_ops = &ax88179_netdev_ops; dev->net->ethtool_ops = &ax88179_ethtool_ops; dev->net->needed_headroom = 8; diff --git a/repos/dde_linux/patches/csum.patch b/repos/dde_linux/patches/csum.patch index f85d75264f..ca86f8426d 100644 --- a/repos/dde_linux/patches/csum.patch +++ b/repos/dde_linux/patches/csum.patch @@ -1,7 +1,14 @@ -diff -r d30e545c9a57 drivers/net/usb/smsc95xx.c ---- a/drivers/net/usb/smsc95xx.c Mon Apr 22 16:19:09 2013 +0200 -+++ b/drivers/net/usb/smsc95xx.c Mon Apr 22 16:19:46 2013 +0200 -@@ -1714,7 +1714,13 @@ +commit e3804842c60157bab0d5bf2daa42f99ec3f8499d +Author: Sebastian Sumpf +Date: Mon Jun 2 13:24:37 2014 +0200 + + csum.patch + +diff --git a/drivers/net/usb/smsc95xx.c b/drivers/net/usb/smsc95xx.c +index 424db65..5eb8ac7 100644 +--- a/drivers/net/usb/smsc95xx.c ++++ b/drivers/net/usb/smsc95xx.c +@@ -1716,7 +1716,13 @@ static int smsc95xx_resume(struct usb_interface *intf) static void smsc95xx_rx_csum_offload(struct sk_buff *skb) { diff --git a/repos/dde_linux/patches/dwc3.patch b/repos/dde_linux/patches/dwc3.patch deleted file mode 100644 index 7781948db9..0000000000 --- a/repos/dde_linux/patches/dwc3.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff -r f6df37e9f744 drivers/usb/dwc3/core.c ---- a/drivers/usb/dwc3/core.c Mon Apr 29 17:06:54 2013 +0200 -+++ b/drivers/usb/dwc3/core.c Mon Apr 29 17:08:04 2013 +0200 -@@ -480,7 +480,8 @@ - goto err0; - } - -- mode = DWC3_MODE(dwc->hwparams.hwparams0); -+ /* force host mode which is needed for Exynos5 */ -+ mode = DWC3_MODE_HOST; - - switch (mode) { - case DWC3_MODE_DEVICE: diff --git a/repos/dde_linux/patches/evdev.patch b/repos/dde_linux/patches/evdev.patch index 7144af97d0..bcc11f2a25 100644 --- a/repos/dde_linux/patches/evdev.patch +++ b/repos/dde_linux/patches/evdev.patch @@ -1,7 +1,14 @@ -diff -r 2949c3919d29 drivers/input/evdev.c ---- a/drivers/input/evdev.c Mon Apr 22 16:19:56 2013 +0200 -+++ b/drivers/input/evdev.c Mon Apr 22 16:20:32 2013 +0200 -@@ -1008,6 +1008,9 @@ +commit a30968815ec1e4967a6c531744b2788f2c25e675 +Author: Sebastian Sumpf +Date: Mon Jun 2 13:25:03 2014 +0200 + + evdev.patch + +diff --git a/drivers/input/evdev.c b/drivers/input/evdev.c +index ce953d8..6263984 100644 +--- a/drivers/input/evdev.c ++++ b/drivers/input/evdev.c +@@ -1168,6 +1168,9 @@ static int evdev_connect(struct input_handler *handler, struct input_dev *dev, if (error) goto err_cleanup_evdev; @@ -11,7 +18,7 @@ diff -r 2949c3919d29 drivers/input/evdev.c return 0; err_cleanup_evdev: -@@ -1040,8 +1043,7 @@ +@@ -1200,8 +1203,7 @@ static const struct input_device_id evdev_ids[] = { MODULE_DEVICE_TABLE(input, evdev_ids); static struct input_handler evdev_handler = { diff --git a/repos/dde_linux/patches/icmp.patch b/repos/dde_linux/patches/icmp.patch index 5513b1fc25..37eccc7c4e 100644 --- a/repos/dde_linux/patches/icmp.patch +++ b/repos/dde_linux/patches/icmp.patch @@ -1,7 +1,14 @@ -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 @@ +commit 3085e764d1545cd2dae199037265c8d5c8a1b458 +Author: Sebastian Sumpf +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; diff --git a/repos/dde_linux/patches/ip_config.patch b/repos/dde_linux/patches/ip_config.patch index c95817dbe5..f61738855f 100644 --- a/repos/dde_linux/patches/ip_config.patch +++ b/repos/dde_linux/patches/ip_config.patch @@ -1,7 +1,14 @@ -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 @@ +commit 3785e30c9833a908775a69c2961a3c1d6fe50d09 +Author: Sebastian Sumpf +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) */ pr_info("IP-Config: Complete:\n"); diff --git a/repos/dde_linux/patches/mem.patch b/repos/dde_linux/patches/mem.patch index d80da75404..57cf1ae54a 100644 --- a/repos/dde_linux/patches/mem.patch +++ b/repos/dde_linux/patches/mem.patch @@ -1,8 +1,8 @@ diff --git a/drivers/hid/usbhid/hid-core.c b/drivers/hid/usbhid/hid-core.c -index 8e0c4bf..21ff40f 100644 +index 44df131..0d0aa68 100644 --- a/drivers/hid/usbhid/hid-core.c +++ b/drivers/hid/usbhid/hid-core.c -@@ -895,7 +895,7 @@ static int hid_alloc_buffers(struct usb_device *dev, struct hid_device *hid) +@@ -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); @@ -11,7 +11,7 @@ index 8e0c4bf..21ff40f 100644 usbhid->ctrlbuf = usb_alloc_coherent(dev, usbhid->bufsize, GFP_KERNEL, &usbhid->ctrlbuf_dma); if (!usbhid->inbuf || !usbhid->outbuf || !usbhid->cr || -@@ -1053,7 +1053,7 @@ static int usbhid_parse(struct hid_device *hid) +@@ -998,7 +998,7 @@ static int usbhid_parse(struct hid_device *hid) return -EINVAL; } @@ -21,10 +21,10 @@ index 8e0c4bf..21ff40f 100644 return -ENOMEM; } diff --git a/drivers/net/usb/usbnet.c b/drivers/net/usb/usbnet.c -index 7c646f7..1d60393 100644 +index 3242006..d03d2ed 100644 --- a/drivers/net/usb/usbnet.c +++ b/drivers/net/usb/usbnet.c -@@ -253,7 +253,7 @@ static int init_status (struct usbnet *dev, struct usb_interface *intf) +@@ -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); @@ -33,17 +33,17 @@ index 7c646f7..1d60393 100644 if (buf) { dev->interrupt = usb_alloc_urb (0, GFP_KERNEL); if (!dev->interrupt) { -@@ -1606,7 +1606,7 @@ int usbnet_resume (struct usb_interface *intf) +@@ -1794,7 +1794,7 @@ int usbnet_resume (struct usb_interface *intf) + if (!--dev->suspend_count) { - /* resume interrupt URBs */ - if (dev->interrupt && test_bit(EVENT_DEV_OPEN, &dev->flags)) -- usb_submit_urb(dev->interrupt, GFP_NOIO); -+ usb_submit_urb(dev->interrupt, GFP_KERNEL); + /* 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))) { -@@ -1633,7 +1633,7 @@ int usbnet_resume (struct usb_interface *intf) - netif_device_present(dev->net) && +@@ -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); @@ -51,7 +51,7 @@ index 7c646f7..1d60393 100644 if (!(dev->txq.qlen >= TX_QLEN(dev))) netif_tx_wake_all_queues(dev->net); -@@ -1684,7 +1684,7 @@ static int __usbnet_read_cmd(struct usbnet *dev, u8 cmd, u8 reqtype, +@@ -1889,7 +1889,7 @@ static int __usbnet_read_cmd(struct usbnet *dev, u8 cmd, u8 reqtype, cmd, reqtype, value, index, size); if (data) { @@ -60,7 +60,7 @@ index 7c646f7..1d60393 100644 if (!buf) goto out; } -@@ -1711,7 +1711,7 @@ static int __usbnet_write_cmd(struct usbnet *dev, u8 cmd, u8 reqtype, +@@ -1916,7 +1916,7 @@ static int __usbnet_write_cmd(struct usbnet *dev, u8 cmd, u8 reqtype, cmd, reqtype, value, index, size); if (data) { @@ -69,7 +69,7 @@ index 7c646f7..1d60393 100644 if (!buf) goto out; } -@@ -1823,7 +1823,7 @@ int usbnet_write_cmd_async(struct usbnet *dev, u8 cmd, u8 reqtype, +@@ -2028,7 +2028,7 @@ int usbnet_write_cmd_async(struct usbnet *dev, u8 cmd, u8 reqtype, } if (data) { @@ -78,7 +78,7 @@ index 7c646f7..1d60393 100644 if (!buf) { netdev_err(dev->net, "Error allocating buffer" " in %s!\n", __func__); -@@ -1831,7 +1831,7 @@ int usbnet_write_cmd_async(struct usbnet *dev, u8 cmd, u8 reqtype, +@@ -2036,7 +2036,7 @@ int usbnet_write_cmd_async(struct usbnet *dev, u8 cmd, u8 reqtype, } } @@ -88,10 +88,10 @@ index 7c646f7..1d60393 100644 goto fail_free_buf; diff --git a/drivers/usb/core/config.c b/drivers/usb/core/config.c -index 7199adc..8e173b7 100644 +index 062967c..f5da439 100644 --- a/drivers/usb/core/config.c +++ b/drivers/usb/core/config.c -@@ -689,7 +689,7 @@ int usb_get_configuration(struct usb_device *dev) +@@ -683,7 +683,7 @@ int usb_get_configuration(struct usb_device *dev) if (!dev->rawdescriptors) goto err2; @@ -100,7 +100,7 @@ index 7199adc..8e173b7 100644 if (!desc) goto err2; -@@ -718,7 +718,7 @@ int usb_get_configuration(struct usb_device *dev) +@@ -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 */ @@ -109,7 +109,7 @@ index 7199adc..8e173b7 100644 if (!bigbuffer) { result = -ENOMEM; goto err; -@@ -777,7 +777,7 @@ int usb_get_bos_descriptor(struct usb_device *dev) +@@ -774,7 +774,7 @@ int usb_get_bos_descriptor(struct usb_device *dev) int length, total_len, num, i; int ret; @@ -118,7 +118,7 @@ index 7199adc..8e173b7 100644 if (!bos) return -ENOMEM; -@@ -803,7 +803,7 @@ int usb_get_bos_descriptor(struct usb_device *dev) +@@ -800,7 +800,7 @@ int usb_get_bos_descriptor(struct usb_device *dev) return -ENOMEM; /* Now let's get the whole BOS descriptor set */ @@ -141,10 +141,10 @@ index 2a3bbdf..c78eedd 100644 return -ENOMEM; diff --git a/drivers/usb/core/hub.c b/drivers/usb/core/hub.c -index 5480352..512b358 100644 +index d498d03..87b0b6b 100644 --- a/drivers/usb/core/hub.c +++ b/drivers/usb/core/hub.c -@@ -1049,7 +1049,7 @@ static void hub_activate(struct usb_hub *hub, enum hub_activation_type type) +@@ -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, @@ -153,7 +153,7 @@ index 5480352..512b358 100644 if (ret < 0) { dev_err(hub->intfdev, "Host not " "accepting hub info " -@@ -1195,7 +1195,7 @@ static void hub_activate(struct usb_hub *hub, enum hub_activation_type type) +@@ -1205,7 +1205,7 @@ static void hub_activate(struct usb_hub *hub, enum hub_activation_type type) init3: hub->quiescing = 0; @@ -162,7 +162,7 @@ index 5480352..512b358 100644 if (status < 0) dev_err(hub->intfdev, "activate --> %d\n", status); if (hub->has_indicators && blinkenlights) -@@ -1286,20 +1286,20 @@ static int hub_configure(struct usb_hub *hub, +@@ -1296,20 +1296,20 @@ static int hub_configure(struct usb_hub *hub, unsigned unit_load; unsigned full_load; @@ -186,7 +186,7 @@ index 5480352..512b358 100644 if (!hub->descriptor) { ret = -ENOMEM; goto fail; -@@ -3444,9 +3444,9 @@ static int usb_req_set_sel(struct usb_device *udev, enum usb3_link_state state) +@@ -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. @@ -198,7 +198,7 @@ index 5480352..512b358 100644 if (!sel_values) return -ENOMEM; -@@ -4224,7 +4224,7 @@ check_highspeed (struct usb_hub *hub, struct usb_device *udev, int port1) +@@ -4299,7 +4299,7 @@ check_highspeed (struct usb_hub *hub, struct usb_device *udev, int port1) struct usb_qualifier_descriptor *qual; int status; @@ -207,7 +207,7 @@ index 5480352..512b358 100644 if (qual == NULL) return; -@@ -4942,7 +4942,7 @@ static int descriptors_changed(struct usb_device *udev, +@@ -5030,7 +5030,7 @@ static int descriptors_changed(struct usb_device *udev, len = max(len, old_length); } @@ -217,10 +217,10 @@ index 5480352..512b358 100644 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 444d30e..739c6a6 100644 +index f829a1a..91aa41a 100644 --- a/drivers/usb/core/message.c +++ b/drivers/usb/core/message.c -@@ -50,7 +50,7 @@ static int usb_start_wait_urb(struct urb *urb, int timeout, int *actual_length) +@@ -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; @@ -229,7 +229,7 @@ index 444d30e..739c6a6 100644 if (unlikely(retval)) goto out; -@@ -87,7 +87,7 @@ static int usb_internal_control_msg(struct usb_device *usb_dev, +@@ -86,7 +86,7 @@ static int usb_internal_control_msg(struct usb_device *usb_dev, int retv; int length; @@ -238,7 +238,7 @@ index 444d30e..739c6a6 100644 if (!urb) return -ENOMEM; -@@ -865,11 +865,11 @@ char *usb_cache_string(struct usb_device *udev, int index) +@@ -869,11 +869,11 @@ char *usb_cache_string(struct usb_device *udev, int index) if (index <= 0) return NULL; @@ -252,16 +252,16 @@ index 444d30e..739c6a6 100644 if (!smallbuf) return buf; memcpy(smallbuf, buf, len); -@@ -940,7 +940,7 @@ int usb_get_device_descriptor(struct usb_device *dev, unsigned int size) +@@ -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; -- u16 *status = kmalloc(sizeof(*status), GFP_KERNEL); -+ u16 *status = kmalloc(sizeof(*status), GFP_NOIO); +- __le16 *status = kmalloc(sizeof(*status), GFP_KERNEL); ++ __le16 *status = kmalloc(sizeof(*status), GFP_NOIO); if (!status) return -ENOMEM; -@@ -1730,7 +1730,7 @@ int usb_set_configuration(struct usb_device *dev, int configuration) +@@ -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), @@ -270,7 +270,7 @@ index 444d30e..739c6a6 100644 if (!new_interfaces) { dev_err(&dev->dev, "Out of memory\n"); return -ENOMEM; -@@ -1739,7 +1739,7 @@ int usb_set_configuration(struct usb_device *dev, int configuration) +@@ -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), @@ -280,7 +280,7 @@ index 444d30e..739c6a6 100644 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 ef2c3a1..d6cb79c 100644 +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) @@ -293,10 +293,10 @@ index ef2c3a1..d6cb79c 100644 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 6891442..0aa4cbe 100644 +index 9992fbf..10f539c 100644 --- a/drivers/usb/host/xhci-hub.c +++ b/drivers/usb/host/xhci-hub.c -@@ -275,7 +275,7 @@ static int xhci_stop_device(struct xhci_hcd *xhci, int slot_id, int suspend) +@@ -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]; @@ -306,10 +306,10 @@ index 6891442..0aa4cbe 100644 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 aa74d15..5cc8fe2 100644 +index cca2896..9b5c07e 100644 --- a/drivers/usb/host/xhci.c +++ b/drivers/usb/host/xhci.c -@@ -1277,7 +1277,7 @@ int xhci_urb_enqueue(struct usb_hcd *hcd, struct urb *urb, gfp_t mem_flags) +@@ -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) + @@ -318,7 +318,7 @@ index aa74d15..5cc8fe2 100644 if (!urb_priv) return -ENOMEM; -@@ -1706,7 +1706,7 @@ int xhci_add_endpoint(struct usb_hcd *hcd, struct usb_device *udev, +@@ -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). */ @@ -327,7 +327,7 @@ index aa74d15..5cc8fe2 100644 dev_dbg(&udev->dev, "%s - could not initialize ep %#x\n", __func__, ep->desc.bEndpointAddress); return -ENOMEM; -@@ -3363,10 +3363,10 @@ int xhci_discover_or_reset_device(struct usb_hcd *hcd, struct usb_device *udev) +@@ -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 @@ -340,7 +340,7 @@ index aa74d15..5cc8fe2 100644 if (!reset_device_cmd) { xhci_dbg(xhci, "Couldn't allocate command structure.\n"); return -ENOMEM; -@@ -3610,11 +3610,11 @@ int xhci_alloc_dev(struct usb_hcd *hcd, struct usb_device *udev) +@@ -3682,11 +3682,11 @@ int xhci_alloc_dev(struct usb_hcd *hcd, struct usb_device *udev) } spin_unlock_irqrestore(&xhci->lock, flags); } @@ -355,10 +355,10 @@ index aa74d15..5cc8fe2 100644 goto disable_slot; } diff --git a/drivers/usb/storage/alauda.c b/drivers/usb/storage/alauda.c -index be5564c..4fc7560 100644 +index 6636a58..0bedf73 100644 --- a/drivers/usb/storage/alauda.c +++ b/drivers/usb/storage/alauda.c -@@ -448,8 +448,8 @@ static int alauda_init_media(struct us_data *us) +@@ -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); @@ -369,7 +369,7 @@ index be5564c..4fc7560 100644 if (alauda_reset_media(us) != USB_STOR_XFER_GOOD) return USB_STOR_TRANSPORT_ERROR; -@@ -577,8 +577,8 @@ static int alauda_read_map(struct us_data *us, unsigned int zone) +@@ -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; @@ -380,7 +380,7 @@ index be5564c..4fc7560 100644 if (lba_to_pba == NULL || pba_to_lba == NULL) { result = USB_STOR_TRANSPORT_ERROR; goto error; -@@ -940,7 +940,7 @@ static int alauda_read_data(struct us_data *us, unsigned long address, +@@ -931,7 +931,7 @@ static int alauda_read_data(struct us_data *us, unsigned long address, */ len = min(sectors, blocksize) * (pagesize + 64); @@ -389,7 +389,7 @@ index be5564c..4fc7560 100644 if (buffer == NULL) { printk(KERN_WARNING "alauda_read_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, +@@ -1023,7 +1023,7 @@ static int alauda_write_data(struct us_data *us, unsigned long address, */ len = min(sectors, blocksize) * pagesize; @@ -398,7 +398,7 @@ index be5564c..4fc7560 100644 if (buffer == NULL) { printk(KERN_WARNING "alauda_write_data: Out of memory\n"); return USB_STOR_TRANSPORT_ERROR; -@@ -1043,7 +1043,7 @@ static int alauda_write_data(struct us_data *us, unsigned long address, +@@ -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 */ @@ -407,17 +407,17 @@ index be5564c..4fc7560 100644 if (blockbuffer == NULL) { printk(KERN_WARNING "alauda_write_data: Out of memory\n"); kfree(buffer); -@@ -1121,7 +1121,7 @@ static int init_alauda(struct us_data *us) +@@ -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) { - US_DEBUGP("init_alauda: Gah! Can't allocate storage for" - "alauda info struct!\n"); + if (!us->extra) + return USB_STOR_TRANSPORT_ERROR; + diff --git a/drivers/usb/storage/datafab.c b/drivers/usb/storage/datafab.c -index 494fee5..f340137 100644 +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, @@ -438,7 +438,7 @@ index 494fee5..f340137 100644 if (buffer == NULL) return USB_STOR_TRANSPORT_ERROR; -@@ -338,7 +338,7 @@ static int datafab_determine_lun(struct us_data *us, +@@ -337,7 +337,7 @@ static int datafab_determine_lun(struct us_data *us, return USB_STOR_TRANSPORT_ERROR; memcpy(command, scommand, 8); @@ -447,7 +447,7 @@ index 494fee5..f340137 100644 if (!buf) return USB_STOR_TRANSPORT_ERROR; -@@ -409,7 +409,7 @@ static int datafab_id_device(struct us_data *us, +@@ -408,7 +408,7 @@ static int datafab_id_device(struct us_data *us, } memcpy(command, scommand, 8); @@ -456,20 +456,20 @@ index 494fee5..f340137 100644 if (!reply) return USB_STOR_TRANSPORT_ERROR; -@@ -565,7 +565,7 @@ static int datafab_transport(struct scsi_cmnd *srb, struct us_data *us) +@@ -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) { - US_DEBUGP("datafab_transport: Gah! " - "Can't allocate storage for Datafab info struct!\n"); + if (!us->extra) + return USB_STOR_TRANSPORT_ERROR; + diff --git a/drivers/usb/storage/jumpshot.c b/drivers/usb/storage/jumpshot.c -index ddc7878..a3d2435 100644 +index 563078b..4b2a45e 100644 --- a/drivers/usb/storage/jumpshot.c +++ b/drivers/usb/storage/jumpshot.c -@@ -188,7 +188,7 @@ static int jumpshot_read_data(struct us_data *us, +@@ -187,7 +187,7 @@ static int jumpshot_read_data(struct us_data *us, // bounce buffer and the actual transfer buffer. alloclen = min(totallen, 65536u); @@ -478,7 +478,7 @@ index ddc7878..a3d2435 100644 if (buffer == NULL) return USB_STOR_TRANSPORT_ERROR; -@@ -265,7 +265,7 @@ static int jumpshot_write_data(struct us_data *us, +@@ -264,7 +264,7 @@ static int jumpshot_write_data(struct us_data *us, // bounce buffer and the actual transfer buffer. alloclen = min(totallen, 65536u); @@ -487,7 +487,7 @@ index ddc7878..a3d2435 100644 if (buffer == NULL) return USB_STOR_TRANSPORT_ERROR; -@@ -340,7 +340,7 @@ static int jumpshot_id_device(struct us_data *us, +@@ -339,7 +339,7 @@ static int jumpshot_id_device(struct us_data *us, command[0] = 0xE0; command[1] = 0xEC; @@ -496,17 +496,17 @@ index ddc7878..a3d2435 100644 if (!reply) return USB_STOR_TRANSPORT_ERROR; -@@ -493,7 +493,7 @@ static int jumpshot_transport(struct scsi_cmnd *srb, struct us_data *us) +@@ -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) { - US_DEBUGP("jumpshot_transport: Gah! Can't allocate storage for jumpshot info struct!\n"); + if (!us->extra) return USB_STOR_TRANSPORT_ERROR; + diff --git a/drivers/usb/storage/karma.c b/drivers/usb/storage/karma.c -index f085ffb..aade7e4 100644 +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) @@ -524,10 +524,10 @@ index f085ffb..aade7e4 100644 kfree(data); goto out; diff --git a/drivers/usb/storage/onetouch.c b/drivers/usb/storage/onetouch.c -index cb79de6..9dba9fe 100644 +index 74e2aa2..f18c9ed 100644 --- a/drivers/usb/storage/onetouch.c +++ b/drivers/usb/storage/onetouch.c -@@ -163,7 +163,7 @@ static void usb_onetouch_pm_hook(struct us_data *us, int action) +@@ -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: @@ -537,10 +537,10 @@ index cb79de6..9dba9fe 100644 "usb_submit_urb failed\n"); break; diff --git a/drivers/usb/storage/realtek_cr.c b/drivers/usb/storage/realtek_cr.c -index 6c3586a..02e8f6b 100644 +index 281be56..0c62dbd 100644 --- a/drivers/usb/storage/realtek_cr.c +++ b/drivers/usb/storage/realtek_cr.c -@@ -367,7 +367,7 @@ static int rts51x_read_mem(struct us_data *us, u16 addr, u8 *data, u16 len) +@@ -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; @@ -549,7 +549,7 @@ index 6c3586a..02e8f6b 100644 if (buf == NULL) return USB_STOR_TRANSPORT_ERROR; -@@ -398,7 +398,7 @@ static int rts51x_write_mem(struct us_data *us, u16 addr, u8 *data, u16 len) +@@ -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; @@ -558,7 +558,7 @@ index 6c3586a..02e8f6b 100644 if (buf == NULL) return USB_STOR_TRANSPORT_ERROR; -@@ -427,7 +427,7 @@ static int rts51x_read_status(struct us_data *us, +@@ -428,7 +428,7 @@ static int rts51x_read_status(struct us_data *us, u8 cmnd[12] = { 0 }; u8 *buf; @@ -567,9 +567,9 @@ index 6c3586a..02e8f6b 100644 if (buf == NULL) return USB_STOR_TRANSPORT_ERROR; -@@ -511,7 +511,7 @@ static int __do_config_autodelink(struct us_data *us, u8 *data, u16 len) +@@ -512,7 +512,7 @@ static int __do_config_autodelink(struct us_data *us, u8 *data, u16 len) - US_DEBUGP("%s, addr = 0xfe47, len = %d\n", __FUNCTION__, len); + usb_stor_dbg(us, "addr = 0xfe47, len = %d\n", len); - buf = kmemdup(data, len, GFP_NOIO); + buf = kmemdup(data, len, GFP_KERNEL); @@ -577,10 +577,10 @@ index 6c3586a..02e8f6b 100644 return USB_STOR_TRANSPORT_ERROR; diff --git a/drivers/usb/storage/sddr09.c b/drivers/usb/storage/sddr09.c -index 7bd54e0..fea6ded 100644 +index 073a2c3..72d4346 100644 --- a/drivers/usb/storage/sddr09.c +++ b/drivers/usb/storage/sddr09.c -@@ -692,7 +692,7 @@ sddr09_read_sg_test_only(struct us_data *us) { +@@ -685,7 +685,7 @@ sddr09_read_sg_test_only(struct us_data *us) { return result; } @@ -589,7 +589,7 @@ index 7bd54e0..fea6ded 100644 if (!buf) return -ENOMEM; -@@ -768,7 +768,7 @@ sddr09_read_data(struct us_data *us, +@@ -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; @@ -598,7 +598,7 @@ index 7bd54e0..fea6ded 100644 if (buffer == NULL) { printk(KERN_WARNING "sddr09_read_data: Out of memory\n"); return -ENOMEM; -@@ -1000,7 +1000,7 @@ sddr09_write_data(struct us_data *us, +@@ -991,7 +991,7 @@ sddr09_write_data(struct us_data *us, pagelen = (1 << info->pageshift) + (1 << CONTROL_SHIFT); blocklen = (pagelen << info->blockshift); @@ -607,7 +607,7 @@ index 7bd54e0..fea6ded 100644 if (!blockbuffer) { printk(KERN_WARNING "sddr09_write_data: Out of memory\n"); return -ENOMEM; -@@ -1011,7 +1011,7 @@ sddr09_write_data(struct us_data *us, +@@ -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; @@ -616,7 +616,7 @@ index 7bd54e0..fea6ded 100644 if (buffer == NULL) { printk(KERN_WARNING "sddr09_write_data: Out of memory\n"); kfree(blockbuffer); -@@ -1230,7 +1230,7 @@ sddr09_read_map(struct us_data *us) { +@@ -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); @@ -625,7 +625,7 @@ index 7bd54e0..fea6ded 100644 if (buffer == NULL) { printk(KERN_WARNING "sddr09_read_map: out of memory\n"); result = -1; -@@ -1242,8 +1242,8 @@ sddr09_read_map(struct us_data *us) { +@@ -1233,8 +1233,8 @@ sddr09_read_map(struct us_data *us) { kfree(info->lba_to_pba); kfree(info->pba_to_lba); @@ -636,7 +636,7 @@ index 7bd54e0..fea6ded 100644 if (info->lba_to_pba == NULL || info->pba_to_lba == NULL) { printk(KERN_WARNING "sddr09_read_map: out of memory\n"); -@@ -1438,7 +1438,7 @@ sddr09_common_init(struct us_data *us) { +@@ -1429,7 +1429,7 @@ sddr09_common_init(struct us_data *us) { return -EINVAL; } @@ -646,10 +646,10 @@ index 7bd54e0..fea6ded 100644 return -ENOMEM; us->extra_destructor = sddr09_card_info_destructor; diff --git a/drivers/usb/storage/sddr55.c b/drivers/usb/storage/sddr55.c -index d278c5a..bbe7da7 100644 +index aacedef..50550e0 100644 --- a/drivers/usb/storage/sddr55.c +++ b/drivers/usb/storage/sddr55.c -@@ -216,7 +216,7 @@ static int sddr55_read_data(struct us_data *us, +@@ -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; @@ -658,7 +658,7 @@ index d278c5a..bbe7da7 100644 if (buffer == NULL) return USB_STOR_TRANSPORT_ERROR; /* out of memory */ offset = 0; -@@ -344,7 +344,7 @@ static int sddr55_write_data(struct us_data *us, +@@ -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; @@ -667,7 +667,7 @@ index d278c5a..bbe7da7 100644 if (buffer == NULL) return USB_STOR_TRANSPORT_ERROR; offset = 0; -@@ -661,7 +661,7 @@ static int sddr55_read_map(struct us_data *us) { +@@ -658,7 +658,7 @@ static int sddr55_read_map(struct us_data *us) { numblocks = info->capacity >> (info->blockshift + info->pageshift); @@ -676,7 +676,7 @@ index d278c5a..bbe7da7 100644 if (!buffer) return -1; -@@ -694,8 +694,8 @@ static int sddr55_read_map(struct us_data *us) { +@@ -691,8 +691,8 @@ static int sddr55_read_map(struct us_data *us) { kfree(info->lba_to_pba); kfree(info->pba_to_lba); @@ -687,7 +687,7 @@ index d278c5a..bbe7da7 100644 if (info->lba_to_pba == NULL || info->pba_to_lba == NULL) { kfree(info->lba_to_pba); -@@ -799,7 +799,7 @@ static int sddr55_transport(struct scsi_cmnd *srb, struct us_data *us) +@@ -796,7 +796,7 @@ static int sddr55_transport(struct scsi_cmnd *srb, struct us_data *us) if (!us->extra) { us->extra = kzalloc( @@ -697,10 +697,10 @@ index d278c5a..bbe7da7 100644 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 daf2fc5..b723518 100644 +index 4ef2a80..b3968db 100644 --- a/drivers/usb/storage/shuttle_usbat.c +++ b/drivers/usb/storage/shuttle_usbat.c -@@ -1068,7 +1068,7 @@ static int usbat_flash_get_sector_count(struct us_data *us, +@@ -1071,7 +1071,7 @@ static int usbat_flash_get_sector_count(struct us_data *us, if (!us || !info) return USB_STOR_TRANSPORT_ERROR; @@ -709,7 +709,7 @@ index daf2fc5..b723518 100644 if (!reply) return USB_STOR_TRANSPORT_ERROR; -@@ -1153,7 +1153,7 @@ static int usbat_flash_read_data(struct us_data *us, +@@ -1156,7 +1156,7 @@ static int usbat_flash_read_data(struct us_data *us, */ alloclen = min(totallen, 65536u); @@ -718,7 +718,7 @@ index daf2fc5..b723518 100644 if (buffer == NULL) return USB_STOR_TRANSPORT_ERROR; -@@ -1244,7 +1244,7 @@ static int usbat_flash_write_data(struct us_data *us, +@@ -1247,7 +1247,7 @@ static int usbat_flash_write_data(struct us_data *us, */ alloclen = min(totallen, 65536u); @@ -727,26 +727,26 @@ index daf2fc5..b723518 100644 if (buffer == NULL) return USB_STOR_TRANSPORT_ERROR; -@@ -1348,7 +1348,7 @@ static int usbat_hp8200e_handle_read10(struct us_data *us, +@@ -1350,7 +1350,7 @@ static int usbat_hp8200e_handle_read10(struct us_data *us, len = (65535/srb->transfersize) * srb->transfersize; - US_DEBUGP("Max read is %d bytes\n", len); + 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]); -@@ -1459,7 +1459,7 @@ static int init_usbat(struct us_data *us, int devicetype) +@@ -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) { - US_DEBUGP("init_usbat: Gah! Can't allocate storage for usbat info struct!\n"); + if (!us->extra) return 1; + diff --git a/drivers/usb/storage/transport.c b/drivers/usb/storage/transport.c -index c0543c8..3819a3f 100644 +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) @@ -758,25 +758,25 @@ index c0543c8..3819a3f 100644 if (status) { /* something went wrong */ return status; -@@ -429,7 +429,7 @@ static int usb_stor_bulk_transfer_sglist(struct us_data *us, unsigned int pipe, - US_DEBUGP("%s: xfer %u bytes, %d entries\n", __func__, - length, num_sg); +@@ -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) { - US_DEBUGP("usb_sg_init returned %d\n", 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 d6bee40..d122a89 100644 +index 1c0b89f..e34e087 100644 --- a/drivers/usb/storage/usb.c +++ b/drivers/usb/storage/usb.c -@@ -453,7 +453,7 @@ static int associate_dev(struct us_data *us, struct usb_interface *intf) +@@ -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) { - US_DEBUGP("usb_ctrlrequest allocation failed\n"); + if (!us->cr) return -ENOMEM; + diff --git a/repos/dde_linux/patches/skbuff.patch b/repos/dde_linux/patches/skbuff.patch index 3360a6ec47..3ab9c5d5ca 100644 --- a/repos/dde_linux/patches/skbuff.patch +++ b/repos/dde_linux/patches/skbuff.patch @@ -1,13 +1,22 @@ -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 @@ +commit 1843c9d95c0a7f6cf04357bf26633cfd2e5bdda4 +Author: Sebastian Sumpf +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, 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; - @@ -22,9 +31,6 @@ diff -r 6e1a0ab143a5 net/core/skbuff.c - 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; diff --git a/repos/dde_linux/patches/tcp.patch b/repos/dde_linux/patches/tcp.patch index 4b9b04f942..ed38753ef2 100644 --- a/repos/dde_linux/patches/tcp.patch +++ b/repos/dde_linux/patches/tcp.patch @@ -1,20 +1,15 @@ -From 8b2f74f2258b62ca0e62656cdccbc9159aeab893 Mon Sep 17 00:00:00 2001 -From: Sebastian Sumpf -Date: Tue, 6 Aug 2013 16:12:54 +0200 -Subject: [PATCH] L4Linux: Increase TCP-window size +commit dc0fb534ff37768cdc4c6782fb25376f89ed04d3 +Author: Sebastian Sumpf +Date: Mon Jun 2 13:34:39 2014 +0200 -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(+) + tcp.patch diff --git a/net/ipv4/tcp.c b/net/ipv4/tcp.c -index e220207..29613bf 100644 +index 97c8f56..4091fe3 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); +@@ -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); + @@ -27,6 +22,3 @@ index e220207..29613bf 100644 max_wshare = min(4UL*1024*1024, limit); max_rshare = min(6UL*1024*1024, limit); --- -1.8.4 - diff --git a/repos/dde_linux/patches/usbnet.patch b/repos/dde_linux/patches/usbnet.patch index cc5755b896..ca0d422f0c 100644 --- a/repos/dde_linux/patches/usbnet.patch +++ b/repos/dde_linux/patches/usbnet.patch @@ -1,19 +1,25 @@ -diff -r b5bc236d605e drivers/net/usb/usbnet.c ---- a/drivers/net/usb/usbnet.c Mon Jun 17 10:27:00 2013 +0200 -+++ b/drivers/net/usb/usbnet.c Mon Jun 17 10:34:15 2013 +0200 -@@ -64,10 +64,29 @@ - * is required, under load. Jumbograms change the equation. +commit e500c61c5fce23cf3a44bdd45fded0a3f34cf4f0 +Author: Sebastian Sumpf +Date: Mon Jun 2 13:35:56 2014 +0200 + + usbnet.patch + +diff --git a/drivers/net/usb/usbnet.c b/drivers/net/usb/usbnet.c +index 31d8b12..f5e3054 100644 +--- a/drivers/net/usb/usbnet.c ++++ b/drivers/net/usb/usbnet.c +@@ -63,8 +63,30 @@ + * the equation. */ - #define RX_MAX_QUEUE_MEMORY (60 * 1518) --#define RX_QLEN(dev) (((dev)->udev->speed == USB_SPEED_HIGH) ? \ -- (RX_MAX_QUEUE_MEMORY/(dev)->rx_urb_size) : 4) --#define TX_QLEN(dev) (((dev)->udev->speed == USB_SPEED_HIGH) ? \ -- (RX_MAX_QUEUE_MEMORY/(dev)->hard_mtu) : 4) + #define MAX_QUEUE_MEMORY (60 * 1518) +-#define RX_QLEN(dev) ((dev)->rx_qlen) +-#define TX_QLEN(dev) ((dev)->tx_qlen) ++ +inline unsigned RX_QLEN(struct usbnet *dev) +{ + switch(dev->udev->speed) { + case USB_SPEED_HIGH: -+ return RX_MAX_QUEUE_MEMORY/dev->rx_urb_size; ++ return MAX_QUEUE_MEMORY/dev->rx_urb_size; + case USB_SPEED_SUPER: + return 16; + default: @@ -25,7 +31,7 @@ diff -r b5bc236d605e drivers/net/usb/usbnet.c +{ + switch(dev->udev->speed) { + case USB_SPEED_HIGH: -+ return RX_MAX_QUEUE_MEMORY/dev->hard_mtu; ++ return MAX_QUEUE_MEMORY/dev->hard_mtu; + case USB_SPEED_SUPER: + return 16; + default: diff --git a/repos/dde_linux/patches/xhci-quirks.patch b/repos/dde_linux/patches/xhci-quirks.patch index 8d616d1ad8..aa6e346d61 100644 --- a/repos/dde_linux/patches/xhci-quirks.patch +++ b/repos/dde_linux/patches/xhci-quirks.patch @@ -1,16 +1,23 @@ -diff -r a103aef8f269 drivers/usb/host/xhci-pci.c ---- a/drivers/usb/host/xhci-pci.c Wed Mar 05 13:54:43 2014 +0100 -+++ b/drivers/usb/host/xhci-pci.c Wed Mar 05 13:58:50 2014 +0100 -@@ -34,6 +34,8 @@ - #define PCI_VENDOR_ID_ETRON 0x1b6f - #define PCI_DEVICE_ID_ASROCK_P67 0x7023 +commit 00c1504c478a364d74cf9720643a57d9fd180a6b +Author: Sebastian Sumpf +Date: Mon Jun 2 13:36:46 2014 +0200 + + xhci-quirks.patch + +diff --git a/drivers/usb/host/xhci-pci.c b/drivers/usb/host/xhci-pci.c +index 08a5f92..707b5f9 100644 +--- a/drivers/usb/host/xhci-pci.c ++++ b/drivers/usb/host/xhci-pci.c +@@ -38,6 +38,8 @@ + #define PCI_DEVICE_ID_INTEL_LYNXPOINT_XHCI 0x8c31 + #define PCI_DEVICE_ID_INTEL_LYNXPOINT_LP_XHCI 0x9c31 +#define PCI_VENDOR_ID_RENESAS 0x1912 + static const char hcd_name[] = "xhci_hcd"; /* called after powerup, by probe or system-pm "wakeup" */ -@@ -81,6 +83,10 @@ +@@ -95,6 +97,10 @@ static void xhci_pci_quirks(struct device *dev, struct xhci_hcd *xhci) if (pdev->vendor == PCI_VENDOR_ID_NEC) xhci->quirks |= XHCI_NEC_HOST; @@ -21,21 +28,3 @@ diff -r a103aef8f269 drivers/usb/host/xhci-pci.c if (pdev->vendor == PCI_VENDOR_ID_AMD && xhci->hci_version == 0x96) xhci->quirks |= XHCI_AMD_0x96_HOST; -diff -r a103aef8f269 drivers/usb/host/xhci.c ---- a/drivers/usb/host/xhci.c Wed Mar 05 13:54:43 2014 +0100 -+++ b/drivers/usb/host/xhci.c Wed Mar 05 13:58:50 2014 +0100 -@@ -4683,6 +4683,14 @@ - - get_quirks(dev, xhci); - -+ -+ /* In xhci controllers which follow xhci 1.0 spec gives a spurious -+ * success event after a short transfer. This quirk will ignore such -+ * spurious event (This is taken from Linux 3.13) -+ */ -+ if (xhci->hci_version > 0x96) -+ xhci->quirks |= XHCI_SPURIOUS_SUCCESS; -+ - /* Make sure the HC is halted. */ - retval = xhci_halt(xhci); - if (retval) diff --git a/repos/dde_linux/ports/dde_linux.hash b/repos/dde_linux/ports/dde_linux.hash index 0adf59b86f..0db996e17c 100644 --- a/repos/dde_linux/ports/dde_linux.hash +++ b/repos/dde_linux/ports/dde_linux.hash @@ -1 +1 @@ -e407a48e201bda19915373eef0d114933c1e4223 +c7aac790191e7e38e4fcbbc52f3c4abfad4b345e diff --git a/repos/dde_linux/ports/dde_linux.port b/repos/dde_linux/ports/dde_linux.port index 2caad00715..1fbeb01a47 100644 --- a/repos/dde_linux/ports/dde_linux.port +++ b/repos/dde_linux/ports/dde_linux.port @@ -1,5 +1,5 @@ LICENSE := GPL -VERSION := 3.9 +VERSION := 3.14.5 DOWNLOADS := dwc_otg.git linux.archive linux_lxip.archive SRC_DIR := src/lib/dde_linux @@ -13,7 +13,7 @@ linux.archive linux_lxip.archive: dwc_otg.git # USB and IP stack sources # URL(linux) := http://www.kernel.org/pub/linux/kernel/v3.x/linux-$(VERSION).tar.gz -SHA(linux) := 7979f0d670838d0552c7ede5cc06497b81dcd812 +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 diff --git a/repos/dde_linux/src/lib/lxip/dummies.cc b/repos/dde_linux/src/lib/lxip/dummies.cc index 0710e66356..0e747ed691 100644 --- a/repos/dde_linux/src/lib/lxip/dummies.cc +++ b/repos/dde_linux/src/lib/lxip/dummies.cc @@ -50,6 +50,7 @@ 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) @@ -82,6 +83,7 @@ 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) @@ -90,22 +92,21 @@ 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_unlock) DUMMY_SKIP(-1, rcu_read_lock_bh) +DUMMY_SKIP(-1, rcu_read_unlock) 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) @@ -116,10 +117,23 @@ 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_kfree_skb) 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_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) @@ -172,18 +186,21 @@ 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, __clear_bit) DUMMY(-1, clamp) +DUMMY(-1, __clear_bit) 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) @@ -209,6 +226,7 @@ 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) @@ -228,6 +246,7 @@ 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) @@ -239,6 +258,8 @@ 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) @@ -252,6 +273,7 @@ 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) @@ -264,6 +286,7 @@ 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) @@ -285,6 +308,8 @@ 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) @@ -317,8 +342,11 @@ 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) @@ -346,6 +374,7 @@ 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) @@ -355,33 +384,33 @@ DUMMY(-1, PageHighMem) DUMMY(-1, percpu_counter_destroy) DUMMY(-1, percpu_counter_sum_positive) DUMMY(-1, pid_vnr) -DUMMY(-1, pr_crit) -DUMMY(-1, pr_err_once) +DUMMY(-1, prandom_seed) +DUMMY(-1, prandom_u32) 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) @@ -390,6 +419,8 @@ 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) @@ -417,8 +448,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_sigurg) DUMMY(-1, send_sig) +DUMMY(-1, send_sigurg) DUMMY(-1, __set_bit) DUMMY(-1, set_bit) DUMMY(-1, __set_current_state) @@ -431,10 +462,14 @@ 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) @@ -451,11 +486,15 @@ 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) @@ -472,31 +511,29 @@ 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) @@ -505,6 +542,7 @@ 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) @@ -512,6 +550,5 @@ 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" */ diff --git a/repos/dde_linux/src/lib/lxip/include/lx_emul.h b/repos/dde_linux/src/lib/lxip/include/lx_emul.h index 931575ad51..bd741c15bc 100644 --- a/repos/dde_linux/src/lib/lxip/include/lx_emul.h +++ b/repos/dde_linux/src/lib/lxip/include/lx_emul.h @@ -26,7 +26,7 @@ extern "C" { #include #include -#define DEBUG_PRINTK 1 +#define DEBUG_PRINTK 0 #define DEBUG_SLAB 0 #define DEBUG_TIMER 0 #define DEBUG_CONG 0 @@ -210,6 +210,7 @@ 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 *); @@ -287,6 +288,7 @@ typedef __u8 u_int8_t; typedef int16_t __s16; typedef int32_t __s32; +typedef int64_t __s64; typedef __u16 __le16; typedef __u32 __le32; @@ -415,15 +417,15 @@ void sg_set_page(struct scatterlist *, struct page *, unsigned int, ** linux/printk.h ** ********************/ -#define KERN_WARNING "<4>" +#define KERN_WARNING KERN_WARN -#define pr_crit(fmt, ...) printk(KERN_CRIT fmt, ##__VA_ARGS__) -#define pr_emerg(fmt, ...) printk(KERN_EMERG fmt, ##__VA_ARGS__) -#define pr_info(fmt, ...) printk(KERN_INFO fmt, ##__VA_ARGS__) -#define pr_err(fmt, ...) printk(KERN_ERR fmt, ##__VA_ARGS__) +#define pr_crit(fmt, ...) dde_kit_printf(KERN_CRIT fmt, ##__VA_ARGS__) +#define pr_emerg(fmt, ...) dde_kit_printf(KERN_EMERG fmt, ##__VA_ARGS__) +#define pr_err(fmt, ...) dde_kit_printf(KERN_ERR fmt, ##__VA_ARGS__) +#define pr_warn(fmt, ...) dde_kit_printf(KERN_WARN fmt, ##__VA_ARGS__) +#define pr_info(fmt, ...) dde_kit_printf(KERN_INFO fmt, ##__VA_ARGS__) #define pr_notice(fmt, ...) printk(KERN_NOTICE fmt, ##__VA_ARGS__) #define pr_cont(fmt, ...) printk(KERN_CONT fmt, ##__VA_ARGS__) -#define pr_warn(fmt, ...) printk(KERN_WARN fmt, ##__VA_ARGS__) #define pr_info_once(fmt, ...) printk(KERN_INFO fmt, ##__VA_ARGS__) #define pr_err_once(fmt, ...) printk(KERN_ERR fmt, ##__VA_ARGS__) @@ -454,7 +456,12 @@ static inline int _printk(const char *fmt, ...) #define vprintk dde_kit_vprintf #define panic dde_kit_panic #else -#define printk(...) + +static inline int printk(const char *fmt, ...) +{ + return 0; +} + #define vprintk(...) #define panic(...) #endif @@ -467,6 +474,14 @@ 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) ** @@ -833,9 +848,11 @@ 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 *); @@ -938,6 +955,7 @@ unsigned long ilog2(unsigned long n); * For now, hardcoded */ #define PAGE_SIZE 4096 +#define PAGE_MASK (~(PAGE_SIZE - 1)) enum { PAGE_SHIFT = 12, @@ -964,7 +982,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); @@ -1005,6 +1023,9 @@ 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; @@ -1019,6 +1040,18 @@ 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 ** @@ -1046,6 +1079,7 @@ enum { __GFP_COLD = 0x100u, __GFP_NOWARN = 0x200u, __GFP_REPEAT = 0x400u, + __GFP_NORETRY = 0x1000u, __GFP_MEMALLOC = 0x2000u, __GFP_ZERO = 0x8000u, __GFP_COMP = 0x4000u, @@ -1109,6 +1143,7 @@ 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); @@ -1219,15 +1254,6 @@ 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/jiffies.h ** @@ -1310,7 +1336,7 @@ static inline s64 ktime_to_ms(const ktime_t kt) static inline ktime_t ktime_get_real(void) { - return (ktime_t) { .tv64 = jiffies * (1000 / HZ) * NSEC_PER_MSEC }; + return (ktime_t) { .tv64 = (s64)(jiffies * (1000 / HZ) * NSEC_PER_MSEC) }; } @@ -1471,6 +1497,12 @@ 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 ** *********************/ @@ -1621,6 +1653,8 @@ 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 @@ -2126,6 +2160,8 @@ 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 ** @@ -2198,11 +2234,15 @@ 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 ** ********************/ @@ -2261,8 +2301,9 @@ struct kvec size_t iov_len; }; -int memcpy_toiovec(struct iovec *iov, unsigned char *kdata, int 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); /******************************* ** uapi/asm-generic/ioctls.h ** @@ -2311,6 +2352,7 @@ struct sock_filter; struct sk_filter { atomic_t refcnt; + unsigned len; struct rcu_head rcu; }; @@ -2320,6 +2362,11 @@ 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 ** *****************************/ @@ -2363,6 +2410,7 @@ 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); @@ -2370,7 +2418,9 @@ 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 *)); @@ -2402,6 +2452,35 @@ 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 ** ***********************/ @@ -2414,7 +2493,7 @@ struct netlink_callback; struct rtnl_af_ops; struct dst_entry; -typedef int (*rtnl_doit_func)(struct sk_buff *, struct nlmsghdr *, void *); +typedef int (*rtnl_doit_func)(struct sk_buff *, struct nlmsghdr *); typedef int (*rtnl_dumpit_func)(struct sk_buff *, struct netlink_callback *); typedef u16 (*rtnl_calcit_func)(struct sk_buff *, struct nlmsghdr *); @@ -2438,6 +2517,7 @@ 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 ** @@ -2484,6 +2564,8 @@ enum { FIB_LOOKUP_NOREF = 1 }; struct u64_stats_sync { }; +void u64_stats_init(struct u64_stats_sync *); + /************************* ** net/net_namespace.h ** @@ -2515,6 +2597,7 @@ 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; @@ -2522,7 +2605,7 @@ struct net struct netns_mib mib; struct netns_ipv4 ipv4; atomic_t rt_genid; - + atomic_t fnhe_genid; }; @@ -2560,7 +2643,10 @@ 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 ** @@ -2580,24 +2666,6 @@ 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 ** **********************/ @@ -2732,6 +2800,13 @@ __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 ** @@ -2749,6 +2824,8 @@ 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) { @@ -2756,12 +2833,21 @@ struct net_device *vlan_dev_real_dev(const struct net_device *dev) } #define vlan_tx_tag_get(__skb) 0 -struct sk_buff *__vlan_put_tag(struct sk_buff *, u16); +#define vlan_tx_tag_get_id(__skb) 0 + +struct sk_buff *__vlan_put_tag(struct sk_buff *, __be16, 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); /******************** @@ -2851,15 +2937,11 @@ 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); +void rtmsg_ifinfo(int type, struct net_device *dev, unsigned change, gfp_t flags); /********************** @@ -2896,7 +2978,7 @@ enum { ** net/cls_cgroup.h ** **********************/ -void sock_update_classid(struct sock *, struct task_struct *); +void sock_update_classid(struct sock *); /**************** @@ -2907,7 +2989,6 @@ struct ip_hdr; struct iphdr *ip_hdr(const struct sk_buff *skb); - /******************************** ** uapi/linux/netfilter_arp.h ** ********************************/ @@ -3197,6 +3278,8 @@ 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); @@ -3236,15 +3319,78 @@ unsigned int net_hash_mix(struct net *); ** net/netprio_cgroup.h ** **************************/ -void sock_update_netprioidx(struct sock *, struct task_struct *); +void sock_update_netprioidx(struct sock *); /****************** ** linux/ipv6.h ** ******************/ -int inet_v6_ipv6only(const struct sock *); -int ipv6_only_sock(const struct sock *); +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); /******************** @@ -3281,10 +3427,26 @@ bool S_ISSOCK(int); *********************/ struct gnet_stats_basic_packed; -struct gnet_stats_rate_est; +struct gnet_stats_rate_est64; void gen_kill_estimator(struct gnet_stats_basic_packed *, - struct gnet_stats_rate_est *); + 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 *); /******************* @@ -3294,18 +3456,29 @@ void gen_kill_estimator(struct gnet_stats_basic_packed *, 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_rx(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_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_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 diff --git a/repos/dde_linux/src/lib/lxip/lxc_emul.c b/repos/dde_linux/src/lib/lxip/lxc_emul.c index d4a8beb9ac..df410407ca 100644 --- a/repos/dde_linux/src/lib/lxip/lxc_emul.c +++ b/repos/dde_linux/src/lib/lxip/lxc_emul.c @@ -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) - { - return netdev_get_tx_queue(dev, 0); - } +struct netdev_queue *netdev_pick_tx(struct net_device *dev, struct sk_buff *skb, void *accel_priv) +{ + return netdev_get_tx_queue(dev, 0); +} /******************************* @@ -347,6 +347,29 @@ 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 ** ****************************/ diff --git a/repos/dde_linux/src/lib/usb/arm/platform_arndale/platform.cc b/repos/dde_linux/src/lib/usb/arm/platform_arndale/platform.cc index eb31001c35..0bda90e475 100644 --- a/repos/dde_linux/src/lib/usb/arm/platform_arndale/platform.cc +++ b/repos/dde_linux/src/lib/usb/arm/platform_arndale/platform.cc @@ -26,7 +26,6 @@ #include /* Linux */ -#include #include using namespace Genode; @@ -52,10 +51,8 @@ static resource _dwc3[] = { DWC3_IRQ, DWC3_IRQ, "dwc3-irq", IORESOURCE_IRQ }, }; -static struct s5p_ehci_platdata _ehci_data; static struct dwc3_exynos_data _dwc3_data; - /** * EHCI controller */ @@ -288,11 +285,10 @@ static void arndale_xhci_init() } -extern "C" void module_ehci_hcd_init(); +extern "C" void module_ehci_exynos_init(); extern "C" void module_usbnet_init(); extern "C" void module_asix_driver_init(); extern "C" void module_ax88179_178a_driver_init(); -extern "C" void module_dwc3_exynos_driver_init(); extern "C" void module_dwc3_driver_init(); extern "C" void module_xhci_hcd_init(); @@ -305,18 +301,17 @@ void ehci_setup(Services *services) module_asix_driver_init(); /* register EHCI controller */ - module_ehci_hcd_init(); + module_ehci_exynos_init(); /* setup controller */ arndale_ehci_init(); /* setup EHCI-controller platform device */ platform_device *pdev = (platform_device *)kzalloc(sizeof(platform_device), 0); - pdev->name = (char *)"s5p-ehci"; + pdev->name = (char *)"exynos-ehci"; pdev->id = 0; pdev->num_resources = 2; pdev->resource = _ehci; - pdev->dev.platform_data = &_ehci_data; /*needed for DMA buffer allocation. See 'hcd_buffer_alloc' in 'buffer.c' */ static u64 dma_mask = ~(u64)0; @@ -332,7 +327,6 @@ void xhci_setup(Services *services) if (services->nic) module_ax88179_178a_driver_init(); - module_dwc3_exynos_driver_init(); module_dwc3_driver_init(); module_xhci_hcd_init(); @@ -340,7 +334,7 @@ void xhci_setup(Services *services) /* setup DWC3-controller platform device */ platform_device *pdev = (platform_device *)kzalloc(sizeof(platform_device), 0); - pdev->name = (char *)"exynos-dwc3"; + pdev->name = (char *)"dwc3"; pdev->id = 0; pdev->num_resources = 2; pdev->resource = _dwc3; diff --git a/repos/dde_linux/src/lib/usb/arm/platform_device.c b/repos/dde_linux/src/lib/usb/arm/platform_device.c index c287904476..14cace1673 100644 --- a/repos/dde_linux/src/lib/usb/arm/platform_device.c +++ b/repos/dde_linux/src/lib/usb/arm/platform_device.c @@ -21,6 +21,8 @@ static int platform_match(struct device *dev, struct device_driver *drv) if (!dev->name) return 0; + + printk("MATCH %s %s\n", dev->name, drv->name); return (strcmp(dev->name, drv->name) == 0); } @@ -47,6 +49,7 @@ int platform_driver_register(struct platform_driver *drv) if (drv->probe) drv->driver.probe = platform_drv_probe; + printk("Register: %s\n", drv->driver.name); return driver_register(&drv->driver); } @@ -102,9 +105,9 @@ int platform_device_register(struct platform_device *pdev) { pdev->dev.bus = &platform_bus_type; pdev->dev.name = pdev->name; - /* XXX: Fill with magic value to see page fault */ + /*Set parent to ourselfs */ if (!pdev->dev.parent) - pdev->dev.parent = (struct device *)0xaaaaaaaa; + pdev->dev.parent = &pdev->dev; device_add(&pdev->dev); return 0; } @@ -169,3 +172,17 @@ int platform_device_add_resources(struct platform_device *pdev, pdev->num_resources = num; return 0; } + + +void *platform_get_drvdata(const struct platform_device *pdev) +{ + return dev_get_drvdata(&pdev->dev); +} + + +void platform_set_drvdata(struct platform_device *pdev, void *data) +{ + dev_set_drvdata(&pdev->dev, data); +} + + diff --git a/repos/dde_linux/src/lib/usb/arm/platform_panda/platform.cc b/repos/dde_linux/src/lib/usb/arm/platform_panda/platform.cc index 44e11cc2af..90532064d9 100644 --- a/repos/dde_linux/src/lib/usb/arm/platform_panda/platform.cc +++ b/repos/dde_linux/src/lib/usb/arm/platform_panda/platform.cc @@ -273,7 +273,7 @@ static void omap_ehci_init() } -extern "C" void module_ehci_hcd_init(); +extern "C" void module_ehci_omap_init(); extern "C" int module_usbnet_init(); extern "C" int module_smsc95xx_driver_init(); @@ -289,7 +289,7 @@ void platform_hcd_init(Services *services) } /* register EHCI controller */ - module_ehci_hcd_init(); + module_ehci_omap_init(); /* initialize EHCI */ omap_ehci_init(); @@ -313,7 +313,7 @@ void platform_hcd_init(Services *services) static u64 dma_mask = ~(u64)0; pdev->dev.dma_mask = &dma_mask; pdev->dev.coherent_dma_mask = ~0; - + PDBG("register platform device"); platform_device_register(pdev); } diff --git a/repos/dde_linux/src/lib/usb/dummies.c b/repos/dde_linux/src/lib/usb/dummies.c index 2abc262978..1a4ce4ad4d 100644 --- a/repos/dde_linux/src/lib/usb/dummies.c +++ b/repos/dde_linux/src/lib/usb/dummies.c @@ -25,7 +25,7 @@ #define SKIP_VERBOSE 0 #if DEBUG_TRACE -#define TRACE dde_kit_printf("\033[32m%s\033[0m called, not implemented\n", __PRETTY_FUNCTION__) +#define TRACE dde_kit_printf("\033[32m%s\033[0m called from %p, not implemented\n", __PRETTY_FUNCTION__, __builtin_return_address(0)) #else #define TRACE #endif @@ -69,7 +69,7 @@ long simple_strtoul(const char *cp, char **endp, unsigned int base) { TRACE; ret ** linux/log2.h ** ******************/ -int roundup_pow_of_two(u32 n) { TRACE; return 0; } +int roundup_pow_of_two(u32 n) { TRACE; return 0; } /******************** @@ -206,15 +206,6 @@ bool flush_work(struct work_struct *work) { TRACE; return 0; } bool flush_work_sync(struct work_struct *work) { TRACE; return 0; } -/****************** - ** linux/wait.h ** - ******************/ - -void init_waitqueue_head(wait_queue_head_t *q) { TRACE; } -void add_wait_queue(wait_queue_head_t *q, wait_queue_t *wait) { TRACE; } -void remove_wait_queue(wait_queue_head_t *q, wait_queue_t *wait) { TRACE; } - - /****************** ** linux/time.h ** ******************/ @@ -369,6 +360,9 @@ int device_create_file(struct device *device, const struct device_attribute *entry) { TRACE; return 0; } void device_remove_file(struct device *dev, const struct device_attribute *attr) { TRACE; } +int device_for_each_child(struct device *dev, void *data, + int (*fn)(struct device *dev, void *data)) { TRACE; return 0; } + void put_device(struct device *dev) { TRACE; } struct device *get_device(struct device *dev) { TRACE; return dev; } @@ -406,6 +400,8 @@ int devres_destroy(struct device *dev, dr_release_t release, dr_match_t match, void *match_data) { TRACE; return 0; } void devres_free(void *res) { TRACE; } +void devm_kfree(struct device *dev, void *p) { TRACE; } + /***************************** ** linux/platform_device.h ** @@ -503,6 +499,7 @@ struct dentry *lookup_one_len(const char *c, struct dentry *e, int v) { TRACE; r **********************/ int seq_printf(struct seq_file *f, const char *fmt, ...) { TRACE; return 0; } +int seq_putc(struct seq_file *f, char c) { TRACE; return 0;} /***************** @@ -545,6 +542,7 @@ bool is_highmem(void *ptr) { TRACE; return 0; } ****************/ struct zone *page_zone(const struct page *page) { TRACE; return NULL; } +int is_vmalloc_addr(const void *x) { TRACE; return 0; } /********************** @@ -630,6 +628,10 @@ void pci_disable_msi(struct pci_dev *pdev) { TRACE; } int pci_enable_msix(struct pci_dev *pdev, struct msix_entry *entries, int vec) { TRACE; return -1; } void pci_disable_msix(struct pci_dev *pdev) { TRACE; } + +int pci_set_power_state(struct pci_dev *dev, pci_power_t state) { TRACE; return 0; } + + /** * Omitted PCI functions */ @@ -647,6 +649,23 @@ unsigned long local_irq_save(unsigned long flags) { SKIP; return 0; } unsigned long local_irq_restore(unsigned long flags) { SKIP; return 0; } +/************************* + ** linux/scatterlist.h ** + *************************/ + +void sg_init_table(struct scatterlist *sg, unsigned int nents) { TRACE; } +void sg_set_buf(struct scatterlist *sg, const void *buf, unsigned int buflen) { TRACE; } +void sg_set_page(struct scatterlist *sg, struct page *page, + unsigned int len, unsigned int offset) { TRACE; } +int sg_nents(struct scatterlist *sg) { TRACE; return 0; } + +void sg_miter_start(struct sg_mapping_iter *miter, struct scatterlist *sgl, + unsigned int nents, unsigned int flags) { TRACE; } +bool sg_miter_skip(struct sg_mapping_iter *miter, off_t offset) { TRACE; return false;} +bool sg_miter_next(struct sg_mapping_iter *miter) { TRACE; return false; } +void sg_miter_stop(struct sg_mapping_iter *miter) { TRACE; } + + /************************* ** linux/dma-mapping.h ** *************************/ @@ -855,6 +874,10 @@ bool skb_defer_rx_timestamp(struct sk_buff *skb) { TRACE; return 0; } int skb_linearize(struct sk_buff *skb) { TRACE; return 0; } +unsigned int skb_headlen(const struct sk_buff *skb) { TRACE; return 0; } +unsigned int skb_frag_size(const skb_frag_t *frag) { TRACE; return 0; } + +int pskb_expand_head(struct sk_buff *skb, int nhead, int ntail, gfp_t mask) { TRACE; return 0; } /********************* ** linux/ethtool.h ** @@ -889,11 +912,7 @@ unsigned netdev_mc_count(struct net_device * dev) { TRACE; return 1; } ** linux/mii.h ** *****************/ -unsigned int mii_check_media (struct mii_if_info *mii, - unsigned int ok_to_print, - unsigned int init_media) { TRACE; return 0; } int mii_ethtool_sset(struct mii_if_info *mii, struct ethtool_cmd *ecmd) { TRACE; return 0; } -int mii_link_ok (struct mii_if_info *mii) { TRACE; return 0; } int generic_mii_ioctl(struct mii_if_info *mii_if, struct mii_ioctl_data *mii_data, int cmd, @@ -908,6 +927,7 @@ struct mii_ioctl_data *if_mii(struct ifreq *rq) { TRACE; return 0; } __be16 eth_type_trans(struct sk_buff *skb, struct net_device *dev) { TRACE; return 0; } int eth_mac_addr(struct net_device *dev, void *p) { TRACE; return 0; } int eth_validate_addr(struct net_device *dev) { TRACE; return 0; } +bool ether_addr_equal(const u8 *addr1, const u8 *addr2) { TRACE; return 0; } /********************** @@ -1015,7 +1035,10 @@ void *radix_tree_delete(struct radix_tree_root *root, unsigned long index) { TRA bool gpio_is_valid(int number) { TRACE; return false; } void gpio_set_value_cansleep(unsigned gpio, int value) { TRACE; } -int gpio_request_one(unsigned gpio, unsigned long flags, const char *label) { TRACE; return 0; } +int gpio_request_one(unsigned gpio, unsigned long flags, const char *label) { TRACE; return 0; } + +int devm_gpio_request_one(struct device *dev, unsigned gpio, + unsigned long flags, const char *label) { TRACE; return 0; } /********************* @@ -1051,27 +1074,25 @@ struct phy_device * phy_connect(struct net_device *dev, const char *bus_id, phy_interface_t interface) { TRACE; return 0; } void phy_disconnect(struct phy_device *phydev) { TRACE; } -#ifdef CONFIG_USB_OTG_UTILS -struct usb_phy *devm_usb_get_phy_by_phandle(struct device *dev, - const char *phandle, u8 index) -{ TRACE; return 0; } +struct usb_phy *devm_usb_get_phy_by_phandle(struct device *dev, const char *phandle, u8 index) { TRACE; return 0; } +struct usb_phy *devm_usb_get_phy(struct device *dev, enum usb_phy_type type) { TRACE; return 0; } +struct usb_phy *devm_usb_get_phy_dev(struct device *dev, u8 index) { TRACE; return 0; } +struct usb_phy *usb_get_phy_dev(struct device *dev, u8 index) { TRACE; return 0; } +void usb_put_phy(struct usb_phy *x) { TRACE; } -struct usb_phy *devm_usb_get_phy(struct device *dev, - enum usb_phy_type type) -{ - static struct usb_phy _p; - TRACE; - return &_p; -} -#endif /**************** ** linux/of.h ** ****************/ -bool of_property_read_bool(const struct device_node *np, const char *propname) { TRACE; return false; } - +struct of_dev_auxdata; +bool of_property_read_bool(const struct device_node *np, const char *propname) { TRACE; return false; } +unsigned of_usb_get_maximum_speed(struct device_node *np) { TRACE; return 0; } +unsigned of_usb_get_dr_mode(struct device_node *np) { TRACE; return 0; } +int of_platform_populate(struct device_node *root, const struct of_device_id *matches, + const struct of_dev_auxdata *lookup, struct device *parent) { TRACE; return 0; } +int of_device_is_compatible(const struct device_node *device, const char *compat) { TRACE; return 1; } /****************************** diff --git a/repos/dde_linux/src/lib/usb/include/arm/platform/lx_emul.h b/repos/dde_linux/src/lib/usb/include/arm/platform/lx_emul.h index 52651d8c0e..0b7f27c172 100644 --- a/repos/dde_linux/src/lib/usb/include/arm/platform/lx_emul.h +++ b/repos/dde_linux/src/lib/usb/include/arm/platform/lx_emul.h @@ -31,7 +31,6 @@ struct platform_device struct device dev; u32 num_resources; struct resource *resource; - void *data; }; @@ -162,7 +161,13 @@ enum { GPIOF_OUT_INIT_HIGH = 0x2 }; bool gpio_is_valid(int); void gpio_set_value_cansleep(unsigned, int); -int gpio_request_one(unsigned, unsigned long, const char *); +int gpio_request_one(unsigned, unsigned long, const char *); + +int devm_gpio_request_one(struct device *dev, unsigned gpio, + unsigned long flags, const char *label); + + + /**************** ** linux/of.h ** @@ -170,6 +175,21 @@ int gpio_request_one(unsigned, unsigned long, const char *); #define of_match_ptr(ptr) NULL +unsigned of_usb_get_maximum_speed(struct device_node *np); +unsigned of_usb_get_dr_mode(struct device_node *np); +int of_device_is_compatible(const struct device_node *device, + const char *); + + +/************************* + ** linux/of_platform.h ** + *************************/ + +struct of_dev_auxdata; + +int of_platform_populate(struct device_node *, const struct of_device_id *, + const struct of_dev_auxdata *, struct device *); + /********************* ** linux/of_gpio.h ** @@ -268,4 +288,19 @@ void set_fiq_regs(struct pt_regs const *regs); void enable_fiq(); void set_fiq_handler(void *start, unsigned int length); + +/************************************ + ** /linux/usb/usb_phy_gen_xceiv.h ** + ************************************/ + + +struct usb_phy_gen_xceiv_platform_data +{ + unsigned type; + int gpio_reset; +}; + +#include +#include + #endif /* _ARM__PLATFORM__LX_EMUL_H_ */ diff --git a/repos/dde_linux/src/lib/usb/include/lx_emul.h b/repos/dde_linux/src/lib/usb/include/lx_emul.h index 614fea3c49..82915948e2 100644 --- a/repos/dde_linux/src/lib/usb/include/lx_emul.h +++ b/repos/dde_linux/src/lib/usb/include/lx_emul.h @@ -218,6 +218,8 @@ typedef int pid_t; typedef unsigned fmode_t; typedef u32 uid_t; typedef u32 gid_t; +typedef unsigned kuid_t; +typedef unsigned kgid_t; typedef long __kernel_time_t; typedef unsigned short umode_t; typedef __u16 __be16; @@ -247,6 +249,13 @@ typedef uint8_t u_int8_t; typedef uint16_t u_int16_t; typedef uint32_t u_int32_t; + +#define DIV_ROUND_UP(n,d) (((n) + (d) - 1) / (d)) +#define BITS_TO_LONGS(nr) DIV_ROUND_UP(nr, 8 * sizeof(long)) +#define DECLARE_BITMAP(name,bits) \ + unsigned long name[BITS_TO_LONGS(bits)] + + #include /********************** @@ -279,6 +288,7 @@ typedef uint32_t u_int32_t; #undef __unused +#define __printf(a, b) __attribute__((format(printf, a, b))) /*********************** ** linux/irqreturn.h ** @@ -480,6 +490,9 @@ long PTR_ERR(const void *ptr); static inline long IS_ERR_OR_NULL(const void *ptr) { return !ptr || IS_ERR(ptr); } +static inline void *ERR_PTR(long error) { + return (void *) error; +} /******************* ** linux/major.h ** @@ -646,6 +659,7 @@ static inline unsigned num_online_cpus(void) { return 1U; } int ilog2(u32 n); int roundup_pow_of_two(u32 n); +int rounddown_pow_of_two(u32 n); /******************** @@ -677,6 +691,11 @@ void print_hex_dump(const char *level, const char *prefix_str, bool printk_ratelimit(); bool printk_timed_ratelimit(unsigned long *, unsigned int); +struct va_format +{ + const char *fmt; + va_list *va; +}; /********************************** ** linux/bitops.h, asm/bitops.h ** @@ -784,6 +803,7 @@ int isprint(int); ******************/ #define __init +#define __initconst #define __initdata #define __devinit #define __devinitconst @@ -809,6 +829,7 @@ int isprint(int); #define MODULE_PARM_DESC(x, y) //#define MODULE_ALIAS_MISCDEV(x) /* needed by agp/backend.c */ #define MODULE_ALIAS(x) +#define MODULE_SOFTDEP(x) #define THIS_MODULE 0 @@ -926,6 +947,15 @@ int mutex_lock_interruptible(struct mutex *m); #define DEFINE_MUTEX(mutexname) struct mutex mutexname = { NULL }; +/*********************** + ** linux/semaphore.h ** + ***********************/ + +struct semaphore; + +void down(struct semaphore *sem); + + /******************* ** linux/rwsem.h ** *******************/ @@ -980,7 +1010,7 @@ enum { CLOCK_MONOTONIC = 1, NSEC_PER_USEC = 1000L, NSEC_PER_MSEC = 1000000L, - NSEC_PER_SEC = 1000 * NSEC_PER_MSEC, + NSEC_PER_SEC = 1000L * NSEC_PER_MSEC, }; @@ -1006,7 +1036,7 @@ static inline ktime_t ktime_get(void) static inline ktime_t ktime_set(const long sec, const unsigned long nsec) { - return (ktime_t){ .tv64 = (s64)sec * NSEC_PER_SEC + nsec /* ns */ }; + return (ktime_t){ .tv64 = (s64)sec * NSEC_PER_SEC + (s64)nsec /* ns */ }; } static inline ktime_t ktime_add(const ktime_t a, const ktime_t b) @@ -1148,6 +1178,8 @@ struct workqueue_struct { }; bool queue_delayed_work(struct workqueue_struct *, struct delayed_work *, unsigned long); +bool cancel_delayed_work(struct delayed_work *); + /* needed for 'dwc_common_linux.c' */ struct workqueue_struct *create_singlethread_workqueue(char *n); @@ -1161,11 +1193,6 @@ bool queue_work(struct workqueue_struct *wq, struct work_struct *work); ** linux/wait.h ** ******************/ -typedef struct wait_queue_head { int dummy; } wait_queue_head_t; - -void init_waitqueue_head(wait_queue_head_t *q); - -#define __WAIT_QUEUE_HEAD_INITIALIZER(name) { 0 } typedef struct wait_queue { int dummy; } wait_queue_t; @@ -1174,6 +1201,11 @@ typedef struct wait_queue { int dummy; } wait_queue_t; #define DECLARE_WAITQUEUE(name, tsk) \ wait_queue_t name = __WAIT_QUEUE_INITIALIZER(name, tsk) +typedef struct wait_queue_head { struct wait_queue *q; } wait_queue_head_t; + +void init_waitqueue_head(wait_queue_head_t *q); + +#define __WAIT_QUEUE_HEAD_INITIALIZER(name) { 0 } #define DECLARE_WAIT_QUEUE_HEAD(name) \ wait_queue_head_t name = __WAIT_QUEUE_HEAD_INITIALIZER(name) @@ -1182,6 +1214,7 @@ typedef struct wait_queue { int dummy; } wait_queue_t; void __wake_up(); void add_wait_queue(wait_queue_head_t *q, wait_queue_t *wait); void remove_wait_queue(wait_queue_head_t *q, wait_queue_t *wait); +int waitqueue_active(wait_queue_head_t *q); #define wake_up(x) __wake_up() #define wake_up_all(x) __wake_up() @@ -1332,6 +1365,11 @@ int atomic_notifier_chain_unregister(struct atomic_notifier_head *nh, ** linux/scatterlist.h ** *************************/ +enum { + SG_MITER_TO_SG = 2, + SG_MITER_FROM_SG = 4, +}; + struct scatterlist { unsigned long page_link; unsigned int offset; @@ -1346,10 +1384,29 @@ struct sg_table unsigned int nents; /* number of mapped entries */ }; +struct sg_page_iter +{ + struct scatterlist *sg; +}; + +struct sg_mapping_iter +{ + void *addr; + size_t length; + + struct sg_page_iter piter; +}; + +void sg_init_table(struct scatterlist *, unsigned int); +void sg_set_buf(struct scatterlist *sg, const void *buf, unsigned int buflen); +void sg_set_page(struct scatterlist *sg, struct page *page, + unsigned int len, unsigned int offset); + struct page *sg_page(struct scatterlist *sg); void *sg_virt(struct scatterlist *sg); struct scatterlist *sg_next(struct scatterlist *); +int sg_nents(struct scatterlist *sg); size_t sg_copy_from_buffer(struct scatterlist *sgl, unsigned int nents, void *buf, size_t buflen); size_t sg_copy_to_buffer(struct scatterlist *sgl, unsigned int nents, @@ -1361,6 +1418,12 @@ size_t sg_copy_to_buffer(struct scatterlist *sgl, unsigned int nents, #define sg_dma_address(sg) ((sg)->dma_address) #define sg_dma_len(sg) ((sg)->length) +void sg_miter_start(struct sg_mapping_iter *miter, struct scatterlist *sgl, + unsigned int nents, unsigned int flags); +bool sg_miter_skip(struct sg_mapping_iter *miter, off_t offset); +bool sg_miter_next(struct sg_mapping_iter *miter); +void sg_miter_stop(struct sg_mapping_iter *miter); + /****************** ** linux/kref.h ** @@ -1420,8 +1483,21 @@ struct bin_attribute { .store = _store, \ } +#define __ATTRIBUTE_GROUPS(_name) \ +static const struct attribute_group *_name##_groups[] = { \ + &_name##_group, \ + NULL, \ +} + +#define ATTRIBUTE_GROUPS(_name) \ +static const struct attribute_group _name##_group = { \ + .attrs = _name##_attrs, \ +}; \ +__ATTRIBUTE_GROUPS(_name) + #define __ATTR_NULL { .attr = { .name = NULL } } #define __ATTR_RO(name) __ATTR_NULL +#define __ATTR_RW(name) __ATTR_NULL static const char* modalias = ""; @@ -1508,11 +1584,15 @@ bool device_can_wakeup(struct device *dev); #define dev_WARN(dev, format, arg...) dde_kit_printf("dev_WARN: " format, ## arg) #define dev_err( dev, format, arg...) dde_kit_printf("dev_error: " format, ## arg) #define dev_notice(dev, format, arg...) dde_kit_printf("dev_notice: " format, ## arg) +#define dev_dbg_ratelimited(dev, format, arg...) + #if DEBUG_PRINTK #define dev_dbg(dev, format, arg...) dde_kit_printf("dev_dbg: " format, ## arg) +#define dev_vdbg(dev, format, arg...) dde_kit_printf("dev_dbg: " format, ## arg) #else #define dev_dbg( dev, format, arg...) +#define dev_vdbg( dev, format, arg...) #endif #define dev_printk(level, dev, format, arg...) \ @@ -1531,6 +1611,7 @@ struct device_driver; struct bus_type { const char *name; struct device_attribute *dev_attrs; + const struct attribute_group **dev_groups; int (*match)(struct device *dev, struct device_driver *drv); int (*uevent)(struct device *dev, struct kobj_uevent_env *env); int (*probe)(struct device *dev); @@ -1556,7 +1637,7 @@ struct device_type { const struct attribute_group **groups; void (*release)(struct device *dev); int (*uevent)(struct device *dev, struct kobj_uevent_env *env); - char *(*devnode)(struct device *dev, mode_t *mode); + char *(*devnode)(struct device *dev, mode_t *mode, kuid_t *, kgid_t *); const struct dev_pm_ops *pm; }; @@ -1609,10 +1690,20 @@ struct lock_class_key { int dummy; }; #define DEVICE_ATTR(_name, _mode, _show, _store) \ struct device_attribute dev_attr_##_name = __ATTR(_name, _mode, _show, _store) +#define DEVICE_ATTR_RO(_name) \ +struct device_attribute dev_attr_##_name = __ATTR_RO(_name) + +#define DEVICE_ATTR_RW(_name) \ +struct device_attribute dev_attr_##_name = __ATTR_RW(_name) + #define DRIVER_ATTR(_name, _mode, _show, _store) \ struct driver_attribute driver_attr_##_name = \ __ATTR(_name, _mode, _show, _store) +#define DRIVER_ATTR_RW(_name) \ +struct driver_attribute driver_attr_##_name = __ATTR_RW(_name) + + void *dev_get_drvdata(const struct device *dev); int dev_set_drvdata(struct device *dev, void *data); int dev_set_name(struct device *dev, const char *name, ...); @@ -1646,6 +1737,9 @@ int device_create_file(struct device *device, const struct device_attribute *entry); void device_remove_file(struct device *dev, const struct device_attribute *attr); +int device_for_each_child(struct device *dev, void *data, + int (*fn)(struct device *dev, void *data)); + void put_device(struct device *dev); struct device *get_device(struct device *dev); @@ -1670,6 +1764,8 @@ int bus_register_notifier(struct bus_type *bus, struct notifier_block *nb); int bus_unregister_notifier(struct bus_type *bus, struct notifier_block *nb); +int bus_for_each_dev(struct bus_type *bus, struct device *start, void *data, + int (*fn)(struct device *dev, void *data)); struct class *__class_create(struct module *owner, const char *name, @@ -1694,6 +1790,14 @@ void devres_free(void *res); void *devm_kzalloc(struct device *dev, size_t size, gfp_t gfp); +struct resource; + +void *devm_ioremap_resource(struct device *dev, struct resource *res); + +void devm_kfree(struct device *dev, void *p); + +void *dev_get_platdata(const struct device *dev); + #ifdef __cplusplus #undef class #endif @@ -1742,6 +1846,11 @@ void dma_free_coherent(struct device *, size_t, void *, dma_addr_t); #define DMA_BIT_MASK(n) (((n) == 64) ? ~0ULL : ((1ULL<<(n))-1)) static inline int dma_set_coherent_mask(struct device *dev, u64 mask) { dev->coherent_dma_mask = mask; return 0; } static inline int dma_set_mask(struct device *dev, u64 mask) { *dev->dma_mask = mask; return 0; } +static inline int dma_coerce_mask_and_coherent(struct device *dev, u64 mask) +{ + dma_set_mask(dev, mask); + return dma_set_coherent_mask(dev, mask); +} /********************* ** linux/uaccess.h ** @@ -1990,6 +2099,13 @@ static inline loff_t no_llseek(struct file *file, loff_t offset, int origin) { struct inode *file_inode(struct file *f); +#define replace_fops(f, fops) \ +do { \ + struct file *__file = (f); \ + fops_put(__file->f_op); \ + BUG_ON(!(__file->f_op = (fops))); \ +} while(0) + /******************* ** linux/namei.h ** *******************/ @@ -2021,20 +2137,21 @@ enum { SIGIO = 29 }; struct seq_file { int dummy; }; int seq_printf(struct seq_file *, const char *, ...); - +int seq_putc(struct seq_file *, char); /***************** ** linux/gfp.h ** *****************/ enum { - __GFP_DMA = 0x01u, - GFP_DMA = __GFP_DMA, - GFP_DMA32 = 0x04u, /* needed by 'dwc_common_linux.c' */ - __GFP_WAIT = 0x10u, - GFP_ATOMIC = 0x20u, - GFP_KERNEL = 0x0u, - GFP_NOIO = __GFP_WAIT, + __GFP_DMA = 0x01u, + __GFP_NOWARN = 0x200u, + __GFP_WAIT = 0x10u, + GFP_DMA = __GFP_DMA, + GFP_DMA32 = 0x04u, /* needed by 'dwc_common_linux.c' */ + GFP_ATOMIC = 0x20u, + GFP_KERNEL = 0x0u, + GFP_NOIO = __GFP_WAIT, }; unsigned long __get_free_pages(gfp_t gfp_mask, unsigned int order); @@ -2080,7 +2197,7 @@ bool is_highmem(void *); ****************/ struct zone *page_zone(const struct page *page); - +int is_vmalloc_addr(const void *x); /********************* ** linux/pagemap.h ** @@ -2232,6 +2349,10 @@ bool in_interrupt(void); #include #include +enum { + PCI_D3hot = 3, +}; + /* * Definitions normally found in pci_regs.h */ @@ -2289,11 +2410,12 @@ struct pci_dev { unsigned int devfn; unsigned int irq; struct resource resource[DEVICE_COUNT_RESOURCE]; - struct pci_bus *bus; /* needed for i915_dma.c */ - unsigned short vendor; /* needed for intel-agp.c */ + struct pci_bus *bus; + unsigned short vendor; unsigned short device; - unsigned int class; /* needed by usb/host/pci-quirks.c */ - u8 revision; /* needed for ehci-pci.c */ + unsigned short subsystem_vendor; + unsigned int class; + u8 revision; struct device dev; /* needed for intel-agp.c */ pci_power_t current_state; }; @@ -2395,6 +2517,9 @@ struct pci_dev *pci_get_slot(struct pci_bus *bus, unsigned int devfn); const struct pci_device_id *pci_match_id(const struct pci_device_id *ids, struct pci_dev *dev); void *pci_ioremap_bar(struct pci_dev *pdev, int bar); +int pci_set_power_state(struct pci_dev *dev, pci_power_t state); + +#define for_each_pci_dev(d) printk("for_each_pci_dev called\n"); while(0) #define to_pci_dev(n) container_of(n, struct pci_dev, dev) @@ -2639,12 +2764,13 @@ int down_interruptible(struct semaphore *sem); enum { HID_DEBUG_BUFSIZE=512 }; -#define hid_debug_init() do { } while (0) -#define hid_dump_input(a,b,c) do { } while (0) -#define hid_debug_event(a,b) do { } while (0) -#define hid_debug_register(a, b) do { } while (0) -#define hid_debug_unregister(a) do { } while (0) -#define hid_debug_exit() do { } while (0) +#define hid_debug_init() do { } while (0) +#define hid_dump_input(a,b,c) do { } while (0) +#define hid_debug_event(a,b) do { } while (0) +#define hid_debug_register(a, b) do { } while (0) +#define hid_debug_unregister(a) do { } while (0) +#define hid_debug_exit() do { } while (0) +#define hid_dump_report(a, b, c, d) do { } while (0) /****************** @@ -2781,6 +2907,15 @@ unsigned int queue_max_hw_sectors(struct request_queue *q); #include +/************************* + ** scsi/scsi_devinfo.h ** + *************************/ + +enum Blist { + BLIST_FORCELUN = 2, +}; + + /******************** ** scsi/scsi_eh.h ** *******************/ @@ -2858,9 +2993,9 @@ struct scsi_data_buffer struct scsi_cmnd { struct scsi_device *device; - struct list_head list; /* scsi_cmnd participates in queue lists */ - - unsigned long serial_number; + struct list_head list; /* scsi_cmnd participates in queue lists */ + struct delayed_work abort_work; + unsigned long serial_number; /* * This is set to jiffies as it was when the command was first @@ -2912,6 +3047,7 @@ void trace_scsi_dispatch_cmd_start(struct scsi_cmnd *); void trace_scsi_dispatch_cmd_error(struct scsi_cmnd *, int); void trace_scsi_dispatch_cmd_done(struct scsi_cmnd *); + /************************ ** scsi/scsi_device.h ** ************************/ @@ -2955,12 +3091,13 @@ struct scsi_device unsigned short last_queue_full_count; /* scsi_track_queue_full() */ unsigned long last_queue_full_time; /* last queue full time */ - unsigned long id, lun, channel; + unsigned int id, lun, channel; char type; char scsi_level; unsigned char inquiry_len; /* valid bytes in 'inquiry' */ struct scsi_target *sdev_target; /* used only for single_lun */ + unsigned sdev_bflags; unsigned lockable:1; /* able to prevent media removal */ unsigned simple_tags:1; /* simple queue tag messages are enabled */ unsigned ordered_tags:1; /* ordered queue tag messages are enabled */ @@ -3041,12 +3178,27 @@ enum { CHECKSUM_PARTIAL = 3, NET_IP_ALIGN = 2, + MAX_SKB_FRAGS = 16, }; + +typedef struct skb_frag_struct +{ + struct + { + struct page *p; + } page; + + __u32 page_offset; + __u32 size; +} skb_frag_t; + struct skb_shared_info { unsigned short nr_frags; unsigned short gso_size; + + skb_frag_t frags[MAX_SKB_FRAGS]; }; struct sk_buff @@ -3102,7 +3254,7 @@ struct sk_buff_head skb != (struct sk_buff *)(queue); \ skb = skb->next) -struct skb_shared_info *skb_shinfo(struct sk_buff *); +struct skb_shared_info *skb_shinfo(struct sk_buff const *); struct sk_buff *alloc_skb(unsigned int, gfp_t); unsigned char *skb_push(struct sk_buff *, unsigned int); unsigned char *skb_pull(struct sk_buff *, unsigned int); @@ -3118,6 +3270,7 @@ void skb_set_tail_pointer(struct sk_buff *, const int); struct sk_buff *skb_clone(struct sk_buff *, gfp_t); void skb_reserve(struct sk_buff *, int); int skb_header_cloned(const struct sk_buff *); +unsigned int skb_headlen(const struct sk_buff *); int skb_linearize(struct sk_buff *); @@ -3154,6 +3307,10 @@ void dev_kfree_skb_any(struct sk_buff *); void kfree_skb(struct sk_buff *); +int pskb_expand_head(struct sk_buff *, int, int ntail, gfp_t); + +unsigned int skb_frag_size(const skb_frag_t *frag); + /********************* ** linux/uapi/if.h ** *********************/ @@ -3299,6 +3456,7 @@ typedef enum netdev_tx netdev_tx_t; enum { MAX_ADDR_LEN = 32, NET_RX_SUCCESS = 0, + NET_ADDR_RANDOM = 1, NETIF_MSG_DRV = 0x1, NETIF_MSG_PROBE = 0x2, @@ -3354,6 +3512,7 @@ struct net_device unsigned short needed_headroom; unsigned short needed_tailroom; unsigned char perm_addr[MAX_ADDR_LEN]; + unsigned char addr_assign_type; unsigned char *dev_addr; unsigned char _dev_addr[ETH_ALEN]; unsigned long trans_start; /* Time (in jiffies) of last Tx */ @@ -3502,6 +3661,8 @@ struct net_device *alloc_etherdev(int); void eth_hw_addr_random(struct net_device *dev); void eth_random_addr(u8 *addr); +bool ether_addr_equal(const u8 *addr1, const u8 *addr2); + /******************** ** asm/checksum.h ** @@ -3631,9 +3792,6 @@ void *radix_tree_delete(struct radix_tree_root *, unsigned long); static inline void dump_stack(void) { } -static inline void * __must_check ERR_PTR(long error) { - return (void *) error; -} /** @@ -3703,6 +3861,44 @@ struct pt_regs { unsigned long dummy; }; #define ARM_sp dummy +/************************ + ** linux/tracepoint.h ** + ************************/ + +#define TRACE_EVENT(name, proto, args, struct, assign, print) +#define DECLARE_EVENT_CLASS(name, proto, args, tstruct, assign, print) +#define DEFINE_EVENT(template, name, proto, args) + +/* needed by drivers/net/wireless/iwlwifi/iwl-devtrace.h */ +#define TP_PROTO(args...) args +#define TP_STRUCT__entry(args...) (args) +#define TP_ARGS(args...) (args) +#define TP_printk(fmt, args...) (fmt "\n" args) +#define TP_fast_assign(args...) (args) +/* + * #define TP_ARGS(args...) (args) + * #define TP_CONDITION(args...) (args) + * #define TP_STRUCT__entry(args...) (args) + * + * #define TP_fast_assign(args...) (args) + * */ + + +/******************* + ** Tracing stuff ** + *******************/ + +static inline void trace_xhci_cmd_completion(void *p1, void *p2) { } +static inline void trace_xhci_address_ctx(void *p1, void *p2, unsigned long v) { } + +static inline void trace_xhci_dbg_init(struct va_format *v) { } +static inline void trace_xhci_dbg_ring_expansion(struct va_format *v) { } +static inline void trace_xhci_dbg_context_change(struct va_format *v) { } +static inline void trace_xhci_dbg_cancel_urb(struct va_format *v) { } +static inline void trace_xhci_dbg_reset_ep(struct va_format *v) { } +static inline void trace_xhci_dbg_quirks(struct va_format *v) { } +static inline void trace_xhci_dbg_address(struct va_format *v) { } + #ifdef __cplusplus } #endif /* __cplusplus */ diff --git a/repos/dde_linux/src/lib/usb/include/routine.h b/repos/dde_linux/src/lib/usb/include/routine.h index a6866396f4..8726d70208 100644 --- a/repos/dde_linux/src/lib/usb/include/routine.h +++ b/repos/dde_linux/src/lib/usb/include/routine.h @@ -165,7 +165,7 @@ class Routine : public Genode::List::Element /** * Set current to first object */ - static void current_use_first() { _current = _list()->first(); } + static void make_main_current() { _main = _current = _list()->first(); } /** * Add an object @@ -196,7 +196,6 @@ class Routine : public Genode::List::Element return; _list()->remove(_current); - _main = _current; if (_main && _setjmp(_main->_env)) return; diff --git a/repos/dde_linux/src/lib/usb/input/evdev.c b/repos/dde_linux/src/lib/usb/input/evdev.c index a0f38ced32..ffc5e76783 100644 --- a/repos/dde_linux/src/lib/usb/input/evdev.c +++ b/repos/dde_linux/src/lib/usb/input/evdev.c @@ -158,8 +158,7 @@ void genode_evdev_event(struct input_handle *handle, unsigned int type, if (handler) handler(arg_type, arg_keycode, arg_ax, arg_ay, arg_rx, arg_ry); - printk("EVENT: t: %x c: %x ax: %d ay %d rx: %d ry %d\n", - arg_type, arg_keycode, arg_ax, arg_ay, arg_rx, arg_ry); + #if DEBUG_EVDEV printk("event[%ld]. dev: %s, type: %d, code: %d, value: %d\n", count++, handle->dev->name, type, code, value); diff --git a/repos/dde_linux/src/lib/usb/lx_emul.cc b/repos/dde_linux/src/lib/usb/lx_emul.cc index bdbb172f08..9f39e5b899 100644 --- a/repos/dde_linux/src/lib/usb/lx_emul.cc +++ b/repos/dde_linux/src/lib/usb/lx_emul.cc @@ -700,6 +700,12 @@ void *devm_ioremap_nocache(struct device *dev, resource_size_t offset, } +void *devm_ioremap_resource(struct device *dev, struct resource *res) +{ + return _ioremap(res->start, res->end - res->start, 0); +} + + void *phys_to_virt(unsigned long address) { return (void *)Malloc::dma()->virt_addr(address); @@ -846,15 +852,10 @@ void *devm_kzalloc(struct device *dev, size_t size, gfp_t gfp) } -void *platform_get_drvdata(const struct platform_device *pdev) +void *dev_get_platdata(const struct device *dev) { - return pdev->data; -} - - -void platform_set_drvdata(struct platform_device *pdev, void *data) -{ - pdev->data = data; + PDBG("called"); + return (void *)dev->platform_data; } @@ -1226,4 +1227,72 @@ u8 mii_resolve_flowctrl_fdx(u16 lcladv, u16 rmtadv) return cap; } +int mii_link_ok (struct mii_if_info *mii) +{ + /* first, a dummy read, needed to latch some MII phys */ + mii->mdio_read(mii->dev, mii->phy_id, MII_BMSR); + if (mii->mdio_read(mii->dev, mii->phy_id, MII_BMSR) & BMSR_LSTATUS) + return 1; + return 0; +} + +unsigned int mii_check_media (struct mii_if_info *mii, + unsigned int ok_to_print, + unsigned int init_media) +{ + if (mii_link_ok(mii)) + netif_carrier_on(mii->dev); + else + netif_carrier_off(mii->dev); + return 0; +} + + +/****************** + ** linux/log2.h ** + ******************/ + + +int rounddown_pow_of_two(u32 n) +{ + return 1U << Genode::log2(n); +} + + +/****************** + ** linux/wait.h ** + ******************/ + +void init_waitqueue_head(wait_queue_head_t *q) +{ + q->q = 0; +} + + +void add_wait_queue(wait_queue_head_t *q, wait_queue_t *wait) +{ + if (q->q) { + PERR("Non-empty wait queue"); + return; + } + + q->q = wait; +} + + +void remove_wait_queue(wait_queue_head_t *q, wait_queue_t *wait) +{ + if (q->q != wait) { + PERR("Remove unkown element from wait queue"); + return; + } + + q->q = 0; +} + + +int waitqueue_active(wait_queue_head_t *q) +{ + return q->q ? 1 : 0; +} diff --git a/repos/dde_linux/src/lib/usb/main.cc b/repos/dde_linux/src/lib/usb/main.cc index 4e09966372..3569d90e09 100644 --- a/repos/dde_linux/src/lib/usb/main.cc +++ b/repos/dde_linux/src/lib/usb/main.cc @@ -38,7 +38,7 @@ extern "C" void module_evdev_init(); extern "C" void module_hid_init(); extern "C" void module_hid_init_core(); extern "C" void module_hid_generic_init(); -extern "C" void module_usb_stor_init(); +extern "C" void module_usb_storage_driver_init(); extern "C" void module_ch_driver_init(); extern "C" void module_mt_driver_init(); @@ -78,7 +78,7 @@ static void init(Services *services) /* storage */ if (services->stor) - module_usb_stor_init(); + module_usb_storage_driver_init(); } @@ -96,7 +96,7 @@ void start_usb_driver(Server::Entrypoint &ep) Nic::init(ep); Routine::add(0, 0, "Main", true); - Routine::current_use_first(); + Routine::make_main_current(); init(&services); Routine::main(); diff --git a/repos/dde_linux/src/lib/usb/nic/nic.cc b/repos/dde_linux/src/lib/usb/nic/nic.cc index b24bef432a..99f2b9cf2a 100644 --- a/repos/dde_linux/src/lib/usb/nic/nic.cc +++ b/repos/dde_linux/src/lib/usb/nic/nic.cc @@ -331,18 +331,22 @@ int netif_running(const struct net_device *dev) return dev->state & (1 << __LINK_STATE_START); } + int netif_device_present(struct net_device *dev) { return 1; } + int netif_carrier_ok(const struct net_device *dev) { return !(dev->state & (1 << __LINK_STATE_NOCARRIER)); } + void netif_carrier_on(struct net_device *dev) { dev->state &= ~(1 << __LINK_STATE_NOCARRIER); } + void netif_carrier_off(struct net_device *dev) { dev->state |= 1 << __LINK_STATE_NOCARRIER; @@ -581,7 +585,7 @@ unsigned char *skb_tail_pointer(const struct sk_buff *skb) /** * Dummy for shared info */ -struct skb_shared_info *skb_shinfo(struct sk_buff * /* skb */) +struct skb_shared_info *skb_shinfo(struct sk_buff const * /* skb */) { static skb_shared_info _s = { 0 }; return &_s;