Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Revert "usb: gadget: tegra-xudc: Fix error check in tegra_xudc_powerdomain_init()"

This reverts commit f08aa7c80dac27ee00fa6827f447597d2fba5465.

The reverted commit was based on static analysis and a misunderstanding
of how PTR_ERR() and NULLs are supposed to work. When a function
returns both pointer errors and NULL then normally the NULL means
"continue operating without a feature because it was deliberately
turned off". The NULL should not be treated as a failure. If a driver
cannot work when that feature is disabled then the KConfig should
enforce that the function cannot return NULL. We should not need to
test for it.

In this driver, the bug means that probe cannot succeed when CONFIG_PM
is disabled.

Signed-off-by: Dan Carpenter <dan.carpenter@linaro.org>
Fixes: f08aa7c80dac ("usb: gadget: tegra-xudc: Fix error check in tegra_xudc_powerdomain_init()")
Cc: stable <stable@kernel.org>
Link: https://lore.kernel.org/r/ZKQoBa84U/ykEh3C@moroto
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

authored by

Dan Carpenter and committed by
Greg Kroah-Hartman
a8291be6 288b4fa1

+4 -4
+4 -4
drivers/usb/gadget/udc/tegra-xudc.c
··· 3718 3718 int err; 3719 3719 3720 3720 xudc->genpd_dev_device = dev_pm_domain_attach_by_name(dev, "dev"); 3721 - if (IS_ERR_OR_NULL(xudc->genpd_dev_device)) { 3722 - err = PTR_ERR(xudc->genpd_dev_device) ? : -ENODATA; 3721 + if (IS_ERR(xudc->genpd_dev_device)) { 3722 + err = PTR_ERR(xudc->genpd_dev_device); 3723 3723 dev_err(dev, "failed to get device power domain: %d\n", err); 3724 3724 return err; 3725 3725 } 3726 3726 3727 3727 xudc->genpd_dev_ss = dev_pm_domain_attach_by_name(dev, "ss"); 3728 - if (IS_ERR_OR_NULL(xudc->genpd_dev_ss)) { 3729 - err = PTR_ERR(xudc->genpd_dev_ss) ? : -ENODATA; 3728 + if (IS_ERR(xudc->genpd_dev_ss)) { 3729 + err = PTR_ERR(xudc->genpd_dev_ss); 3730 3730 dev_err(dev, "failed to get SuperSpeed power domain: %d\n", err); 3731 3731 return err; 3732 3732 }