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. Thanks, Nihar 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 v3 : https://lore.kernel.org/all/20241221214822.163667-1-niharchaithanya@xxxxxxxxx/ Link to v1 : https://lore.kernel.org/all/20241221022632.20931-1-niharchaithanya@xxxxxxxxx/ Link to v2 : https://lore.kernel.org/all/20241221091121.35476-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: hp82341: 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 | 21 +++- .../gpib/agilent_82357a/agilent_82357a.c | 13 ++- drivers/staging/gpib/cb7210/cb7210.c | 96 +++++++++++++------ drivers/staging/gpib/cec/cec_gpib.c | 12 +-- drivers/staging/gpib/common/gpib_os.c | 7 +- drivers/staging/gpib/eastwood/fluke_gpib.c | 28 ++++-- drivers/staging/gpib/fmh_gpib/fmh_gpib.c | 43 ++++++--- drivers/staging/gpib/gpio/gpib_bitbang.c | 5 +- drivers/staging/gpib/hp_82335/hp82335.c | 6 +- drivers/staging/gpib/hp_82341/hp_82341.c | 14 ++- drivers/staging/gpib/include/gpibP.h | 2 +- drivers/staging/gpib/ines/ines_gpib.c | 78 ++++++++++----- .../gpib/lpvo_usb_gpib/lpvo_usb_gpib.c | 4 +- drivers/staging/gpib/ni_usb/ni_usb_gpib.c | 13 ++- drivers/staging/gpib/pc2/pc2_gpib.c | 30 +++++- drivers/staging/gpib/tnt4882/tnt4882_gpib.c | 87 +++++++++++++---- 16 files changed, 344 insertions(+), 115 deletions(-) -- 2.34.1