45 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			45 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| commit 5b7506198a6872764a51e32363e219916e1e592e
 | |
| Author: Minwoo Im <minwoo.im@samsung.com>
 | |
| Date:   Wed Apr 24 01:48:58 2019 +0100
 | |
| 
 | |
|     ioctl: Fix wrong return case of get_property
 | |
|     
 | |
|     If get_property_helper() succeeds in the first time, and then fails in
 | |
|     the next time, then the ret value will not be updated to an error value.
 | |
|     This patch removes 'ret' variable to make 'err' to return being updated
 | |
|     everytime get_property_helper() invoked.
 | |
|     
 | |
|     Signed-off-by: Minwoo Im <minwoo.im@samsung.com>
 | |
| 
 | |
| diff --git a/nvme-ioctl.c b/nvme-ioctl.c
 | |
| index 16fdc66..75bf9fa 100644
 | |
| --- a/nvme-ioctl.c
 | |
| +++ b/nvme-ioctl.c
 | |
| @@ -612,7 +612,7 @@ int nvme_get_property(int fd, int offset, uint64_t *value)
 | |
|  int nvme_get_properties(int fd, void **pbar)
 | |
|  {
 | |
|  	int offset, advance;
 | |
| -	int err, ret = -EINVAL;
 | |
| +	int err;
 | |
|  	int size = getpagesize();
 | |
|  
 | |
|  	*pbar = malloc(size);
 | |
| @@ -624,15 +624,13 @@ int nvme_get_properties(int fd, void **pbar)
 | |
|  	memset(*pbar, 0xff, size);
 | |
|  	for (offset = NVME_REG_CAP; offset <= NVME_REG_CMBSZ; offset += advance) {
 | |
|  		err = get_property_helper(fd, offset, *pbar + offset, &advance);
 | |
| -		if (!err)
 | |
| -			ret = 0;
 | |
| -		else {
 | |
| +		if (err) {
 | |
|  			free(*pbar);
 | |
|  			break;
 | |
|  		}
 | |
|  	}
 | |
|  
 | |
| -	return ret;
 | |
| +	return err;
 | |
|  }
 | |
|  
 | |
|  int nvme_set_property(int fd, int offset, int value)
 |