From 1275020b3eef1febc07cd7ca6080ec736ef948da Mon Sep 17 00:00:00 2001 From: Laura Abbott Date: Thu, 5 Nov 2015 10:48:38 -0800 Subject: [PATCH] Linux v4.3-6681-g8e483ed --- ...ing-console-to-enable-serial-console.patch | 14 +- config-arm-generic | 1 - config-arm64 | 4 + config-armv7 | 1 + config-debug | 2 +- config-generic | 44 +++++- config-nodebug | 1 + config-x86_64-generic | 1 + gitrev | 2 +- ...cks-for-allocation-failure-in-isdn_p.patch | 40 ----- kernel.spec | 11 +- ...e-VJ-compression-slot-parameters-com.patch | 139 ------------------ rebase-notes.txt | 8 +- sources | 2 +- ...atform-driver-use-64-bit-or-32-bit-D.patch | 40 ----- 15 files changed, 67 insertions(+), 243 deletions(-) delete mode 100644 isdn_ppp-Add-checks-for-allocation-failure-in-isdn_p.patch delete mode 100644 ppp-slip-Validate-VJ-compression-slot-parameters-com.patch delete mode 100644 usb-make-xhci-platform-driver-use-64-bit-or-32-bit-D.patch diff --git a/arm64-avoid-needing-console-to-enable-serial-console.patch b/arm64-avoid-needing-console-to-enable-serial-console.patch index 47d09c2a7..e8cc7bbe0 100644 --- a/arm64-avoid-needing-console-to-enable-serial-console.patch +++ b/arm64-avoid-needing-console-to-enable-serial-console.patch @@ -1,3 +1,4 @@ +From ede02df9a481ba07348e6fd4393ba2e273ef16d8 Mon Sep 17 00:00:00 2001 From: Mark Salter Date: Wed, 25 Mar 2015 14:17:50 -0400 Subject: [PATCH] arm64: avoid needing console= to enable serial console @@ -14,13 +15,13 @@ Signed-off-by: Mark Salter 1 file changed, 19 insertions(+) diff --git a/arch/arm64/kernel/setup.c b/arch/arm64/kernel/setup.c -index f3067d4d4e35..6f8d814c4e5c 100644 +index 8119479..ea9ff80 100644 --- a/arch/arm64/kernel/setup.c +++ b/arch/arm64/kernel/setup.c -@@ -568,3 +568,22 @@ const struct seq_operations cpuinfo_op = { - .stop = c_stop, - .show = c_show - }; +@@ -381,3 +381,22 @@ static int __init topology_init(void) + return 0; + } + subsys_initcall(topology_init); + +/* + * Temporary hack to avoid need for console= on command line @@ -40,3 +41,6 @@ index f3067d4d4e35..6f8d814c4e5c 100644 + return 0; +} +early_initcall(arm64_console_setup); +-- +2.5.0 + diff --git a/config-arm-generic b/config-arm-generic index c8984594e..34357d323 100644 --- a/config-arm-generic +++ b/config-arm-generic @@ -352,7 +352,6 @@ CONFIG_VFIO_AMBA=m # CONFIG_DEBUG_SET_MODULE_RONX is not set # CONFIG_CORESIGHT is not set - # CONFIG_LATTICE_ECP3_CONFIG is not set # CONFIG_BMP085_SPI is not set # CONFIG_TI_DAC7512 is not set diff --git a/config-arm64 b/config-arm64 index 36245ef8a..dcd46b90e 100644 --- a/config-arm64 +++ b/config-arm64 @@ -58,6 +58,7 @@ CONFIG_CONSOLE_TRANSLATIONS=y CONFIG_HAVE_64BIT_ALIGNED_ACCESS=y CONFIG_HVC_DRIVER=y +# CONFIG_HVC_DCC is not set CONFIG_HZ=100 CONFIG_KVM=y @@ -90,6 +91,9 @@ CONFIG_ACPI_CUSTOM_METHOD=m CONFIG_ACPI_NFIT=m # CONFIG_ACPI_NFIT_DEBUG is not set CONFIG_PCC=y +CONFIG_ACPI_CPPC_CPUFREQ=y +CONFIG_ACPI_PROCESSOR=y +CONFIG_ACPI_THERMAL=y CONFIG_ARM64_CRYPTO=y CONFIG_CRYPTO_SHA1_ARM64_CE=y diff --git a/config-armv7 b/config-armv7 index bec106c07..61699e448 100644 --- a/config-armv7 +++ b/config-armv7 @@ -406,6 +406,7 @@ CONFIG_CRYPTO_DEV_FSL_CAAM_CRYPTO_API=m CONFIG_CRYPTO_DEV_FSL_CAAM_AHASH_API=m CONFIG_CRYPTO_DEV_FSL_CAAM_RNG_API=m # CONFIG_CRYPTO_DEV_FSL_CAAM_DEBUG is not set +CONFIG_CRYPTO_DEV_MXS_DCP=m CONFIG_RTC_DRV_SNVS=m CONFIG_FB_MXS=m # CONFIG_FB_MX3 is not set diff --git a/config-debug b/config-debug index d57a218ea..d733183a2 100644 --- a/config-debug +++ b/config-debug @@ -31,7 +31,7 @@ CONFIG_LOCK_STAT=y CONFIG_DEBUG_STACK_USAGE=y CONFIG_ACPI_DEBUG=y - +# CONFIG_ACPI_DEBUGGER is not set CONFIG_DEBUG_SG=y CONFIG_DEBUG_PI_LIST=y diff --git a/config-generic b/config-generic index aaf7d0512..99acdb947 100644 --- a/config-generic +++ b/config-generic @@ -360,6 +360,8 @@ CONFIG_HOTPLUG_PCI_ACPI_IBM=m # CONFIG_NVMEM is not set +# CONFIG_FPGA is not set + # # Block devices # @@ -585,6 +587,8 @@ CONFIG_FCOE_FNIC=m CONFIG_SCSI_SNIC=m # CONFIG_SCSI_SNIC_DEBUG_FS is not set +# CONFIG_NVM is not set + CONFIG_ATA=y CONFIG_ATA_BMDMA=y CONFIG_ATA_VERBOSE_ERROR=y @@ -897,6 +901,7 @@ CONFIG_NETFILTER_NETLINK_ACCT=m CONFIG_NETFILTER_NETLINK_QUEUE=m CONFIG_NETFILTER_NETLINK_QUEUE_CT=y CONFIG_NETFILTER_NETLINK_LOG=m +# CONFIG_NETFILTER_NETLINK_GLUE_CT is not set CONFIG_NETFILTER_XTABLES=y CONFIG_NETFILTER_XT_SET=m CONFIG_NETFILTER_XT_MARK=m @@ -1544,6 +1549,8 @@ CONFIG_QLCNIC_VXLAN=y CONFIG_QLCNIC_HWMON=y CONFIG_QLGE=m CONFIG_NETXEN_NIC=m +CONFIG_QED=m +CONFIG_QEDE=m # CONFIG_NET_VENDOR_QUALCOMM is not set @@ -1832,6 +1839,8 @@ CONFIG_LIBERTAS_SDIO=m # CONFIG_LIBERTAS_THINFIRM is not set # CONFIG_LIBERTAS_SPI is not set CONFIG_LIBERTAS_MESH=y +CONFIG_BNXT=m +CONFIG_BNXT_SRIOV=y CONFIG_IWLWIFI=m CONFIG_IWLDVM=m @@ -1913,6 +1922,9 @@ CONFIG_RTL8723AE=m CONFIG_RTL8723BE=m CONFIG_RTL8188EE=m CONFIG_RTL8821AE=m +CONFIG_RTL8XXXU=m +# NOTE! This should be disabled when branching to stable +CONFIG_RTL8XXXU_UNTESTED=y CONFIG_MWIFIEX=m CONFIG_MWIFIEX_SDIO=m @@ -1928,6 +1940,8 @@ CONFIG_IEEE802154_ATUSB=m CONFIG_IEEE802154_CC2520=m # CONFIG_IEEE802154_AT86RF230 is not set # CONFIG_IEEE802154_MRF24J40 is not set +# CONFIG_IEEE802154_NL802154_EXPERIMENTAL is not set +# CONFIG_IEEE802154_AT86RF230_DEBUGFS is not set CONFIG_MAC802154=m CONFIG_NET_MPLS_GSO=m @@ -2010,6 +2024,7 @@ CONFIG_CAN_GS_USB=m CONFIG_CAN_8DEV_USB=m CONFIG_CAN_SOFTING=m # CONFIG_CAN_SOFTING_CS is not set +CONFIG_CAN_SUN4I=m CONFIG_NETROM=m CONFIG_ROSE=m @@ -2050,7 +2065,9 @@ CONFIG_NFC_ST21NFCA_I2C=m # CONFIG_NFC_NCI_UART is not set # CONFIG_NFC_ST_NCI is not set # CONFIG_NFC_S3FWRN5_I2C is not set - +# CONFIG_NFC_FDP is not set +# CONFIG_NFC_MRVL_I2C is not set +# CONFIG_NFC_MRVL_SPI is not set # # IrDA (infrared) support @@ -2264,6 +2281,8 @@ CONFIG_GIGASET_M105=m # # CONFIG_PHONE is not set +# CONFIG_NET_L3_MASTER_DEV is not set + # # Input device support # @@ -2528,6 +2547,8 @@ CONFIG_SERIAL_8250_SHARE_IRQ=y CONFIG_SERIAL_8250_RSA=y CONFIG_SERIAL_8250_DW=y # CONFIG_SERIAL_8250_INGENIC is not set +CONFIG_SERIAL_8250_RT288X=y +CONFIG_SERIAL_8250_MID=y CONFIG_CYCLADES=m # CONFIG_CYZ_INTR is not set # CONFIG_MOXA_INTELLIO is not set @@ -2932,6 +2953,18 @@ CONFIG_PA12203001=m # CONFIG_T5403 is not set # CONFIG_MCP4922 is not set # CONFIG_MAX1027 is not set +# CONFIG_MXC4005 is not set +# CONFIG_VZ89X is not set +# CONFIG_HDC100X is not set +# CONFIG_HTU21 is not set +# CONFIG_APDS9960 is not set +# CONFIG_US5182D is not set +# CONFIG_MCP4531 is not set +# CONFIG_MS5637 is not set +# CONFIG_LIDAR_LITE_V2 is not set +# CONFIG_TSYS01 is not set +# CONFIG_TSYS02D is not set +# CONFIG_HI8435 is not set # staging IIO drivers # CONFIG_AD7291 is not set @@ -4240,6 +4273,7 @@ CONFIG_SSB_PCMCIAHOST=y # CONFIG_SSB_DEBUG is not set CONFIG_SSB_DRIVER_PCICORE=y CONFIG_SSB_DRIVER_GPIO=y +CONFIG_SSB_HOST_SOC=y # Multifunction USB devices # CONFIG_MFD_PCF50633 is not set @@ -4839,7 +4873,7 @@ CONFIG_CRYPTO_CHACHA20=m CONFIG_CRYPTO_842=m CONFIG_CRYPTO_DRBG_HASH=y CONFIG_CRYPTO_DRBG_CTR=y - +CONFIG_CRYPTO_KEYWRAP=m @@ -5471,6 +5505,7 @@ CONFIG_USBIP_HOST=m # CONFIG_FB_TFT is not set # CONFIG_FB_SM750 is not set # CONFIG_STAGING_RDMA is not set +# CONFIG_WILC1000_DRIVER is not set # END OF STAGING # @@ -5715,3 +5750,8 @@ CONFIG_POWERCAP=y # set in x86-generic presently # CONFIG_TOUCHSCREEN_GOODIX is not set + +# CONFIG_INTEL_TH is not set +# CONFIG_STM is not set +# CONFIG_STM_DUMMY is not set +# CONFIG_STM_SOURCE_CONSOLE is not set diff --git a/config-nodebug b/config-nodebug index c2b45c591..9fb884068 100644 --- a/config-nodebug +++ b/config-nodebug @@ -31,6 +31,7 @@ CONFIG_LOCK_STAT=y CONFIG_DEBUG_STACK_USAGE=y CONFIG_ACPI_DEBUG=y +# CONFIG_ACPI_DEBUGGER is not set CONFIG_DEBUG_SG=y CONFIG_DEBUG_PI_LIST=y diff --git a/config-x86_64-generic b/config-x86_64-generic index 272999819..76a5beba1 100644 --- a/config-x86_64-generic +++ b/config-x86_64-generic @@ -61,6 +61,7 @@ CONFIG_INTEL_MIC_HOST=m CONFIG_INTEL_MIC_CARD=m CONFIG_INTEL_MIC_BUS=m CONFIG_INTEL_MIC_X100_DMA=m +CONFIG_MIC_COSM=m # SHPC has half-arsed PCI probing, which makes it load on too many systems CONFIG_HOTPLUG_PCI_SHPC=m diff --git a/gitrev b/gitrev index 66561aa60..7e987999b 100644 --- a/gitrev +++ b/gitrev @@ -1 +1 @@ -66ef3493d4bb387f5a83915e33dc893102fd1b43 +8e483ed1342a4ea45b70f0f33ac54eff7a33d918 diff --git a/isdn_ppp-Add-checks-for-allocation-failure-in-isdn_p.patch b/isdn_ppp-Add-checks-for-allocation-failure-in-isdn_p.patch deleted file mode 100644 index cf8b5a829..000000000 --- a/isdn_ppp-Add-checks-for-allocation-failure-in-isdn_p.patch +++ /dev/null @@ -1,40 +0,0 @@ -From 59f271755df42fce6d38ebdf5b7502666b1e0c36 Mon Sep 17 00:00:00 2001 -From: Ben Hutchings -Date: Sun, 1 Nov 2015 16:21:24 +0000 -Subject: [PATCH 1/2] isdn_ppp: Add checks for allocation failure in - isdn_ppp_open() - -Compile-tested only. - -Signed-off-by: Ben Hutchings ---- - drivers/isdn/i4l/isdn_ppp.c | 6 ++++++ - 1 file changed, 6 insertions(+) - -diff --git a/drivers/isdn/i4l/isdn_ppp.c b/drivers/isdn/i4l/isdn_ppp.c -index c4198fa490bf..86f9abebcb72 100644 ---- a/drivers/isdn/i4l/isdn_ppp.c -+++ b/drivers/isdn/i4l/isdn_ppp.c -@@ -301,6 +301,8 @@ isdn_ppp_open(int min, struct file *file) - is->compflags = 0; - - is->reset = isdn_ppp_ccp_reset_alloc(is); -+ if (!is->reset) -+ return -ENOMEM; - - is->lp = NULL; - is->mp_seqno = 0; /* MP sequence number */ -@@ -320,6 +322,10 @@ isdn_ppp_open(int min, struct file *file) - * VJ header compression init - */ - is->slcomp = slhc_init(16, 16); /* not necessary for 2. link in bundle */ -+ if (!is->slcomp) { -+ isdn_ppp_ccp_reset_free(is); -+ return -ENOMEM; -+ } - #endif - #ifdef CONFIG_IPPP_FILTER - is->pass_filter = NULL; --- -2.4.3 - diff --git a/kernel.spec b/kernel.spec index 69d1d8b2b..0dbc1cb8f 100644 --- a/kernel.spec +++ b/kernel.spec @@ -67,7 +67,7 @@ Summary: The Linux kernel # The rc snapshot level %define rcrev 0 # The git snapshot level -%define gitrev 2 +%define gitrev 3 # Set rpm version accordingly %define rpmversion 4.%{upstream_sublevel}.0 %endif @@ -498,8 +498,6 @@ Patch453: amd-xgbe-phy-a0-Add-support-for-XGBE-PHY-on-A0.patch Patch454: arm64-avoid-needing-console-to-enable-serial-console.patch -Patch455: usb-make-xhci-platform-driver-use-64-bit-or-32-bit-D.patch - Patch456: arm64-acpi-drop-expert-patch.patch Patch457: ARM-tegra-usb-no-reset.patch @@ -595,10 +593,6 @@ Patch510: 0001-iwlwifi-Add-new-PCI-IDs-for-the-8260-series.patch #CVE-2015-7990 rhbz 1276437 1276438 Patch511: RDS-fix-race-condition-when-sending-a-message-on-unb.patch -#CVE-2015-7799 rhbz 1271134 1271135 -Patch512: isdn_ppp-Add-checks-for-allocation-failure-in-isdn_p.patch -Patch513: ppp-slip-Validate-VJ-compression-slot-parameters-com.patch - # END OF PATCH DEFINITIONS %endif @@ -2042,6 +2036,9 @@ fi # # %changelog +* Thu Nov 05 2015 Laura Abbott - 4.4.0-0.rc0.git3.1 +- Linux v4.3-6681-g8e483ed + * Wed Nov 04 2015 Laura Abbott - 4.4.0-0.rc0.git2.1 - Linux v4.3-1107-g66ef349 diff --git a/ppp-slip-Validate-VJ-compression-slot-parameters-com.patch b/ppp-slip-Validate-VJ-compression-slot-parameters-com.patch deleted file mode 100644 index eac5aa7de..000000000 --- a/ppp-slip-Validate-VJ-compression-slot-parameters-com.patch +++ /dev/null @@ -1,139 +0,0 @@ -From a8bc90052f18348718412cebf7b569da95bad264 Mon Sep 17 00:00:00 2001 -From: Ben Hutchings -Date: Sun, 1 Nov 2015 16:22:53 +0000 -Subject: [PATCH 2/2] ppp, slip: Validate VJ compression slot parameters - completely -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Currently slhc_init() treats out-of-range values of rslots and tslots -as equivalent to 0, except that if tslots is too large it will -dereference a null pointer (CVE-2015-7799). - -Add a range-check at the top of the function and make it return an -ERR_PTR() on error instead of NULL. Change the callers accordingly. - -Compile-tested only. - -Reported-by: 郭永刚 -References: http://article.gmane.org/gmane.comp.security.oss.general/17908 -Signed-off-by: Ben Hutchings ---- - drivers/isdn/i4l/isdn_ppp.c | 10 ++++------ - drivers/net/ppp/ppp_generic.c | 6 ++---- - drivers/net/slip/slhc.c | 12 ++++++++---- - drivers/net/slip/slip.c | 2 +- - 4 files changed, 15 insertions(+), 15 deletions(-) - -diff --git a/drivers/isdn/i4l/isdn_ppp.c b/drivers/isdn/i4l/isdn_ppp.c -index 86f9abebcb72..9c1e8adaf4fc 100644 ---- a/drivers/isdn/i4l/isdn_ppp.c -+++ b/drivers/isdn/i4l/isdn_ppp.c -@@ -322,9 +322,9 @@ isdn_ppp_open(int min, struct file *file) - * VJ header compression init - */ - is->slcomp = slhc_init(16, 16); /* not necessary for 2. link in bundle */ -- if (!is->slcomp) { -+ if (IS_ERR(is->slcomp)) { - isdn_ppp_ccp_reset_free(is); -- return -ENOMEM; -+ return PTR_ERR(is->slcomp); - } - #endif - #ifdef CONFIG_IPPP_FILTER -@@ -573,10 +573,8 @@ isdn_ppp_ioctl(int min, struct file *file, unsigned int cmd, unsigned long arg) - is->maxcid = val; - #ifdef CONFIG_ISDN_PPP_VJ - sltmp = slhc_init(16, val); -- if (!sltmp) { -- printk(KERN_ERR "ippp, can't realloc slhc struct\n"); -- return -ENOMEM; -- } -+ if (IS_ERR(sltmp)) -+ return PTR_ERR(sltmp); - if (is->slcomp) - slhc_free(is->slcomp); - is->slcomp = sltmp; -diff --git a/drivers/net/ppp/ppp_generic.c b/drivers/net/ppp/ppp_generic.c -index ed00446759b2..9a863c6a6a33 100644 ---- a/drivers/net/ppp/ppp_generic.c -+++ b/drivers/net/ppp/ppp_generic.c -@@ -721,10 +721,8 @@ static long ppp_ioctl(struct file *file, unsigned int cmd, unsigned long arg) - val &= 0xffff; - } - vj = slhc_init(val2+1, val+1); -- if (!vj) { -- netdev_err(ppp->dev, -- "PPP: no memory (VJ compressor)\n"); -- err = -ENOMEM; -+ if (IS_ERR(vj)) { -+ err = PTR_ERR(vj); - break; - } - ppp_lock(ppp); -diff --git a/drivers/net/slip/slhc.c b/drivers/net/slip/slhc.c -index 079f7adfcde5..27ed25252aac 100644 ---- a/drivers/net/slip/slhc.c -+++ b/drivers/net/slip/slhc.c -@@ -84,8 +84,9 @@ static long decode(unsigned char **cpp); - static unsigned char * put16(unsigned char *cp, unsigned short x); - static unsigned short pull16(unsigned char **cpp); - --/* Initialize compression data structure -+/* Allocate compression data structure - * slots must be in range 0 to 255 (zero meaning no compression) -+ * Returns pointer to structure or ERR_PTR() on error. - */ - struct slcompress * - slhc_init(int rslots, int tslots) -@@ -94,11 +95,14 @@ slhc_init(int rslots, int tslots) - register struct cstate *ts; - struct slcompress *comp; - -+ if (rslots < 0 || rslots > 255 || tslots < 0 || tslots > 255) -+ return ERR_PTR(-EINVAL); -+ - comp = kzalloc(sizeof(struct slcompress), GFP_KERNEL); - if (! comp) - goto out_fail; - -- if ( rslots > 0 && rslots < 256 ) { -+ if (rslots > 0) { - size_t rsize = rslots * sizeof(struct cstate); - comp->rstate = kzalloc(rsize, GFP_KERNEL); - if (! comp->rstate) -@@ -106,7 +110,7 @@ slhc_init(int rslots, int tslots) - comp->rslot_limit = rslots - 1; - } - -- if ( tslots > 0 && tslots < 256 ) { -+ if (tslots > 0) { - size_t tsize = tslots * sizeof(struct cstate); - comp->tstate = kzalloc(tsize, GFP_KERNEL); - if (! comp->tstate) -@@ -141,7 +145,7 @@ out_free2: - out_free: - kfree(comp); - out_fail: -- return NULL; -+ return ERR_PTR(-ENOMEM); - } - - -diff --git a/drivers/net/slip/slip.c b/drivers/net/slip/slip.c -index 05387b1e2e95..a17d86a57734 100644 ---- a/drivers/net/slip/slip.c -+++ b/drivers/net/slip/slip.c -@@ -164,7 +164,7 @@ static int sl_alloc_bufs(struct slip *sl, int mtu) - if (cbuff == NULL) - goto err_exit; - slcomp = slhc_init(16, 16); -- if (slcomp == NULL) -+ if (IS_ERR(slcomp)) - goto err_exit; - #endif - spin_lock_bh(&sl->lock); --- -2.4.3 - diff --git a/rebase-notes.txt b/rebase-notes.txt index 39029bb0d..3dc278a2c 100644 --- a/rebase-notes.txt +++ b/rebase-notes.txt @@ -1,7 +1,3 @@ -Linux 3.4 rebase notes: +Linux 4.4 rebase notes: -* Look at the CPU modalias patches from Andi. See if they are sufficient to - build the cpufreq drivers as modules again (rhbz 713572 but mostly to just - make this person in IRC be quiet) - -* Make sure X32 stays disabled. Preferably forever +CONFIG_RTL8XXXU_UNTESTED should be turned off. Great for rawhide, not for stable diff --git a/sources b/sources index f74dc5150..e4da8df7c 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ 58b35794eee3b6d52ce7be39357801e7 linux-4.3.tar.xz 7c516c9528b9f9aac0136944b0200b7e perf-man-4.3.tar.gz -3ea0d9db5a2e285e07747c7bdc38ec00 patch-4.3-git2.xz +0b7adb44ce35e25110daac012c9dc055 patch-4.3-git3.xz diff --git a/usb-make-xhci-platform-driver-use-64-bit-or-32-bit-D.patch b/usb-make-xhci-platform-driver-use-64-bit-or-32-bit-D.patch deleted file mode 100644 index 79f58f775..000000000 --- a/usb-make-xhci-platform-driver-use-64-bit-or-32-bit-D.patch +++ /dev/null @@ -1,40 +0,0 @@ -From: Mark Langsdorf -Date: Wed, 25 Mar 2015 14:12:51 -0400 -Subject: [PATCH] usb: make xhci platform driver use 64 bit or 32 bit DMA - -The xhci platform driver needs to work on systems that either only -support 64-bit DMA or only support 32-bit DMA. Attempt to set a -coherent dma mask for 64-bit DMA, and attempt again with 32-bit -DMA if that fails. - -Signed-off-by: Mark Langsdorf ---- - drivers/usb/host/xhci-plat.c | 15 +++++++-------- - 1 file changed, 7 insertions(+), 8 deletions(-) - -diff --git a/drivers/usb/host/xhci-plat.c b/drivers/usb/host/xhci-plat.c -index 890ad9d9d329..122b1fb12b7e 100644 ---- a/drivers/usb/host/xhci-plat.c -+++ b/drivers/usb/host/xhci-plat.c -@@ -93,14 +93,13 @@ static int xhci_plat_probe(struct platform_device *pdev) - if (irq < 0) - return -ENODEV; - -- /* Initialize dma_mask and coherent_dma_mask to 32-bits */ -- ret = dma_set_coherent_mask(&pdev->dev, DMA_BIT_MASK(32)); -- if (ret) -- return ret; -- if (!pdev->dev.dma_mask) -- pdev->dev.dma_mask = &pdev->dev.coherent_dma_mask; -- else -- dma_set_mask(&pdev->dev, DMA_BIT_MASK(32)); -+ /* Try setting the coherent_dma_mask to 64 bits, then try 32 bits */ -+ ret = dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(64)); -+ if (ret) { -+ ret = dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(32)); -+ if (ret) -+ return ret; -+ } - - hcd = usb_create_hcd(driver, &pdev->dev, dev_name(&pdev->dev)); - if (!hcd)