Refreshed all patches.
Altered patches:
- 180-usb-xhci-add-support-for-performing-fake-doorbell.patch
Fixes CVE:
- CVE-2018-14625
Compile-tested on: ar71xx, cns3xxx, imx6
Runtime-tested on: ar71xx, cns3xxx, imx6
Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
LINUX_VERSION-3.18 = .129
LINUX_VERSION-4.9 = .145
-LINUX_VERSION-4.14 = .87
+LINUX_VERSION-4.14 = .88
LINUX_KERNEL_HASH-3.18.129 = 8d420b58593a74109175be781da2320a341baec9aaa186da31ad508d3f377e72
LINUX_KERNEL_HASH-4.9.145 = 6901ca37e8c305a2f26c598952338b4dc2481ca5a9d0bf71e2b71730a5b5bc5e
-LINUX_KERNEL_HASH-4.14.87 = 36744d7d657dab23e455a8096e4ad2dc6a25f25fdce062d8a8bdf4499112e125
+LINUX_KERNEL_HASH-4.14.88 = b0f0b8c76708eab6caf3009702e531d40a243b152922ee1f9a441316f226f52d
remove_uri_prefix=$(subst git://,,$(subst http://,,$(subst https://,,$(1))))
sanitize_uri=$(call qstrip,$(subst @,_,$(subst :,_,$(subst .,_,$(subst -,_,$(subst /,_,$(1)))))))
#include "xhci.h"
#include "xhci-trace.h"
-@@ -262,6 +264,458 @@ static void xhci_pme_acpi_rtd3_enable(st
+@@ -266,6 +268,458 @@ static void xhci_pme_acpi_rtd3_enable(st
static void xhci_pme_acpi_rtd3_enable(struct pci_dev *dev) { }
#endif /* CONFIG_ACPI */
/* called during probe() after chip reset completes */
static int xhci_pci_setup(struct usb_hcd *hcd)
{
-@@ -297,6 +751,22 @@ static int xhci_pci_probe(struct pci_dev
+@@ -301,6 +755,22 @@ static int xhci_pci_probe(struct pci_dev
struct hc_driver *driver;
struct usb_hcd *hcd;
driver = (struct hc_driver *)id->driver_data;
/* For some HW implementation, a XHCI reset is just not enough... */
-@@ -361,6 +831,16 @@ static void xhci_pci_remove(struct pci_d
+@@ -365,6 +835,16 @@ static void xhci_pci_remove(struct pci_d
{
struct xhci_hcd *xhci;
--- a/drivers/usb/host/xhci-pci.c
+++ b/drivers/usb/host/xhci-pci.c
-@@ -215,7 +215,7 @@ static void xhci_pci_quirks(struct devic
+@@ -219,7 +219,7 @@ static void xhci_pci_quirks(struct devic
xhci->quirks |= XHCI_TRUST_TX_LENGTH;
if (pdev->vendor == PCI_VENDOR_ID_RENESAS &&
pdev->device == 0x0015)
hcd->msi_enabled = 1;
--- a/drivers/usb/host/xhci.h
+++ b/drivers/usb/host/xhci.h
-@@ -1857,6 +1857,7 @@ struct xhci_hcd {
+@@ -1858,6 +1858,7 @@ struct xhci_hcd {
/* support xHCI 0.96 spec USB2 software LPM */
unsigned sw_lpm_support:1;
/* support xHCI 1.0 spec USB2 hardware LPM */
/*
--- a/drivers/usb/host/xhci.h
+++ b/drivers/usb/host/xhci.h
-@@ -1839,6 +1839,7 @@ struct xhci_hcd {
- #define XHCI_SUSPEND_DELAY BIT_ULL(30)
+@@ -1840,6 +1840,7 @@ struct xhci_hcd {
#define XHCI_INTEL_USB_ROLE_SW BIT_ULL(31)
#define XHCI_RESET_PLL_ON_DISCONNECT BIT_ULL(34)
-+#define XHCI_FAKE_DOORBELL BIT_ULL(35)
+ #define XHCI_SNPS_BROKEN_SUSPEND BIT_ULL(35)
++#define XHCI_FAKE_DOORBELL BIT_ULL(36)
unsigned int num_active_eps;
unsigned int limit_active_eps;
--- a/mm/page_alloc.c
+++ b/mm/page_alloc.c
-@@ -6151,7 +6151,7 @@ static void __ref alloc_node_mem_map(str
+@@ -6141,7 +6141,7 @@ static void __ref alloc_node_mem_map(str
mem_map = NODE_DATA(0)->node_mem_map;
#if defined(CONFIG_HAVE_MEMBLOCK_NODE_MAP) || defined(CONFIG_FLATMEM)
if (page_to_pfn(mem_map) != pgdat->node_start_pfn)
if (!xhci->shared_hcd) {
--- a/drivers/usb/host/xhci-pci.c
+++ b/drivers/usb/host/xhci-pci.c
-@@ -273,6 +273,9 @@ static int xhci_pci_setup(struct usb_hcd
+@@ -277,6 +277,9 @@ static int xhci_pci_setup(struct usb_hcd
if (!xhci->sbrn)
pci_read_config_byte(pdev, XHCI_SBRN_OFFSET, &xhci->sbrn);