From: Greg Kroah-Hartman Date: Mon, 11 Feb 2019 11:38:35 +0000 (+0100) Subject: 3.18-stable patches X-Git-Tag: v4.9.156~26 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=fdbe4c5ca575a422c0588b7f2019253f12471867;p=thirdparty%2Fkernel%2Fstable-queue.git 3.18-stable patches added patches: dmaengine-imx-dma-fix-wrong-callback-invoke.patch kvm-nvmx-unconditionally-cancel-preemption-timer-in-free_nested-cve-2019-7221.patch kvm-x86-work-around-leak-of-uninitialized-stack-contents-cve-2019-7222.patch perf-core-don-t-warn-for-impossible-ring-buffer-sizes.patch perf-tests-evsel-tp-sched-fix-bitwise-operator.patch perf-x86-intel-uncore-add-node-id-mask.patch scsi-aic94xx-fix-module-loading.patch usb-gadget-udc-net2272-fix-bitwise-and-boolean-operations.patch usb-phy-am335x-fix-race-condition-in-_probe.patch --- diff --git a/queue-3.18/dmaengine-imx-dma-fix-wrong-callback-invoke.patch b/queue-3.18/dmaengine-imx-dma-fix-wrong-callback-invoke.patch new file mode 100644 index 00000000000..663e144e035 --- /dev/null +++ b/queue-3.18/dmaengine-imx-dma-fix-wrong-callback-invoke.patch @@ -0,0 +1,64 @@ +From 341198eda723c8c1cddbb006a89ad9e362502ea2 Mon Sep 17 00:00:00 2001 +From: Leonid Iziumtsev +Date: Tue, 15 Jan 2019 17:15:23 +0000 +Subject: dmaengine: imx-dma: fix wrong callback invoke + +From: Leonid Iziumtsev + +commit 341198eda723c8c1cddbb006a89ad9e362502ea2 upstream. + +Once the "ld_queue" list is not empty, next descriptor will migrate +into "ld_active" list. The "desc" variable will be overwritten +during that transition. And later the dmaengine_desc_get_callback_invoke() +will use it as an argument. As result we invoke wrong callback. + +That behaviour was in place since: +commit fcaaba6c7136 ("dmaengine: imx-dma: fix callback path in tasklet"). +But after commit 4cd13c21b207 ("softirq: Let ksoftirqd do its job") +things got worse, since possible delay between tasklet_schedule() +from DMA irq handler and actual tasklet function execution got bigger. +And that gave more time for new DMA request to be submitted and +to be put into "ld_queue" list. + +It has been noticed that DMA issue is causing problems for "mxc-mmc" +driver. While stressing the system with heavy network traffic and +writing/reading to/from sd card simultaneously the timeout may happen: + +10013000.sdhci: mxcmci_watchdog: read time out (status = 0x30004900) + +That often lead to file system corruption. + +Signed-off-by: Leonid Iziumtsev +Signed-off-by: Vinod Koul +Cc: stable@vger.kernel.org +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/dma/imx-dma.c | 8 ++++---- + 1 file changed, 4 insertions(+), 4 deletions(-) + +--- a/drivers/dma/imx-dma.c ++++ b/drivers/dma/imx-dma.c +@@ -624,7 +624,7 @@ static void imxdma_tasklet(unsigned long + { + struct imxdma_channel *imxdmac = (void *)data; + struct imxdma_engine *imxdma = imxdmac->imxdma; +- struct imxdma_desc *desc; ++ struct imxdma_desc *desc, *next_desc; + unsigned long flags; + + spin_lock_irqsave(&imxdma->lock, flags); +@@ -654,10 +654,10 @@ static void imxdma_tasklet(unsigned long + list_move_tail(imxdmac->ld_active.next, &imxdmac->ld_free); + + if (!list_empty(&imxdmac->ld_queue)) { +- desc = list_first_entry(&imxdmac->ld_queue, struct imxdma_desc, +- node); ++ next_desc = list_first_entry(&imxdmac->ld_queue, ++ struct imxdma_desc, node); + list_move_tail(imxdmac->ld_queue.next, &imxdmac->ld_active); +- if (imxdma_xfer_desc(desc) < 0) ++ if (imxdma_xfer_desc(next_desc) < 0) + dev_warn(imxdma->dev, "%s: channel: %d couldn't xfer desc\n", + __func__, imxdmac->channel); + } diff --git a/queue-3.18/kvm-nvmx-unconditionally-cancel-preemption-timer-in-free_nested-cve-2019-7221.patch b/queue-3.18/kvm-nvmx-unconditionally-cancel-preemption-timer-in-free_nested-cve-2019-7221.patch new file mode 100644 index 00000000000..ca77fa2c37d --- /dev/null +++ b/queue-3.18/kvm-nvmx-unconditionally-cancel-preemption-timer-in-free_nested-cve-2019-7221.patch @@ -0,0 +1,41 @@ +From ecec76885bcfe3294685dc363fd1273df0d5d65f Mon Sep 17 00:00:00 2001 +From: Peter Shier +Date: Thu, 11 Oct 2018 11:46:46 -0700 +Subject: KVM: nVMX: unconditionally cancel preemption timer in free_nested (CVE-2019-7221) + +From: Peter Shier + +commit ecec76885bcfe3294685dc363fd1273df0d5d65f upstream. + +Bugzilla: 1671904 + +There are multiple code paths where an hrtimer may have been started to +emulate an L1 VMX preemption timer that can result in a call to free_nested +without an intervening L2 exit where the hrtimer is normally +cancelled. Unconditionally cancel in free_nested to cover all cases. + +Embargoed until Feb 7th 2019. + +Signed-off-by: Peter Shier +Reported-by: Jim Mattson +Reviewed-by: Jim Mattson +Reported-by: Felix Wilhelm +Cc: stable@kernel.org +Message-Id: <20181011184646.154065-1-pshier@google.com> +Signed-off-by: Paolo Bonzini +Signed-off-by: Greg Kroah-Hartman + +--- + arch/x86/kvm/vmx.c | 1 + + 1 file changed, 1 insertion(+) + +--- a/arch/x86/kvm/vmx.c ++++ b/arch/x86/kvm/vmx.c +@@ -6295,6 +6295,7 @@ static void free_nested(struct vcpu_vmx + if (!vmx->nested.vmxon) + return; + ++ hrtimer_cancel(&vmx->nested.preemption_timer); + vmx->nested.vmxon = false; + nested_release_vmcs12(vmx); + if (enable_shadow_vmcs) diff --git a/queue-3.18/kvm-x86-work-around-leak-of-uninitialized-stack-contents-cve-2019-7222.patch b/queue-3.18/kvm-x86-work-around-leak-of-uninitialized-stack-contents-cve-2019-7222.patch new file mode 100644 index 00000000000..50569a7f20a --- /dev/null +++ b/queue-3.18/kvm-x86-work-around-leak-of-uninitialized-stack-contents-cve-2019-7222.patch @@ -0,0 +1,47 @@ +From 353c0956a618a07ba4bbe7ad00ff29fe70e8412a Mon Sep 17 00:00:00 2001 +From: Paolo Bonzini +Date: Tue, 29 Jan 2019 18:41:16 +0100 +Subject: KVM: x86: work around leak of uninitialized stack contents (CVE-2019-7222) + +From: Paolo Bonzini + +commit 353c0956a618a07ba4bbe7ad00ff29fe70e8412a upstream. + +Bugzilla: 1671930 + +Emulation of certain instructions (VMXON, VMCLEAR, VMPTRLD, VMWRITE with +memory operand, INVEPT, INVVPID) can incorrectly inject a page fault +when passed an operand that points to an MMIO address. The page fault +will use uninitialized kernel stack memory as the CR2 and error code. + +The right behavior would be to abort the VM with a KVM_EXIT_INTERNAL_ERROR +exit to userspace; however, it is not an easy fix, so for now just +ensure that the error code and CR2 are zero. + +Embargoed until Feb 7th 2019. + +Reported-by: Felix Wilhelm +Cc: stable@kernel.org +Signed-off-by: Paolo Bonzini +Signed-off-by: Greg Kroah-Hartman + +--- + arch/x86/kvm/x86.c | 7 +++++++ + 1 file changed, 7 insertions(+) + +--- a/arch/x86/kvm/x86.c ++++ b/arch/x86/kvm/x86.c +@@ -4279,6 +4279,13 @@ int kvm_read_guest_virt(struct x86_emula + struct kvm_vcpu *vcpu = emul_to_vcpu(ctxt); + u32 access = (kvm_x86_ops->get_cpl(vcpu) == 3) ? PFERR_USER_MASK : 0; + ++ /* ++ * FIXME: this should call handle_emulation_failure if X86EMUL_IO_NEEDED ++ * is returned, but our callers are not ready for that and they blindly ++ * call kvm_inject_page_fault. Ensure that they at least do not leak ++ * uninitialized kernel stack memory into cr2 and error code. ++ */ ++ memset(exception, 0, sizeof(*exception)); + return kvm_read_guest_virt_helper(addr, val, bytes, vcpu, access, + exception); + } diff --git a/queue-3.18/perf-core-don-t-warn-for-impossible-ring-buffer-sizes.patch b/queue-3.18/perf-core-don-t-warn-for-impossible-ring-buffer-sizes.patch new file mode 100644 index 00000000000..20407bf4ace --- /dev/null +++ b/queue-3.18/perf-core-don-t-warn-for-impossible-ring-buffer-sizes.patch @@ -0,0 +1,55 @@ +From 9dff0aa95a324e262ffb03f425d00e4751f3294e Mon Sep 17 00:00:00 2001 +From: Mark Rutland +Date: Thu, 10 Jan 2019 14:27:45 +0000 +Subject: perf/core: Don't WARN() for impossible ring-buffer sizes + +From: Mark Rutland + +commit 9dff0aa95a324e262ffb03f425d00e4751f3294e upstream. + +The perf tool uses /proc/sys/kernel/perf_event_mlock_kb to determine how +large its ringbuffer mmap should be. This can be configured to arbitrary +values, which can be larger than the maximum possible allocation from +kmalloc. + +When this is configured to a suitably large value (e.g. thanks to the +perf fuzzer), attempting to use perf record triggers a WARN_ON_ONCE() in +__alloc_pages_nodemask(): + + WARNING: CPU: 2 PID: 5666 at mm/page_alloc.c:4511 __alloc_pages_nodemask+0x3f8/0xbc8 + +Let's avoid this by checking that the requested allocation is possible +before calling kzalloc. + +Reported-by: Julien Thierry +Signed-off-by: Mark Rutland +Signed-off-by: Peter Zijlstra (Intel) +Reviewed-by: Julien Thierry +Cc: Alexander Shishkin +Cc: Arnaldo Carvalho de Melo +Cc: Jiri Olsa +Cc: Linus Torvalds +Cc: Namhyung Kim +Cc: Peter Zijlstra +Cc: Thomas Gleixner +Cc: +Link: https://lkml.kernel.org/r/20190110142745.25495-1-mark.rutland@arm.com +Signed-off-by: Ingo Molnar +Signed-off-by: Greg Kroah-Hartman + +--- + kernel/events/ring_buffer.c | 3 +++ + 1 file changed, 3 insertions(+) + +--- a/kernel/events/ring_buffer.c ++++ b/kernel/events/ring_buffer.c +@@ -282,6 +282,9 @@ struct ring_buffer *rb_alloc(int nr_page + size = sizeof(struct ring_buffer); + size += nr_pages * sizeof(void *); + ++ if (order_base_2(size) >= MAX_ORDER) ++ goto fail; ++ + rb = kzalloc(size, GFP_KERNEL); + if (!rb) + goto fail; diff --git a/queue-3.18/perf-tests-evsel-tp-sched-fix-bitwise-operator.patch b/queue-3.18/perf-tests-evsel-tp-sched-fix-bitwise-operator.patch new file mode 100644 index 00000000000..5477f52004a --- /dev/null +++ b/queue-3.18/perf-tests-evsel-tp-sched-fix-bitwise-operator.patch @@ -0,0 +1,43 @@ +From 489338a717a0dfbbd5a3fabccf172b78f0ac9015 Mon Sep 17 00:00:00 2001 +From: "Gustavo A. R. Silva" +Date: Tue, 22 Jan 2019 17:34:39 -0600 +Subject: perf tests evsel-tp-sched: Fix bitwise operator + +From: Gustavo A. R. Silva + +commit 489338a717a0dfbbd5a3fabccf172b78f0ac9015 upstream. + +Notice that the use of the bitwise OR operator '|' always leads to true +in this particular case, which seems a bit suspicious due to the context +in which this expression is being used. + +Fix this by using bitwise AND operator '&' instead. + +This bug was detected with the help of Coccinelle. + +Signed-off-by: Gustavo A. R. Silva +Acked-by: Jiri Olsa +Cc: Alexander Shishkin +Cc: Namhyung Kim +Cc: Peter Zijlstra +Cc: stable@vger.kernel.org +Fixes: 6a6cd11d4e57 ("perf test: Add test for the sched tracepoint format fields") +Link: http://lkml.kernel.org/r/20190122233439.GA5868@embeddedor +Signed-off-by: Arnaldo Carvalho de Melo +Signed-off-by: Greg Kroah-Hartman + +--- + tools/perf/tests/evsel-tp-sched.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/tools/perf/tests/evsel-tp-sched.c ++++ b/tools/perf/tests/evsel-tp-sched.c +@@ -15,7 +15,7 @@ static int perf_evsel__test_field(struct + return -1; + } + +- is_signed = !!(field->flags | FIELD_IS_SIGNED); ++ is_signed = !!(field->flags & FIELD_IS_SIGNED); + if (should_be_signed && !is_signed) { + pr_debug("%s: \"%s\" signedness(%d) is wrong, should be %d\n", + evsel->name, name, is_signed, should_be_signed); diff --git a/queue-3.18/perf-x86-intel-uncore-add-node-id-mask.patch b/queue-3.18/perf-x86-intel-uncore-add-node-id-mask.patch new file mode 100644 index 00000000000..0152da71f17 --- /dev/null +++ b/queue-3.18/perf-x86-intel-uncore-add-node-id-mask.patch @@ -0,0 +1,64 @@ +From 9e63a7894fd302082cf3627fe90844421a6cbe7f Mon Sep 17 00:00:00 2001 +From: Kan Liang +Date: Sun, 27 Jan 2019 06:53:14 -0800 +Subject: perf/x86/intel/uncore: Add Node ID mask + +From: Kan Liang + +commit 9e63a7894fd302082cf3627fe90844421a6cbe7f upstream. + +Some PCI uncore PMUs cannot be registered on an 8-socket system (HPE +Superdome Flex). + +To understand which Socket the PCI uncore PMUs belongs to, perf retrieves +the local Node ID of the uncore device from CPUNODEID(0xC0) of the PCI +configuration space, and the mapping between Socket ID and Node ID from +GIDNIDMAP(0xD4). The Socket ID can be calculated accordingly. + +The local Node ID is only available at bit 2:0, but current code doesn't +mask it. If a BIOS doesn't clear the rest of the bits, an incorrect Node ID +will be fetched. + +Filter the Node ID by adding a mask. + +Reported-by: Song Liu +Tested-by: Song Liu +Signed-off-by: Kan Liang +Signed-off-by: Peter Zijlstra (Intel) +Cc: Alexander Shishkin +Cc: Arnaldo Carvalho de Melo +Cc: Jiri Olsa +Cc: Linus Torvalds +Cc: Peter Zijlstra +Cc: Thomas Gleixner +Cc: # v3.7+ +Fixes: 7c94ee2e0917 ("perf/x86: Add Intel Nehalem and Sandy Bridge-EP uncore support") +Link: https://lkml.kernel.org/r/1548600794-33162-1-git-send-email-kan.liang@linux.intel.com +Signed-off-by: Ingo Molnar +Signed-off-by: Greg Kroah-Hartman + + +--- + arch/x86/kernel/cpu/perf_event_intel_uncore_snbep.c | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +--- a/arch/x86/kernel/cpu/perf_event_intel_uncore_snbep.c ++++ b/arch/x86/kernel/cpu/perf_event_intel_uncore_snbep.c +@@ -1077,6 +1077,8 @@ static struct pci_driver snbep_uncore_pc + .id_table = snbep_uncore_pci_ids, + }; + ++#define NODE_ID_MASK 0x7 ++ + /* + * build pci bus to socket mapping + */ +@@ -1097,7 +1099,7 @@ static int snbep_pci2phy_map_init(int de + err = pci_read_config_dword(ubox_dev, 0x40, &config); + if (err) + break; +- nodeid = config; ++ nodeid = config & NODE_ID_MASK; + /* get the Node ID mapping */ + err = pci_read_config_dword(ubox_dev, 0x54, &config); + if (err) diff --git a/queue-3.18/scsi-aic94xx-fix-module-loading.patch b/queue-3.18/scsi-aic94xx-fix-module-loading.patch new file mode 100644 index 00000000000..7e4e08133f5 --- /dev/null +++ b/queue-3.18/scsi-aic94xx-fix-module-loading.patch @@ -0,0 +1,65 @@ +From 42caa0edabd6a0a392ec36a5f0943924e4954311 Mon Sep 17 00:00:00 2001 +From: James Bottomley +Date: Wed, 30 Jan 2019 16:42:12 -0800 +Subject: scsi: aic94xx: fix module loading + +From: James Bottomley + +commit 42caa0edabd6a0a392ec36a5f0943924e4954311 upstream. + +The aic94xx driver is currently failing to load with errors like + +sysfs: cannot create duplicate filename '/devices/pci0000:00/0000:00:03.0/0000:02:00.3/0000:07:02.0/revision' + +Because the PCI code had recently added a file named 'revision' to every +PCI device. Fix this by renaming the aic94xx revision file to +aic_revision. This is safe to do for us because as far as I can tell, +there's nothing in userspace relying on the current aic94xx revision file +so it can be renamed without breaking anything. + +Fixes: 702ed3be1b1b (PCI: Create revision file in sysfs) +Cc: stable@vger.kernel.org +Signed-off-by: James Bottomley +Signed-off-by: Martin K. Petersen +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/scsi/aic94xx/aic94xx_init.c | 8 ++++---- + 1 file changed, 4 insertions(+), 4 deletions(-) + +--- a/drivers/scsi/aic94xx/aic94xx_init.c ++++ b/drivers/scsi/aic94xx/aic94xx_init.c +@@ -294,7 +294,7 @@ static ssize_t asd_show_dev_rev(struct d + return snprintf(buf, PAGE_SIZE, "%s\n", + asd_dev_rev[asd_ha->revision_id]); + } +-static DEVICE_ATTR(revision, S_IRUGO, asd_show_dev_rev, NULL); ++static DEVICE_ATTR(aic_revision, S_IRUGO, asd_show_dev_rev, NULL); + + static ssize_t asd_show_dev_bios_build(struct device *dev, + struct device_attribute *attr,char *buf) +@@ -491,7 +491,7 @@ static int asd_create_dev_attrs(struct a + { + int err; + +- err = device_create_file(&asd_ha->pcidev->dev, &dev_attr_revision); ++ err = device_create_file(&asd_ha->pcidev->dev, &dev_attr_aic_revision); + if (err) + return err; + +@@ -513,13 +513,13 @@ err_update_bios: + err_biosb: + device_remove_file(&asd_ha->pcidev->dev, &dev_attr_bios_build); + err_rev: +- device_remove_file(&asd_ha->pcidev->dev, &dev_attr_revision); ++ device_remove_file(&asd_ha->pcidev->dev, &dev_attr_aic_revision); + return err; + } + + static void asd_remove_dev_attrs(struct asd_ha_struct *asd_ha) + { +- device_remove_file(&asd_ha->pcidev->dev, &dev_attr_revision); ++ device_remove_file(&asd_ha->pcidev->dev, &dev_attr_aic_revision); + device_remove_file(&asd_ha->pcidev->dev, &dev_attr_bios_build); + device_remove_file(&asd_ha->pcidev->dev, &dev_attr_pcba_sn); + device_remove_file(&asd_ha->pcidev->dev, &dev_attr_update_bios); diff --git a/queue-3.18/series b/queue-3.18/series index f446e9fa196..64663c2bccd 100644 --- a/queue-3.18/series +++ b/queue-3.18/series @@ -67,3 +67,12 @@ alsa-compress-fix-stop-handling-on-compressed-capture-streams.patch fuse-call-pipe_buf_release-under-pipe-lock.patch fuse-decrement-nr_writeback_temp-on-the-right-page.patch fuse-handle-zero-sized-retrieve-correctly.patch +dmaengine-imx-dma-fix-wrong-callback-invoke.patch +usb-phy-am335x-fix-race-condition-in-_probe.patch +usb-gadget-udc-net2272-fix-bitwise-and-boolean-operations.patch +scsi-aic94xx-fix-module-loading.patch +kvm-x86-work-around-leak-of-uninitialized-stack-contents-cve-2019-7222.patch +kvm-nvmx-unconditionally-cancel-preemption-timer-in-free_nested-cve-2019-7221.patch +perf-x86-intel-uncore-add-node-id-mask.patch +perf-core-don-t-warn-for-impossible-ring-buffer-sizes.patch +perf-tests-evsel-tp-sched-fix-bitwise-operator.patch diff --git a/queue-3.18/usb-gadget-udc-net2272-fix-bitwise-and-boolean-operations.patch b/queue-3.18/usb-gadget-udc-net2272-fix-bitwise-and-boolean-operations.patch new file mode 100644 index 00000000000..490c8ad8e09 --- /dev/null +++ b/queue-3.18/usb-gadget-udc-net2272-fix-bitwise-and-boolean-operations.patch @@ -0,0 +1,43 @@ +From 07c69f1148da7de3978686d3af9263325d9d60bd Mon Sep 17 00:00:00 2001 +From: "Gustavo A. R. Silva" +Date: Tue, 22 Jan 2019 15:28:08 -0600 +Subject: usb: gadget: udc: net2272: Fix bitwise and boolean operations + +From: Gustavo A. R. Silva + +commit 07c69f1148da7de3978686d3af9263325d9d60bd upstream. + +(!x & y) strikes again. + +Fix bitwise and boolean operations by enclosing the expression: + + intcsr & (1 << NET2272_PCI_IRQ) + +in parentheses, before applying the boolean operator '!'. + +Notice that this code has been there since 2011. So, it would +be helpful if someone can double-check this. + +This issue was detected with the help of Coccinelle. + +Fixes: ceb80363b2ec ("USB: net2272: driver for PLX NET2272 USB device controller") +Cc: stable@vger.kernel.org +Signed-off-by: Gustavo A. R. Silva +Signed-off-by: Felipe Balbi +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/usb/gadget/udc/net2272.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/drivers/usb/gadget/udc/net2272.c ++++ b/drivers/usb/gadget/udc/net2272.c +@@ -2072,7 +2072,7 @@ static irqreturn_t net2272_irq(int irq, + #if defined(PLX_PCI_RDK2) + /* see if PCI int for us by checking irqstat */ + intcsr = readl(dev->rdk2.fpga_base_addr + RDK2_IRQSTAT); +- if (!intcsr & (1 << NET2272_PCI_IRQ)) { ++ if (!(intcsr & (1 << NET2272_PCI_IRQ))) { + spin_unlock(&dev->lock); + return IRQ_NONE; + } diff --git a/queue-3.18/usb-phy-am335x-fix-race-condition-in-_probe.patch b/queue-3.18/usb-phy-am335x-fix-race-condition-in-_probe.patch new file mode 100644 index 00000000000..7d4873bae08 --- /dev/null +++ b/queue-3.18/usb-phy-am335x-fix-race-condition-in-_probe.patch @@ -0,0 +1,45 @@ +From a53469a68eb886e84dd8b69a1458a623d3591793 Mon Sep 17 00:00:00 2001 +From: Bin Liu +Date: Wed, 16 Jan 2019 11:54:07 -0600 +Subject: usb: phy: am335x: fix race condition in _probe + +From: Bin Liu + +commit a53469a68eb886e84dd8b69a1458a623d3591793 upstream. + +power off the phy should be done before populate the phy. Otherwise, +am335x_init() could be called by the phy owner to power on the phy first, +then am335x_phy_probe() turns off the phy again without the caller knowing +it. + +Fixes: 2fc711d76352 ("usb: phy: am335x: Enable USB remote wakeup using PHY wakeup") +Cc: stable@vger.kernel.org # v3.18+ +Signed-off-by: Bin Liu +Signed-off-by: Felipe Balbi +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/usb/phy/phy-am335x.c | 5 +---- + 1 file changed, 1 insertion(+), 4 deletions(-) + +--- a/drivers/usb/phy/phy-am335x.c ++++ b/drivers/usb/phy/phy-am335x.c +@@ -56,9 +56,6 @@ static int am335x_phy_probe(struct platf + if (ret) + return ret; + +- ret = usb_add_phy_dev(&am_phy->usb_phy_gen.phy); +- if (ret) +- return ret; + am_phy->usb_phy_gen.phy.init = am335x_init; + am_phy->usb_phy_gen.phy.shutdown = am335x_shutdown; + +@@ -77,7 +74,7 @@ static int am335x_phy_probe(struct platf + device_set_wakeup_enable(dev, false); + phy_ctrl_power(am_phy->phy_ctrl, am_phy->id, false); + +- return 0; ++ return usb_add_phy_dev(&am_phy->usb_phy_gen.phy); + } + + static int am335x_phy_remove(struct platform_device *pdev)