usb-storage: alauda: fix initFunction error return
authorLin Ma <linma@zju.edu.cn>
Thu, 7 Apr 2022 02:20:58 +0000 (10:20 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 21 Apr 2022 17:02:37 +0000 (19:02 +0200)
The initFunction is called when probing a new device, its call relation
is like:

USB core: probe() -> usb_stor_probe2() -> usb_stor_acquire_resources()
-> init_alauda()

That is, the error return of the initFunction should tell USB core what
happened instead of using error code like USB_STOR_TRANSPORT_ERROR.

Signed-off-by: Lin Ma <linma@zju.edu.cn>
Link: https://lore.kernel.org/r/20220407022058.3741-1-linma@zju.edu.cn
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/usb/storage/alauda.c

index 20b857e97e60cf74242b725965bf777a399c3b02..747be69e5e6992ee624b747550184d16cb3a950f 100644 (file)
@@ -1104,7 +1104,7 @@ static int init_alauda(struct us_data *us)
 
        us->extra = kzalloc(sizeof(struct alauda_info), GFP_NOIO);
        if (!us->extra)
-               return USB_STOR_TRANSPORT_ERROR;
+               return -ENOMEM;
 
        info = (struct alauda_info *) us->extra;
        us->extra_destructor = alauda_info_destructor;
@@ -1113,7 +1113,7 @@ static int init_alauda(struct us_data *us)
                altsetting->endpoint[0].desc.bEndpointAddress
                & USB_ENDPOINT_NUMBER_MASK);
 
-       return USB_STOR_TRANSPORT_GOOD;
+       return 0;
 }
 
 static int alauda_transport(struct scsi_cmnd *srb, struct us_data *us)