/* * Copyright (C) 2005-2007 Takahiro Hirofuchi */ #ifndef __VHCI_DRIVER_H #define __VHCI_DRIVER_H #include #include #include "usbip_common.h" #define USBIP_VHCI_BUS_TYPE "platform" #define MAXNPORT 128 struct usbip_imported_device { uint8_t port; uint32_t status; uint32_t devid; uint8_t busnum; uint8_t devnum; /* usbip_class_device list */ struct usbip_usb_device udev; }; struct usbip_vhci_driver { /* /sys/devices/platform/vhci_hcd */ struct udev_device *hc_device; int nports; struct usbip_imported_device idev[MAXNPORT]; }; extern struct usbip_vhci_driver *vhci_driver; int usbip_vhci_driver_open(void); void usbip_vhci_driver_close(void); int usbip_vhci_refresh_device_list(void); int usbip_vhci_get_free_port(void); int usbip_vhci_attach_device2(uint8_t port, int sockfd, uint32_t devid, uint32_t speed); /* will be removed */ int usbip_vhci_attach_device(uint8_t port, int sockfd, uint8_t busnum, uint8_t devnum, uint32_t speed); int usbip_vhci_detach_device(uint8_t port); int usbip_vhci_imported_device_dump(struct usbip_imported_device *idev); #endif /* __VHCI_DRIVER_H */ ds-private-remove'>nds-private-remove net-next plumbingsTobias Klauser
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHugh Dickins <hughd@google.com>2017-01-07 15:37:31 -0800
committerLinus Torvalds <torvalds@linux-foundation.org>2017-01-07 17:49:33 -0800
commitb0b9b3df27d100a975b4e8818f35382b64a5e35c (patch)
tree8d900d2be3801a7dd10c86c594b37e421167392c /include/dt-bindings/clock
parent87bc610730a944b49f1c53ab9f4230d85f35df0c (diff)
mm: stop leaking PageTables
4.10-rc loadtest (even on x86, and even without THPCache) fails with "fork: Cannot allocate memory" or some such; and /proc/meminfo shows PageTables growing. Commit 953c66c2b22a ("mm: THP page cache support for ppc64") that got merged in rc1 removed the freeing of an unused preallocated pagetable after do_fault_around() has called map_pages(). This is usually a good optimization, so that the followup doesn't have to reallocate one; but it's not sufficient to shift the freeing into alloc_set_pte(), since there are failure cases (most commonly VM_FAULT_RETRY) which never reach finish_fault(). Check and free it at the outer level in do_fault(), then we don't need to worry in alloc_set_pte(), and can restore that to how it was (I cannot find any reason to pte_free() under lock as it was doing). And fix a separate pagetable leak, or crash, introduced by the same change, that could only show up on some ppc64: why does do_set_pmd()'s failure case attempt to withdraw a pagetable when it never deposited one, at the same time overwriting (so leaking) the vmf->prealloc_pte? Residue of an earlier implementation, perhaps? Delete it. Fixes: 953c66c2b22a ("mm: THP page cache support for ppc64") Cc: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com> Cc: Kirill A. Shutemov <kirill.shutemov@linux.intel.com> Cc: Michael Ellerman <mpe@ellerman.id.au> Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org> Cc: Michael Neuling <mikey@neuling.org> Cc: Paul Mackerras <paulus@samba.org> Cc: Balbir Singh <bsingharora@gmail.com> Cc: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Hugh Dickins <hughd@google.com> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'include/dt-bindings/clock')