Commit b08665fe authored by Myeonghun Pak's avatar Myeonghun Pak Committed by Jiri Kosina
Browse files

HID: google: hammer: stop hardware on devres action failure



hammer_probe() starts the HID hardware before registering the devres
action that stops it. If devm_add_action() fails, probe returns an
error with the hardware still started because the cleanup action was
never registered and the driver's remove callback is not called after a
failed probe.

Use devm_add_action_or_reset() so the stop action runs immediately on
registration failure while preserving the existing devres-managed cleanup
path for later probe failures and remove.

Signed-off-by: default avatarMyeonghun Pak <mhun512@gmail.com>
Signed-off-by: default avatarJiri Kosina <jkosina@suse.com>
parent 1654e533
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -496,7 +496,7 @@ static int hammer_probe(struct hid_device *hdev,
	if (error)
		return error;

	error = devm_add_action(&hdev->dev, hammer_stop, hdev);
	error = devm_add_action_or_reset(&hdev->dev, hammer_stop, hdev);
	if (error)
		return error;