summaryrefslogtreecommitdiffstats
path: root/src/drivers/usb/usbblk.c
diff options
context:
space:
mode:
authorSimon Rettberg2026-01-28 12:53:53 +0100
committerSimon Rettberg2026-01-28 12:53:53 +0100
commit8e82785c584dc13e20f9229decb95bd17bbe9cd1 (patch)
treea8b359e59196be5b2e3862bed189107f4bc9975f /src/drivers/usb/usbblk.c
parentMerge branch 'master' into openslx (diff)
parent[prefix] Make unlzma.S compatible with 386 class CPUs (diff)
downloadipxe-openslx.tar.gz
ipxe-openslx.tar.xz
ipxe-openslx.zip
Merge branch 'master' into openslxopenslx
Diffstat (limited to 'src/drivers/usb/usbblk.c')
-rw-r--r--src/drivers/usb/usbblk.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/src/drivers/usb/usbblk.c b/src/drivers/usb/usbblk.c
index 5a086d3f8..b42c70645 100644
--- a/src/drivers/usb/usbblk.c
+++ b/src/drivers/usb/usbblk.c
@@ -22,9 +22,11 @@
*/
FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL );
+FILE_SECBOOT ( PERMITTED );
#include <stdint.h>
#include <stdlib.h>
+#include <string.h>
#include <errno.h>
#include <ipxe/usb.h>
#include <ipxe/scsi.h>
@@ -205,7 +207,7 @@ static int usbblk_out_data ( struct usbblk_device *usbblk ) {
/* Calculate length */
assert ( cmd->tag );
- assert ( cmd->scsi.data_out != UNULL );
+ assert ( cmd->scsi.data_out != NULL );
assert ( cmd->offset < cmd->scsi.data_out_len );
len = ( cmd->scsi.data_out_len - cmd->offset );
if ( len > USBBLK_MAX_LEN )
@@ -220,8 +222,8 @@ static int usbblk_out_data ( struct usbblk_device *usbblk ) {
}
/* Populate I/O buffer */
- copy_from_user ( iob_put ( iobuf, len ), cmd->scsi.data_out,
- cmd->offset, len );
+ memcpy ( iob_put ( iobuf, len ),
+ ( cmd->scsi.data_out + cmd->offset ), len );
/* Send data */
if ( ( rc = usb_stream ( &usbblk->out, iobuf, 0 ) ) != 0 ) {
@@ -332,12 +334,12 @@ static int usbblk_in_data ( struct usbblk_device *usbblk, const void *data,
/* Sanity checks */
assert ( cmd->tag );
- assert ( cmd->scsi.data_in != UNULL );
+ assert ( cmd->scsi.data_in != NULL );
assert ( cmd->offset <= cmd->scsi.data_in_len );
assert ( len <= ( cmd->scsi.data_in_len - cmd->offset ) );
/* Store data */
- copy_to_user ( cmd->scsi.data_in, cmd->offset, data, len );
+ memcpy ( ( cmd->scsi.data_in + cmd->offset ), data, len );
cmd->offset += len;
return 0;