summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorsakumisu <[email protected]>2022-03-17 16:39:41 +0800
committersakumisu <[email protected]>2022-03-17 16:39:41 +0800
commit1526766816acd0ce5e3d2c5a3ddaf1b0f61b3f05 (patch)
treea1287f7cda6169d29452dc92fdcafb911236d75e
parentce5097f6b9c91e6e911101be29a51824ec2a073e (diff)
move buffer malloc in init
-rw-r--r--class/msc/usbd_msc.c13
1 files changed, 8 insertions, 5 deletions
diff --git a/class/msc/usbd_msc.c b/class/msc/usbd_msc.c
index a92747f9..950b90af 100644
--- a/class/msc/usbd_msc.c
+++ b/class/msc/usbd_msc.c
@@ -73,15 +73,11 @@ static void usbd_msc_reset(void)
{
uint8_t *buf = NULL;
- if (usbd_msc_cfg.block_buffer == NULL) {
- usbd_msc_cfg.block_buffer = usb_iomalloc(usbd_msc_cfg.scsi_blk_size * sizeof(uint8_t));
- }
-
buf = usbd_msc_cfg.block_buffer;
memset((uint8_t *)&usbd_msc_cfg, 0, sizeof(struct usbd_msc_cfg_priv));
- usbd_msc_get_cap(0, &usbd_msc_cfg.scsi_blk_nbr, &usbd_msc_cfg.scsi_blk_size);
+ usbd_msc_get_cap(0, &usbd_msc_cfg.scsi_blk_nbr, &usbd_msc_cfg.scsi_blk_size);
usbd_msc_cfg.block_buffer = buf;
}
@@ -984,4 +980,11 @@ void usbd_msc_class_init(uint8_t out_ep, uint8_t in_ep)
usbd_interface_add_endpoint(&msc_intf, &mass_ep_data[0]);
usbd_interface_add_endpoint(&msc_intf, &mass_ep_data[1]);
+
+ memset((uint8_t *)&usbd_msc_cfg, 0, sizeof(struct usbd_msc_cfg_priv));
+
+ usbd_msc_get_cap(0, &usbd_msc_cfg.scsi_blk_nbr, &usbd_msc_cfg.scsi_blk_size);
+ if (usbd_msc_cfg.block_buffer == NULL) {
+ usbd_msc_cfg.block_buffer = usb_iomalloc(usbd_msc_cfg.scsi_blk_size * sizeof(uint8_t));
+ }
}