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: xhci: tegra: Fix error check"

This reverts commit 18fc7c435be3f17ea26a21b2e2312fcb9088e01f.

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 code, the patch means that certain tegra_xusb_probe() will
fail if the firmware supports power-domains but CONFIG_PM is disabled.

Signed-off-by: Dan Carpenter <dan.carpenter@linaro.org>
Fixes: 18fc7c435be3 ("usb: xhci: tegra: Fix error check")
Cc: stable <stable@kernel.org>
Link: https://lore.kernel.org/r/8baace8d-fb4b-41a4-ad5f-848ae643a23b@moroto.mountain
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

authored by

Dan Carpenter and committed by
Greg Kroah-Hartman
288b4fa1 83e30f2b

+4 -4
+4 -4
drivers/usb/host/xhci-tegra.c
··· 1145 1145 int err; 1146 1146 1147 1147 tegra->genpd_dev_host = dev_pm_domain_attach_by_name(dev, "xusb_host"); 1148 - if (IS_ERR_OR_NULL(tegra->genpd_dev_host)) { 1149 - err = PTR_ERR(tegra->genpd_dev_host) ? : -ENODATA; 1148 + if (IS_ERR(tegra->genpd_dev_host)) { 1149 + err = PTR_ERR(tegra->genpd_dev_host); 1150 1150 dev_err(dev, "failed to get host pm-domain: %d\n", err); 1151 1151 return err; 1152 1152 } 1153 1153 1154 1154 tegra->genpd_dev_ss = dev_pm_domain_attach_by_name(dev, "xusb_ss"); 1155 - if (IS_ERR_OR_NULL(tegra->genpd_dev_ss)) { 1156 - err = PTR_ERR(tegra->genpd_dev_ss) ? : -ENODATA; 1155 + if (IS_ERR(tegra->genpd_dev_ss)) { 1156 + err = PTR_ERR(tegra->genpd_dev_ss); 1157 1157 dev_err(dev, "failed to get superspeed pm-domain: %d\n", err); 1158 1158 return err; 1159 1159 }