From 1f3ee6bb30dfd75e04eaceca6b4d8e79a00a916e Mon Sep 17 00:00:00 2001 From: guillemj <> Date: Tue, 6 Feb 2007 04:50:34 +0000 Subject: [PATCH] Fix warnings when not checking pci_register_driver return codes. * 3dfx_driver.c (findCards): Return int instead of void , and normalize error code to be always negative, otherwise return numCards. (init_module): Check for findCards return code, print a warning and exit the module on error. (init_3dfx): Likewise. --- Device3Dfx/3dfx_driver.c | 26 ++++++++++++++++++++++---- Device3Dfx/ChangeLog | 10 ++++++++++ 2 files changed, 32 insertions(+), 4 deletions(-) diff --git a/Device3Dfx/3dfx_driver.c b/Device3Dfx/3dfx_driver.c index 9a3171b..3ee4a10 100644 --- a/Device3Dfx/3dfx_driver.c +++ b/Device3Dfx/3dfx_driver.c @@ -289,9 +289,16 @@ static int findCards(void) #else static struct pci_driver driver_3dfx; -static void findCards(void) +static int findCards(void) { - pci_register_driver(&driver_3dfx); + int error; + + error = pci_register_driver(&driver_3dfx); + + if (error) + return error < 0 ? error : -error; + else + return numCards; } #endif @@ -828,7 +835,11 @@ int init_module(void) #endif DEBUGMSG(("3dfx: Successfully registered device 3dfx\n")); - findCards(); + ret = findCards(); + if (ret < 0) { + printk("3dfx: findCards() failed, returned %d\n", ret); + return ret; + } #ifdef CONFIG_MTRR ret = setmtrr_3dfx(); @@ -872,11 +883,18 @@ void cleanup_module(void) long init_3dfx(long mem_start, long mem_end) { + int ret; + if (register_chrdev(MAJOR_3DFX, "3dfx", &fops_3dfx)) { DEBUGMSG(("3dfx: Unable to register_chrdev with major %d\n", MAJOR_3DFX)); return 0; } - findCards(); + + ret = findCards(); + if (ret < 0) { + printk("3dfx: findCards() failed, returned %d\n", ret); + return 0; + } return mem_start; } diff --git a/Device3Dfx/ChangeLog b/Device3Dfx/ChangeLog index 2c622d6..0541fe8 100644 --- a/Device3Dfx/ChangeLog +++ b/Device3Dfx/ChangeLog @@ -1,3 +1,13 @@ +2007-02-06 Guillem Jover + + Fix warnings when not checking pci_register_driver return codes. + + * 3dfx_driver.c (findCards): Return int instead of void , and normalize + error code to be always negative, otherwise return numCards. + (init_module): Check for findCards return code, print a warning and + exit the module on error. + (init_3dfx): Likewise. + 2007-02-06 Guillem Jover * 3dfx_driver.c (HAVE_DEVFS): Define to 1 if