diff options
| -rw-r--r-- | drivers/usb/mon/mon_bin.c | 5 | 
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/usb/mon/mon_bin.c b/drivers/usb/mon/mon_bin.c index c9de3f027aa..e06810aef2d 100644 --- a/drivers/usb/mon/mon_bin.c +++ b/drivers/usb/mon/mon_bin.c @@ -687,7 +687,10 @@ static ssize_t mon_bin_read(struct file *file, char __user *buf,  	}  	if (rp->b_read >= sizeof(struct mon_bin_hdr)) { -		step_len = min(nbytes, (size_t)ep->len_cap); +		step_len = ep->len_cap; +		step_len -= rp->b_read - sizeof(struct mon_bin_hdr); +		if (step_len > nbytes) +			step_len = nbytes;  		offset = rp->b_out + PKT_SIZE;  		offset += rp->b_read - sizeof(struct mon_bin_hdr);  		if (offset >= rp->b_size)  |