[uaccess] Remove redundant read_user()

Signed-off-by: Michael Brown <mcb30@ipxe.org>
This commit is contained in:
Michael Brown
2025-04-21 18:55:30 +01:00
parent 050df80bbc
commit 04d0b2fdf9
4 changed files with 11 additions and 25 deletions

View File

@@ -148,7 +148,7 @@ pxenv_file_select ( struct s_PXENV_FILE_SELECT *file_select ) {
* *
*/ */
static PXENV_EXIT_t pxenv_file_read ( struct s_PXENV_FILE_READ *file_read ) { static PXENV_EXIT_t pxenv_file_read ( struct s_PXENV_FILE_READ *file_read ) {
userptr_t buffer; void *buffer;
ssize_t len; ssize_t len;
DBG ( "PXENV_FILE_READ %d to %04x:%04x+%04x", file_read->FileHandle, DBG ( "PXENV_FILE_READ %d to %04x:%04x+%04x", file_read->FileHandle,
@@ -157,8 +157,8 @@ static PXENV_EXIT_t pxenv_file_read ( struct s_PXENV_FILE_READ *file_read ) {
buffer = real_to_virt ( file_read->Buffer.segment, buffer = real_to_virt ( file_read->Buffer.segment,
file_read->Buffer.offset ); file_read->Buffer.offset );
if ( ( len = read_user ( file_read->FileHandle, buffer, 0, if ( ( len = read ( file_read->FileHandle, buffer,
file_read->BufferSize ) ) < 0 ) { file_read->BufferSize ) ) < 0 ) {
file_read->Status = PXENV_STATUS ( len ); file_read->Status = PXENV_STATUS ( len );
return PXENV_EXIT_FAILURE; return PXENV_EXIT_FAILURE;
} }

View File

@@ -410,7 +410,8 @@ static __asmcall __used void int22 ( struct i386_all_regs *ix86 ) {
int len = ix86->regs.cx * COMBOOT_FILE_BLOCKSZ; int len = ix86->regs.cx * COMBOOT_FILE_BLOCKSZ;
int rc; int rc;
fd_set fds; fd_set fds;
userptr_t buf = real_to_virt ( ix86->segs.es, ix86->regs.bx ); void *buf = real_to_virt ( ix86->segs.es,
ix86->regs.bx );
/* Wait for data ready to read */ /* Wait for data ready to read */
FD_ZERO ( &fds ); FD_ZERO ( &fds );
@@ -418,7 +419,7 @@ static __asmcall __used void int22 ( struct i386_all_regs *ix86 ) {
select ( &fds, 1 ); select ( &fds, 1 );
rc = read_user ( fd, buf, 0, len ); rc = read ( fd, buf, len );
if ( rc < 0 ) { if ( rc < 0 ) {
DBG ( "COMBOOT: read failed\n" ); DBG ( "COMBOOT: read failed\n" );
ix86->regs.si = 0; ix86->regs.si = 0;

View File

@@ -254,15 +254,14 @@ int select ( fd_set *readfds, int wait ) {
/** /**
* Read data from file * Read data from file
* *
* @v buffer Data buffer * @v buf Data buffer
* @v offset Starting offset within data buffer * @v max_len Maximum length to read
* @v len Maximum length to read
* @ret len Actual length read, or negative error number * @ret len Actual length read, or negative error number
* *
* This call is non-blocking; if no data is available to read then * This call is non-blocking; if no data is available to read then
* -EWOULDBLOCK will be returned. * -EWOULDBLOCK will be returned.
*/ */
ssize_t read_user ( int fd, userptr_t buffer, off_t offset, size_t max_len ) { ssize_t read ( int fd, void *buf, size_t max_len ) {
struct posix_file *file; struct posix_file *file;
struct io_buffer *iobuf; struct io_buffer *iobuf;
size_t len; size_t len;
@@ -281,7 +280,7 @@ ssize_t read_user ( int fd, userptr_t buffer, off_t offset, size_t max_len ) {
len = iob_len ( iobuf ); len = iob_len ( iobuf );
if ( len > max_len ) if ( len > max_len )
len = max_len; len = max_len;
copy_to_user ( buffer, offset, iobuf->data, len ); memcpy ( buf, iobuf->data, len );
iob_pull ( iobuf, len ); iob_pull ( iobuf, len );
if ( ! iob_len ( iobuf ) ) { if ( ! iob_len ( iobuf ) ) {
list_del ( &iobuf->list ); list_del ( &iobuf->list );

View File

@@ -10,7 +10,6 @@
FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL ); FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL );
#include <stdint.h> #include <stdint.h>
#include <ipxe/uaccess.h>
/** Minimum file descriptor that will ever be allocated */ /** Minimum file descriptor that will ever be allocated */
#define POSIX_FD_MIN ( 1 ) #define POSIX_FD_MIN ( 1 )
@@ -22,8 +21,7 @@ FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL );
typedef uint32_t fd_set; typedef uint32_t fd_set;
extern int open ( const char *uri_string ); extern int open ( const char *uri_string );
extern ssize_t read_user ( int fd, userptr_t buffer, extern ssize_t read ( int fd, void *buf, size_t len );
off_t offset, size_t len );
extern int select ( fd_set *readfds, int wait ); extern int select ( fd_set *readfds, int wait );
extern ssize_t fsize ( int fd ); extern ssize_t fsize ( int fd );
extern int close ( int fd ); extern int close ( int fd );
@@ -72,16 +70,4 @@ FD_ISSET ( int fd, fd_set *set ) {
return ( *set & ( 1 << fd ) ); return ( *set & ( 1 << fd ) );
} }
/**
* Read data from file
*
* @v fd File descriptor
* @v buf Data buffer
* @v len Maximum length to read
* @ret len Actual length read, or negative error number
*/
static inline ssize_t read ( int fd, void *buf, size_t len ) {
return read_user ( fd, virt_to_user ( buf ), 0, len );
}
#endif /* _IPXE_POSIX_IO_H */ #endif /* _IPXE_POSIX_IO_H */