fix raw_aio_remove (Stefano Stabellini)
[qemu] / usb-linux.c
index 334b45d..f19f0c4 100644 (file)
@@ -441,10 +441,6 @@ static int usb_host_handle_data(USBHostDevice *s, USBPacket *p)
     int ret;
 
     aurb = async_alloc();
-    if (!aurb) {
-        dprintf("husb: async malloc failed\n");
-        return USB_RET_NAK;
-    }
     aurb->hdev   = s;
     aurb->packet = p;
 
@@ -585,10 +581,6 @@ static int usb_host_handle_control(USBHostDevice *s, USBPacket *p)
     /* The rest are asynchronous */
 
     aurb = async_alloc();
-    if (!aurb) {
-        dprintf("husb: async malloc failed\n");
-        return USB_RET_NAK;
-    }
     aurb->hdev   = s;
     aurb->packet = p;
 
@@ -898,8 +890,6 @@ static USBDevice *usb_host_device_open_addr(int bus_num, int addr, const char *p
     char buf[1024];
 
     dev = qemu_mallocz(sizeof(USBHostDevice));
-    if (!dev)
-        goto fail;
 
     dev->bus_num = bus_num;
     dev->addr = addr;
@@ -1163,7 +1153,8 @@ static int usb_host_read_file(char *line, size_t line_size, const char *device_f
     int ret = 0;
     char filename[PATH_MAX];
 
-    snprintf(filename, PATH_MAX, device_file, device_name);
+    snprintf(filename, PATH_MAX, USBSYSBUS_PATH "/devices/%s/%s", device_name,
+             device_file);
     f = fopen(filename, "r");
     if (f) {
         fgets(line, line_size, f);
@@ -1205,27 +1196,30 @@ static int usb_host_scan_sys(void *opaque, USBScanFunc *func)
                 tmpstr += 3;
             bus_num = atoi(tmpstr);
 
-            if (!usb_host_read_file(line, sizeof(line), USBSYSBUS_PATH "/devices/%s/devnum", de->d_name))
+            if (!usb_host_read_file(line, sizeof(line), "devnum", de->d_name))
                 goto the_end;
             if (sscanf(line, "%d", &addr) != 1)
                 goto the_end;
 
-            if (!usb_host_read_file(line, sizeof(line), USBSYSBUS_PATH "/devices/%s/bDeviceClass", de->d_name))
+            if (!usb_host_read_file(line, sizeof(line), "bDeviceClass",
+                                    de->d_name))
                 goto the_end;
             if (sscanf(line, "%x", &class_id) != 1)
                 goto the_end;
 
-            if (!usb_host_read_file(line, sizeof(line), USBSYSBUS_PATH "/devices/%s/idVendor", de->d_name))
+            if (!usb_host_read_file(line, sizeof(line), "idVendor", de->d_name))
                 goto the_end;
             if (sscanf(line, "%x", &vendor_id) != 1)
                 goto the_end;
 
-            if (!usb_host_read_file(line, sizeof(line), USBSYSBUS_PATH "/devices/%s/idProduct", de->d_name))
+            if (!usb_host_read_file(line, sizeof(line), "idProduct",
+                                    de->d_name))
                 goto the_end;
             if (sscanf(line, "%x", &product_id) != 1)
                 goto the_end;
 
-            if (!usb_host_read_file(line, sizeof(line), USBSYSBUS_PATH "/devices/%s/product", de->d_name)) {
+            if (!usb_host_read_file(line, sizeof(line), "product",
+                                    de->d_name)) {
                 *product_name = 0;
             } else {
                 if (strlen(line) > 0)
@@ -1233,7 +1227,7 @@ static int usb_host_scan_sys(void *opaque, USBScanFunc *func)
                 pstrcpy(product_name, sizeof(product_name), line);
             }
 
-            if (!usb_host_read_file(line, sizeof(line), USBSYSBUS_PATH "/devices/%s/speed", de->d_name))
+            if (!usb_host_read_file(line, sizeof(line), "speed", de->d_name))
                 goto the_end;
             if (!strcmp(line, "480\n"))
                 speed = USB_SPEED_HIGH;
@@ -1304,14 +1298,8 @@ static int usb_host_scan(void *opaque, USBScanFunc *func)
 
         /* the module setting (used later for opening devices) */
         usb_host_device_path = qemu_mallocz(strlen(devpath)+1);
-        if (usb_host_device_path) {
-            strcpy(usb_host_device_path, devpath);
-            term_printf("husb: using %s file-system with %s\n", fs_type[usb_fs_type], usb_host_device_path);
-        } else {
-            /* out of memory? */
-            perror("husb: unable to allocate memory for device path");
-            return -ENOMEM;
-        }
+        strcpy(usb_host_device_path, devpath);
+        term_printf("husb: using %s file-system with %s\n", fs_type[usb_fs_type], usb_host_device_path);
     }
 
     switch (usb_fs_type) {
@@ -1451,10 +1439,6 @@ static int usb_host_auto_add(const char *spec)
         return -1;
 
     f = qemu_mallocz(sizeof(*f));
-    if (!f) {
-        fprintf(stderr, "husb: failed to allocate auto filter\n");
-        return -1;
-    }
 
     *f = filter;