summaryrefslogtreecommitdiffstats
path: root/src/disk.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/disk.c')
-rw-r--r--src/disk.c14
1 files changed, 4 insertions, 10 deletions
diff --git a/src/disk.c b/src/disk.c
index 4a34068..b8e9f51 100644
--- a/src/disk.c
+++ b/src/disk.c
@@ -281,20 +281,14 @@ int disk_init(struct usb_device_info * dev) {
unsigned int devnum;
unsigned int busnum;
- uint8_t usbdevnum;
- uint8_t usbbusnum;
+ struct usb_device * device;
- struct libusb_device * device;
-
- device = libusb_get_device(dev->udev);
- if ( ! device ) {
+ device = usb_device(dev->udev);
+ if ( ! device || ! device->bus ) {
ERROR_INFO("Cannot read usb devnum and busnum");
return -1;
}
- usbbusnum = libusb_get_bus_number(device);
- usbdevnum = libusb_get_device_address(device);
-
dir = opendir("/sys/dev/block/");
if ( ! dir ) {
ERROR_INFO("Cannot open '/sys/dev/block/' directory");
@@ -334,7 +328,7 @@ int disk_init(struct usb_device_info * dev) {
fclose(f);
- if ( devnum != usbdevnum || usbbusnum != busnum )
+ if ( devnum != device->devnum || device->bus->location != busnum )
continue;
if ( sscanf(dirent->d_name, "%d:%d", &maj2, &min2) != 2 ) {