@ -21,7 +21,6 @@
# include <linux/if.h>
# include <linux/if_bridge.h>
# include <linux/slab.h>
# include <linux/hdreg.h>
# include <linux/raid/md.h>
# include <linux/kd.h>
# include <linux/dirent.h>
@ -667,53 +666,6 @@ out:
# endif
# ifdef CONFIG_BLOCK
struct hd_geometry32 {
unsigned char heads ;
unsigned char sectors ;
unsigned short cylinders ;
u32 start ;
} ;
static int hdio_getgeo ( unsigned int fd , unsigned int cmd , unsigned long arg )
{
mm_segment_t old_fs = get_fs ( ) ;
struct hd_geometry geo ;
struct hd_geometry32 __user * ugeo ;
int err ;
set_fs ( KERNEL_DS ) ;
err = sys_ioctl ( fd , HDIO_GETGEO , ( unsigned long ) & geo ) ;
set_fs ( old_fs ) ;
ugeo = compat_ptr ( arg ) ;
if ( ! err ) {
err = copy_to_user ( ugeo , & geo , 4 ) ;
err | = __put_user ( geo . start , & ugeo - > start ) ;
if ( err )
err = - EFAULT ;
}
return err ;
}
static int hdio_ioctl_trans ( unsigned int fd , unsigned int cmd , unsigned long arg )
{
mm_segment_t old_fs = get_fs ( ) ;
unsigned long kval ;
unsigned int __user * uvp ;
int error ;
set_fs ( KERNEL_DS ) ;
error = sys_ioctl ( fd , cmd , ( long ) & kval ) ;
set_fs ( old_fs ) ;
if ( error = = 0 ) {
uvp = compat_ptr ( arg ) ;
if ( put_user ( kval , uvp ) )
error = - EFAULT ;
}
return error ;
}
typedef struct sg_io_hdr32 {
compat_int_t interface_id ; /* [i] 'S' for SCSI generic (required) */
compat_int_t dxfer_direction ; /* [i] data transfer direction */
@ -3208,19 +3160,7 @@ HANDLE_IOCTL(SIOCGSTAMP, do_siocgstamp)
HANDLE_IOCTL ( SIOCGSTAMPNS , do_siocgstampns )
# endif
# ifdef CONFIG_BLOCK
HANDLE_IOCTL ( HDIO_GETGEO , hdio_getgeo )
HANDLE_IOCTL ( BLKPG , blkpg_ioctl_trans )
HANDLE_IOCTL ( HDIO_GET_UNMASKINTR , hdio_ioctl_trans )
HANDLE_IOCTL ( HDIO_GET_MULTCOUNT , hdio_ioctl_trans )
HANDLE_IOCTL ( HDIO_GET_KEEPSETTINGS , hdio_ioctl_trans )
HANDLE_IOCTL ( HDIO_GET_32BIT , hdio_ioctl_trans )
HANDLE_IOCTL ( HDIO_GET_NOWERR , hdio_ioctl_trans )
HANDLE_IOCTL ( HDIO_GET_DMA , hdio_ioctl_trans )
HANDLE_IOCTL ( HDIO_GET_NICE , hdio_ioctl_trans )
HANDLE_IOCTL ( HDIO_GET_WCACHE , hdio_ioctl_trans )
HANDLE_IOCTL ( HDIO_GET_ACOUSTIC , hdio_ioctl_trans )
HANDLE_IOCTL ( HDIO_GET_ADDRESS , hdio_ioctl_trans )
HANDLE_IOCTL ( HDIO_GET_BUSSTATE , hdio_ioctl_trans )
HANDLE_IOCTL ( FDSETPRM32 , fd_ioctl_trans )
HANDLE_IOCTL ( FDDEFPRM32 , fd_ioctl_trans )
HANDLE_IOCTL ( FDGETPRM32 , fd_ioctl_trans )