]> git.ipfire.org Git - thirdparty/ipxe.git/commitdiff
[uaccess] Remove redundant read_user()
authorMichael Brown <mcb30@ipxe.org>
Mon, 21 Apr 2025 17:55:30 +0000 (18:55 +0100)
committerMichael Brown <mcb30@ipxe.org>
Mon, 21 Apr 2025 17:55:30 +0000 (18:55 +0100)
Signed-off-by: Michael Brown <mcb30@ipxe.org>
src/arch/x86/interface/pxe/pxe_file.c
src/arch/x86/interface/syslinux/comboot_call.c
src/core/posix_io.c
src/include/ipxe/posix_io.h

index 64bc335f2ed3eba2b1e9bd908f468efbe65bb759..6bb9f525f645fe197b734079d3fd205f828d4694 100644 (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 ) {
-       userptr_t buffer;
+       void *buffer;
        ssize_t len;
 
        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,
                                file_read->Buffer.offset );
-       if ( ( len = read_user ( file_read->FileHandle, buffer, 0,
-                               file_read->BufferSize ) ) < 0 ) {
+       if ( ( len = read ( file_read->FileHandle, buffer,
+                           file_read->BufferSize ) ) < 0 ) {
                file_read->Status = PXENV_STATUS ( len );
                return PXENV_EXIT_FAILURE;
        }
index d8c245757e71ae851bbcf5731fe6264c0713b131..15539ada58bb14fcf3d443cea5a0cbe81fb28582 100644 (file)
@@ -410,7 +410,8 @@ static __asmcall __used void int22 ( struct i386_all_regs *ix86 ) {
                        int len = ix86->regs.cx * COMBOOT_FILE_BLOCKSZ;
                        int rc;
                        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 */
                        FD_ZERO ( &fds );
@@ -418,7 +419,7 @@ static __asmcall __used void int22 ( struct i386_all_regs *ix86 ) {
 
                        select ( &fds, 1 );
 
-                       rc = read_user ( fd, buf, 0, len );
+                       rc = read ( fd, buf, len );
                        if ( rc < 0 ) {
                                DBG ( "COMBOOT: read failed\n" );
                                ix86->regs.si = 0;
index 35b52beebe3de951438313246fc43ca5b21c7f5d..9112798ec26167c216373f2c5b84007792fb8fa1 100644 (file)
@@ -254,15 +254,14 @@ int select ( fd_set *readfds, int wait ) {
 /**
  * Read data from file
  *
- * @v buffer           Data buffer
- * @v offset           Starting offset within data buffer
- * @v len              Maximum length to read
+ * @v buf              Data buffer
+ * @v max_len          Maximum length to read
  * @ret len            Actual length read, or negative error number
  *
  * This call is non-blocking; if no data is available to read then
  * -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 io_buffer *iobuf;
        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 );
                if ( len > max_len )
                        len = max_len;
-               copy_to_user ( buffer, offset, iobuf->data, len );
+               memcpy ( buf, iobuf->data, len );
                iob_pull ( iobuf, len );
                if ( ! iob_len ( iobuf ) ) {
                        list_del ( &iobuf->list );
index 1a73b5e8651ba3f0adc0e717b846738ec601cab7..693e0ae348fd7c934cda6b4611199427f2b76666 100644 (file)
@@ -10,7 +10,6 @@
 FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL );
 
 #include <stdint.h>
-#include <ipxe/uaccess.h>
 
 /** Minimum file descriptor that will ever be allocated */
 #define POSIX_FD_MIN ( 1 )
@@ -22,8 +21,7 @@ FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL );
 typedef uint32_t fd_set;
 
 extern int open ( const char *uri_string );
-extern ssize_t read_user ( int fd, userptr_t buffer,
-                          off_t offset, size_t len );
+extern ssize_t read ( int fd, void *buf, size_t len );
 extern int select ( fd_set *readfds, int wait );
 extern ssize_t fsize ( int fd );
 extern int close ( int fd );
@@ -72,16 +70,4 @@ FD_ISSET ( int fd, fd_set *set ) {
        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 */