This patch fixes a regression introduced in bd28ce00. It occurs when attaching a Sony SIXAXIS controller: input: Sony PLAYSTATION(R)3 Controller as /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1:1.0/input/input9 sony 0003:054C:0268.0006: input,hiddev96,hidraw0: USB HID v1.11 Joystick [Sony PLAYSTATION(R)3 Controller] on usb-0000:00:1d.0-1/input0 sony: probe of 0003:054C:0268.0006 failed with error 17 The reason for this nasty behavior is a wrong return value emitted by sony_set_operational(). Carry on playing with your Christmas gifts, Richard Signed-off-by: Richard Nauber <Richard.Nauber@xxxxxx> --- diff --git a/drivers/hid/hid-sony.c b/drivers/hid/hid-sony.c index 86e563b..e807d2f 100644 --- a/drivers/hid/hid-sony.c +++ b/drivers/hid/hid-sony.c @@ -65,12 +65,15 @@ static int sony_set_operational(struct hid_device *hdev) USB_RECIP_INTERFACE, (3 << 8) | 0xf2, ifnum, buf, 17, USB_CTRL_GET_TIMEOUT); - if (ret < 0) - dev_err(&hdev->dev, "can't set operational mode\n"); kfree(buf); - return ret; + if (ret <= 0) { + dev_err(&hdev->dev, "can't set operational mode\n"); + return (ret ? ret : -EIO ); + } + + return 0; } static int sony_probe(struct hid_device *hdev, const struct hid_device_id *id) -- -- To unsubscribe from this list: send the line "unsubscribe linux-input" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html