dde_linux: Update to Linux 3.14.5

Update patch files and file lists.
This commit is contained in:
Sebastian Sumpf 2014-06-02 13:50:17 +02:00 committed by Christian Helmuth
parent 3a7773073d
commit 98165dd91b
32 changed files with 1301 additions and 713 deletions

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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'.

View File

@ -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

View File

@ -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 <sebastian.sumpf@genode-labs.com>
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;

View File

@ -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 <sebastian.sumpf@genode-labs.com>
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)
{

View File

@ -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:

View File

@ -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 <sebastian.sumpf@genode-labs.com>
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 = {

View File

@ -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 <sebastian.sumpf@genode-labs.com>
Date: Mon Jun 2 13:25:18 2014 +0200
icmp.patch
diff --git a/net/ipv4/icmp.c b/net/ipv4/icmp.c
index 0134663..aee0c67 100644
--- a/net/ipv4/icmp.c
+++ b/net/ipv4/icmp.c
@@ -822,7 +822,7 @@ static void icmp_echo(struct sk_buff *skb)
if (!net->ipv4.sysctl_icmp_echo_ignore_all) {
struct icmp_bxm icmp_param;

View File

@ -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 <sebastian.sumpf@genode-labs.com>
Date: Mon Jun 2 13:25:30 2014 +0200
ip_config.patch
diff --git a/net/ipv4/ipconfig.c b/net/ipv4/ipconfig.c
index b3e86ea..cd93457 100644
--- a/net/ipv4/ipconfig.c
+++ b/net/ipv4/ipconfig.c
@@ -1516,24 +1516,24 @@ static int __init ip_auto_config(void)
*/
pr_info("IP-Config: Complete:\n");

View File

@ -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;

View File

@ -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 <sebastian.sumpf@genode-labs.com>
Date: Mon Jun 2 13:34:18 2014 +0200
skbuff.patch
diff --git a/net/core/skbuff.c b/net/core/skbuff.c
index e5ae776..abfa703 100644
--- a/net/core/skbuff.c
+++ b/net/core/skbuff.c
@@ -414,23 +414,9 @@ struct sk_buff *__netdev_alloc_skb(struct net_device *dev,
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;

View File

@ -1,20 +1,15 @@
From 8b2f74f2258b62ca0e62656cdccbc9159aeab893 Mon Sep 17 00:00:00 2001
From: Sebastian Sumpf <sebastian.sumpf@genode-labs.com>
Date: Tue, 6 Aug 2013 16:12:54 +0200
Subject: [PATCH] L4Linux: Increase TCP-window size
commit dc0fb534ff37768cdc4c6782fb25376f89ed04d3
Author: Sebastian Sumpf <sebastian.sumpf@genode-labs.com>
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

View File

@ -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 <sebastian.sumpf@genode-labs.com>
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:

View File

@ -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 <sebastian.sumpf@genode-labs.com>
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)

View File

@ -1 +1 @@
e407a48e201bda19915373eef0d114933c1e4223
c7aac790191e7e38e4fcbbc52f3c4abfad4b345e

View File

@ -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

View File

@ -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" */

View File

@ -26,7 +26,7 @@ extern "C" {
#include <dde_kit/printf.h>
#include <dde_kit/types.h>
#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

View File

@ -225,10 +225,10 @@ struct iphdr *ip_hdr(const struct sk_buff *skb)
** linux/netdevice.h **
***********************/
struct netdev_queue *netdev_pick_tx(struct net_device *dev, struct sk_buff *skb)
{
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 **
****************************/

View File

@ -26,7 +26,6 @@
#include <platform.h>
/* Linux */
#include <linux/platform_data/usb-ehci-s5p.h>
#include <linux/platform_data/dwc3-exynos.h>
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;

View File

@ -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);
}

View File

@ -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);
}

View File

@ -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; }
/******************************

View File

@ -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 <linux/usb/ch9.h>
#include <linux/usb/phy.h>
#endif /* _ARM__PLATFORM__LX_EMUL_H_ */

View File

@ -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 <linux/usb/storage.h>
/**********************
@ -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 <linux/pci_ids.h>
#include <uapi/linux/pci_regs.h>
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_host.h>
/*************************
** 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 */

View File

@ -165,7 +165,7 @@ class Routine : public Genode::List<Routine>::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<Routine>::Element
return;
_list()->remove(_current);
_main = _current;
if (_main && _setjmp(_main->_env))
return;

View File

@ -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);

View File

@ -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;
}

View File

@ -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();

View File

@ -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;