linux/drivers/usb/core
Pete Zaitcev c36fc889b5 [PATCH] usb: Patch for USBDEVFS_IOCTL from 32-bit programs
Dell supplied me with the following test:

#include<stdio.h>
#include<errno.h>
#include<sys/ioctl.h>
#include<fcntl.h>
#include<linux/usbdevice_fs.h>

main(int argc,char*argv[])
{
   struct usbdevfs_hub_portinfo hubPortInfo = {0};
   struct usbdevfs_ioctl command = {0};
   command.ifno = 0;
   command.ioctl_code = USBDEVFS_HUB_PORTINFO;
   command.data = (void*)&hubPortInfo;
   int fd, ret;
   if(argc != 2) {
     fprintf(stderr,"Usage: %s /proc/bus/usb/<BusNo>/<HubID>\n",argv[0]);
     fprintf(stderr,"Example: %s /proc/bus/usb/001/001\n",argv[0]);
     exit(1);
   }
   errno = 0;
   fd = open(argv[1],O_RDWR);
   if(fd < 0) {
     perror("open failed:");
     exit(errno);
   }
   errno = 0;
   ret = ioctl(fd,USBDEVFS_IOCTL,&command);
   printf("IOCTL return status:%d\n",ret);
   if(ret<0) {
     perror("IOCTL failed:");
     close(fd);
     exit(3);
   } else {
       printf("IOCTL passed:Num of ports %d\n",hubPortInfo.nports);
       close(fd);
       exit(0);
   }
   return 0;
}

I have verified that it breaks if built in 32 bit mode on x86_64 and that
the patch below fixes it.

Signed-off-by: Pete Zaitcev <zaitcev@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2005-10-28 16:47:46 -07:00
..
buffer.c [PATCH] gfp_t: drivers/usb 2005-10-28 08:16:49 -07:00
config.c
devices.c
devio.c [PATCH] usb: Patch for USBDEVFS_IOCTL from 32-bit programs 2005-10-28 16:47:46 -07:00
file.c [PATCH] devfs: Remove the mode field from usb_class_driver as it's no longer needed 2005-10-28 16:47:37 -07:00
hcd-pci.c [PATCH] usbcore PCI glue updates for PM 2005-10-28 16:47:40 -07:00
hcd.c [PATCH] USB: convert usbmon to use usb notifiers 2005-10-28 16:47:46 -07:00
hcd.h [PATCH] USB: convert usbmon to use usb notifiers 2005-10-28 16:47:46 -07:00
hub.c [PATCH] USB: convert usbfs/inode.c to use usb notifiers 2005-10-28 16:47:46 -07:00
hub.h [PATCH] USB: make wHubCharacteristics __le16 to match other usb descriptor fields 2005-10-28 16:47:42 -07:00
inode.c [PATCH] USB: convert usbfs/inode.c to use usb notifiers 2005-10-28 16:47:46 -07:00
Kconfig [PATCH] root hub updates (greater half) 2005-10-28 16:47:40 -07:00
Makefile [PATCH] USB: add notifier functions to the USB core for devices and busses 2005-10-28 16:47:46 -07:00
message.c [PATCH] USB: usb_bulk_message() handles interrupts endpoints 2005-10-28 16:47:41 -07:00
notify.c [PATCH] USB: add notifier functions to the USB core for devices and busses 2005-10-28 16:47:46 -07:00
otg_whitelist.h
sysfs.c [PATCH] USB: add endpoint information to sysfs 2005-10-28 16:47:37 -07:00
urb.c [PATCH] updates for "controller suspended" handling 2005-10-28 16:47:41 -07:00
usb.c [PATCH] root hub changes (lesser half) 2005-10-28 16:47:40 -07:00
usb.h [PATCH] USB: convert usbfs/devio.c to use usb notifiers 2005-10-28 16:47:46 -07:00