UPSTREAM: HID: steam: use hid_device.driver_data instead of hid_set_drvdata()

When creating the low-level hidraw device, the reference to steam_device
was stored using hid_set_drvdata(). But this value is not guaranteed to
be kept when set before calling probe. If this pointer is reset, it
crashes when opening the emulated hidraw device.

It looks like hid_set_drvdata() is for users "avobe" this hid_device,
while hid_device.driver_data it for users "below" this one.

In this case, we are creating a virtual hidraw device, so we must use
hid_device.driver_data.

Signed-off-by: Rodrigo Rivas Costa <rodrigorivascosta@gmail.com>
Tested-by: Mariusz Ceier <mceier+kernel@gmail.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>

(cherry picked from commit 4bff980f920693693d7a529c06a1bd1e7f77603a
("HID: steam: use hid_device.driver_data instead of hid_set_drvdata()")
https://github.com/torvalds/linux/commit/4bff980f920693693d7a529c06a1bd1e7f77603a

Change-Id: I650db1803c53bc055be4574b9190df57b6b8aad3
Signed-Off-By: Siarhei Vishniakou <svv@google.com>
Bug: 136263708
Test: connect steam controller
1 file changed