diff options
Diffstat (limited to 'drivers/gpio/gpiolib.c')
| -rw-r--r-- | drivers/gpio/gpiolib.c | 10 | 
1 files changed, 7 insertions, 3 deletions
diff --git a/drivers/gpio/gpiolib.c b/drivers/gpio/gpiolib.c index 5d6c71edc73..1c8d9e3380e 100644 --- a/drivers/gpio/gpiolib.c +++ b/drivers/gpio/gpiolib.c @@ -623,9 +623,11 @@ static ssize_t export_store(struct class *class,  	 */  	status = gpio_request(gpio, "sysfs"); -	if (status < 0) +	if (status < 0) { +		if (status == -EPROBE_DEFER) +			status = -ENODEV;  		goto done; - +	}  	status = gpio_export(gpio, true);  	if (status < 0)  		gpio_free(gpio); @@ -1191,8 +1193,10 @@ int gpio_request(unsigned gpio, const char *label)  	spin_lock_irqsave(&gpio_lock, flags); -	if (!gpio_is_valid(gpio)) +	if (!gpio_is_valid(gpio)) { +		status = -EINVAL;  		goto done; +	}  	desc = &gpio_desc[gpio];  	chip = desc->chip;  	if (chip == NULL)  |