While reviewing the patch for fixing Coverity scan issue from gpib: cb7210 [1], Greg pointed out that the gpib_register_driver() function can fail and must return an error value if it fails. This patch series fixes the above issue by changing the return type of gpib_register_driver() function and returning the error value if it fails. This fix also makes sure that wherever the gpib_register_driver() is called and if it fails - the previous driver register functions are unregistered (if they exist) and the error value is returned. The pr_err() statements are added indicating the fail and the error value. Thanks, Nihar v5 --> v6 : Removed unnecessary pr_info() statements when the drivers are working properly. Added pr_err() in all cases of the driver registration fail - indicating the failure and also the error value. v4 --> v5 : Added pr_* statements indicating when the driver register functions fail or if the module is initialized without errors. v3 --> v4 : Made the v3 patch into series and also fixed an error in v3 [2]. Each patch in this series is a fix for particular driver handling the gpib_register_driver() error. v2 --> v3 : Modified the gpib_register_driver() to return error code, added error handling to all the places that the gpib_register_driver() is called. v1 --> v2 : Replaced the redundant cb_pcmcia_init_module() with pcmcia_register_driver(). Link to v5 : https://lore.kernel.org/all/20241228060800.107653-1-niharchaithanya@xxxxxxxxx/ Link to v4 : https://lore.kernel.org/all/20241226193637.241049-1-niharchaithanya@xxxxxxxxx/ Link to v3 : https://lore.kernel.org/all/20241221214822.163667-1-niharchaithanya@xxxxxxxxx/ Link to v2 : https://lore.kernel.org/all/20241221091121.35476-1-niharchaithanya@xxxxxxxxx/ Link to v1 : https://lore.kernel.org/all/20241221022632.20931-1-niharchaithanya@xxxxxxxxx/ [1] https://lore.kernel.org/all/2024122133-outskirts-causing-099a@gregkh/ [2] https://lore.kernel.org/all/202412221424.WIjKFIPf-lkp@xxxxxxxxx/ Nihar Chaithanya (15): staging: gpib: Modify gpib_register_driver() to return error if it fails staging: gpib: agilent_82350b: Handle gpib_register_driver() errors staging: gpib: agilent_82357a: Handle gpib_register_driver() errors staging: gpib: cb7210: Handle gpib_register_driver() errors staging: gpib: cec: Handle gpib_register_driver() errors staging: gpib: fluke: Handle gpib_register_driver() errors staging: gpib: fmh: Handle gpib_register_driver() errors staging: gpib: gpio: Return error value from gpib_register_driver() staging: gpib: hp_82335: Return error value from gpib_register_driver() staging: gpib: hp_82341: Handle gpib_register_driver() errors staging: gpib: ines: Handle gpib_register_driver() errors staging: gpib: lpvo_usb: Return error value from gpib_register_driver() staging: gpib: ni_usb: Handle gpib_register_driver() errors staging: gpib: pc2: Handle gpib_register_driver() errors staging: gpib: tnt4882: Handle gpib_register_driver() errors .../gpib/agilent_82350b/agilent_82350b.c | 23 +++- .../gpib/agilent_82357a/agilent_82357a.c | 16 ++- drivers/staging/gpib/cb7210/cb7210.c | 116 ++++++++++++++---- drivers/staging/gpib/cec/cec_gpib.c | 8 +- drivers/staging/gpib/common/gpib_os.c | 7 +- drivers/staging/gpib/eastwood/fluke_gpib.c | 32 ++++- drivers/staging/gpib/fmh_gpib/fmh_gpib.c | 47 +++++-- drivers/staging/gpib/gpio/gpib_bitbang.c | 7 +- drivers/staging/gpib/hp_82335/hp82335.c | 8 +- drivers/staging/gpib/hp_82341/hp_82341.c | 17 ++- drivers/staging/gpib/include/gpibP.h | 2 +- drivers/staging/gpib/ines/ines_gpib.c | 94 ++++++++++---- .../gpib/lpvo_usb_gpib/lpvo_usb_gpib.c | 6 +- drivers/staging/gpib/ni_usb/ni_usb_gpib.c | 15 ++- drivers/staging/gpib/pc2/pc2_gpib.c | 38 +++++- drivers/staging/gpib/tnt4882/tnt4882_gpib.c | 106 ++++++++++++++-- 16 files changed, 447 insertions(+), 95 deletions(-) -- 2.34.1