diff --git a/common/usb_storage.c b/common/usb_storage.c
index a57570b73f3d0a2cafd7f6d4d9093dbc67d18140..a91b1c0d2f925eed06881d14ab85afe398eac423 100644
--- a/common/usb_storage.c
+++ b/common/usb_storage.c
@@ -964,7 +964,7 @@ static void usb_stor_set_max_xfer_blk(struct usb_device *udev,
 		blk = 20;
 	} else {
 		if (size > USHRT_MAX * 512)
-			blk = USHRT_MAX;
+			size = USHRT_MAX * 512;
 		blk = size / 512;
 	}
 #endif