Re: [PATCH 1/3] staging: vme_user: return retval in vme_user_ioctl

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



----- Original Message -----
> From: "Martyn Welch" <martyn@xxxxxxxxxxxx>
> Subject: Re: [PATCH 1/3] staging: vme_user: return retval in vme_user_ioctl

> On Fri, Sep 02, 2016 at 04:16:48PM -0500, Aaron Sierra wrote:
>> Update each case to set retval and return that value at the end of the
>> function. This also replaces most case statement returns with breaks
>> and collapses some whitespace.
>> 
> 
> Sorry if I'm being dense, but is there an advantage to doing it this way?
> 
> This seems to be adding churn for no discernible gain.
> 
>> Signed-off-by: Aaron Sierra <asierra@xxxxxxxxxxx>
>> ---
>>  drivers/staging/vme/devices/vme_user.c | 22 ++++++++++------------
>>  1 file changed, 10 insertions(+), 12 deletions(-)
>> 
>> diff --git a/drivers/staging/vme/devices/vme_user.c
>> b/drivers/staging/vme/devices/vme_user.c
>> index fc660bd..5aa53c4 100644
>> --- a/drivers/staging/vme/devices/vme_user.c
>> +++ b/drivers/staging/vme/devices/vme_user.c
>> @@ -299,7 +299,7 @@ static int vme_user_ioctl(struct inode *inode, struct file
>> *file,
>>  	struct vme_irq_id irq_req;
>>  	unsigned long copied;
>>  	unsigned int minor = MINOR(inode->i_rdev);
>> -	int retval;
>> +	int retval = -EINVAL;
>>  	dma_addr_t pci_addr;
>>  	void __user *argp = (void __user *)arg;
>>  
>> @@ -314,9 +314,10 @@ static int vme_user_ioctl(struct inode *inode, struct file
>> *file,
>>  				return -EFAULT;
>>  			}
>>  
>> -			return vme_irq_generate(vme_user_bridge,
>> +			retval = vme_irq_generate(vme_user_bridge,
>>  						  irq_req.level,
>>  						  irq_req.statid);
>> +			break;
>>  		}
>>  		break;
>>  	case MASTER_MINOR:
>> @@ -337,13 +338,11 @@ static int vme_user_ioctl(struct inode *inode, struct file
>> *file,
>>  					      sizeof(master));
>>  			if (copied) {
>>  				pr_warn("Partial copy to userspace\n");
>> -				return -EFAULT;
>> +				retval = -EFAULT;
>>  			}
>>  
>> -			return retval;
>> -
>> +			break;
>>  		case VME_SET_MASTER:
>> -
>>  			if (image[minor].mmap_count != 0) {
>>  				pr_warn("Can't adjust mapped window\n");
>>  				return -EPERM;
>> @@ -358,7 +357,7 @@ static int vme_user_ioctl(struct inode *inode, struct file
>> *file,
>>  			/* XXX	We do not want to push aspace, cycle and width
>>  			 *	to userspace as they are
>>  			 */
>> -			return vme_master_set(image[minor].resource,
>> +			retval = vme_master_set(image[minor].resource,
>>  				master.enable, master.vme_addr, master.size,
>>  				master.aspace, master.cycle, master.dwidth);
>>  
>> @@ -382,11 +381,10 @@ static int vme_user_ioctl(struct inode *inode, struct file
>> *file,
>>  					      sizeof(slave));
>>  			if (copied) {
>>  				pr_warn("Partial copy to userspace\n");
>> -				return -EFAULT;
>> +				retval = -EFAULT;
>>  			}
>>  
>> -			return retval;
>> -
>> +			break;
>>  		case VME_SET_SLAVE:
>>  
>>  			copied = copy_from_user(&slave, argp, sizeof(slave));
>> @@ -398,7 +396,7 @@ static int vme_user_ioctl(struct inode *inode, struct file
>> *file,
>>  			/* XXX	We do not want to push aspace, cycle and width
>>  			 *	to userspace as they are
>>  			 */
>> -			return vme_slave_set(image[minor].resource,
>> +			retval = vme_slave_set(image[minor].resource,
>>  				slave.enable, slave.vme_addr, slave.size,
>>  				image[minor].pci_buf, slave.aspace,
>>  				slave.cycle);
>> @@ -408,7 +406,7 @@ static int vme_user_ioctl(struct inode *inode, struct file
>> *file,
>>  		break;
>>  	}
>>  
>> -	return -EINVAL;
>> +	return retval;

Martyn,
This last change is where the slippery slope began. With this change, the
additions I make to VME_SET_SLAVE in my "3/3" patch can use a break instead
of adding another return statement, which feels cleaner to me.

Also, this patch makes the breaks in VME_SET_MASTER and VME_SET_SLAVE do
something meaningful.

-Aaron S.

>>  }
>>  
>>  static long
>> --
> > 1.9.1
_______________________________________________
devel mailing list
devel@xxxxxxxxxxxxxxxxxxxxxx
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel



[Index of Archives]     [Linux Driver Backports]     [DMA Engine]     [Linux GPIO]     [Linux SPI]     [Video for Linux]     [Linux USB Devel]     [Linux Coverity]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]
  Powered by Linux