浏览代码

mstorage.c: fix the issue that _read_capacity() returns the wrong last valid address of storage medium

hphuang 5 年之前
父节点
当前提交
9d374f873c
共有 1 个文件被更改,包括 1 次插入1 次删除
  1. 1 1
      components/drivers/usb/usbdevice/class/mstorage.c

+ 1 - 1
components/drivers/usb/usbdevice/class/mstorage.c

@@ -426,7 +426,7 @@ static rt_size_t _read_capacity(ufunction_t func, ustorage_cbw_t cbw)
 
     data = (struct mstorage*)func->user_data;   
     buf = data->ep_in->buffer;    
-    sector_count = data->geometry.sector_count;
+    sector_count = data->geometry.sector_count - 1; /* Last Logical Block Address */
     sector_size = data->geometry.bytes_per_sector;
 
     buf[0] = sector_count >> 24;