diff options
Diffstat (limited to 'drivers/hid/hid-input.c')
| -rw-r--r-- | drivers/hid/hid-input.c | 10 | 
1 files changed, 6 insertions, 4 deletions
diff --git a/drivers/hid/hid-input.c b/drivers/hid/hid-input.c index 945b8158ec4..4602d291c9b 100644 --- a/drivers/hid/hid-input.c +++ b/drivers/hid/hid-input.c @@ -1321,8 +1321,9 @@ int hidinput_connect(struct hid_device *hid, unsigned int force)  				 * UGCI) cram a lot of unrelated inputs into the  				 * same interface. */  				hidinput->report = report; -				if (drv->input_configured) -					drv->input_configured(hid, hidinput); +				if (drv->input_configured && +				    drv->input_configured(hid, hidinput)) +					goto out_cleanup;  				if (input_register_device(hidinput->input))  					goto out_cleanup;  				hidinput = NULL; @@ -1343,8 +1344,9 @@ int hidinput_connect(struct hid_device *hid, unsigned int force)  	}  	if (hidinput) { -		if (drv->input_configured) -			drv->input_configured(hid, hidinput); +		if (drv->input_configured && +		    drv->input_configured(hid, hidinput)) +			goto out_cleanup;  		if (input_register_device(hidinput->input))  			goto out_cleanup;  	}  |