On 02/09/2012 08:17 PM, Greg KH wrote: > On Thu, Feb 09, 2012 at 07:18:53PM +0530, Abhijit Pawar wrote: >> Hi Greg, >> On 02/09/2012 05:53 PM, Greg KH wrote: >>> On Thu, Feb 09, 2012 at 11:40:16AM +0530, Abhijit Pawar wrote: >>>> Hi , >>>> Is there any way we can get the class type of the attached USB device through >>>> struct usb_device in a kernel module? >>>> >>>> I tried getting the device descriptor and interface descriptor and then use >>>> them to get the Device and Interface Class and Subclass. >>>> >>>> struct usb_device_descriptor *descriptor =&usbDev->descriptor; >>>> struct usb_interface_descriptor *idesc = to_usb_interface(usbDev); >>>> >>>> Whenever I run my kernel module, I get 0 for DeviceClass and Interface Class. I >>>> checked the meaning and it says its the information and to be gathered through >>>> interface. >>> That is correct, look at the interface pointer given to your driver. >>> >>>> Am I missing something here? What I want is to get the mount point / device >>>> path of the USB devices. Like for Storage Device I would like to get its mount >>>> path and for HID I would like to get its device path. >>> Both of those things make no sense within the kernel, and you will not >>> be able to detect them from your driver, especially as it is not your >>> driver bound to this type of device, the in-kernel drivers are. Also, >>> these have nothing to do with the class type of a device's interface. >> Yes. As I am dealing with USB Core, I am not in a position to get >> the interface directly. However I checked the >> usb_dump_interface_descriptor( ) from usb/core/devices.c and it >> gives the interface class ( 8 for Storage) correctly. >> Isnt it forwared to my module which is relying on the linux usb >> notifier chain? This chain gives me the device pointer and I am >> trying to enumerate its interface to know its class. > Ah, I thought you were a "real" driver. Yes, just enumerate the > interfaces of the device. > > Have a pointer to your code anywhere? > >>> What are you trying to solve here that you feel you need this >>> information that is easily found from userspace? >> I am trying to use USB notifier chains to get the device details and >> then find out its mount path ( in case of Storage). Are you saying >> that I should be looking into sysFS and udev rules for getting this >> mount path? > I'm saying you shouldn't be doing any of this from within the kernel at > all, as again, it can be trivially found from userspace today with no > kernel changes needed. > > Step back again, what is the problem you are trying to solve? > > greg k-h I am trying to find out if any storage disk is connected to USB port and get its mount so that I an encrypt that mount with encrypted filesystem. Regards, Abhijit Pawar _______________________________________________ Kernelnewbies mailing list Kernelnewbies@xxxxxxxxxxxxxxxxx http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies