hid-lg did not check return values from the lg[N]_init() functions,
possibly trying to work with a device whose initialization has failed.

Signed-off-by: Michal Malý <[email protected]>
---
 drivers/hid/hid-lg.c | 11 +++++++----
 1 file changed, 7 insertions(+), 4 deletions(-)

diff --git a/drivers/hid/hid-lg.c b/drivers/hid/hid-lg.c
index b86c18e..c797781 100644
--- a/drivers/hid/hid-lg.c
+++ b/drivers/hid/hid-lg.c
@@ -712,13 +712,16 @@ static int lg_probe(struct hid_device *hdev, const struct 
hid_device_id *id)
        }
 
        if (drv_data->quirks & LG_FF)
-               lgff_init(hdev);
+               ret = lgff_init(hdev);
        if (drv_data->quirks & LG_FF2)
-               lg2ff_init(hdev);
+               ret = lg2ff_init(hdev);
        if (drv_data->quirks & LG_FF3)
-               lg3ff_init(hdev);
+               ret = lg3ff_init(hdev);
        if (drv_data->quirks & LG_FF4)
-               lg4ff_init(hdev);
+               ret = lg4ff_init(hdev);
+
+       if (ret)
+               goto err_free;
 
        return 0;
 err_free:
-- 
2.3.3

--
To unsubscribe from this list: send the line "unsubscribe linux-input" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to