Re: [PATCH] staging: dgnc: Remove useless and deadly judgment

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, 29 Feb 2016 14:41:34 +0800, Navy Cheng said:
> pci_unregister_driver() should be used once dgnc module exit. It has
> nothing to do with dgnc_NumBoards. Remove the judgment of dgnc_NumBoards to
> avoid pci_unregister_driver() is not used when dgnc_NumBoards is 0.

> -	if (dgnc_NumBoards)
> -		pci_unregister_driver(&dgnc_driver);
> +	pci_unregister_driver(&dgnc_driver);

Does pci_unregister_driver do the right thing if there are 0 boards
in the system?

If this logic is wrong, shouldn't there also be a patch fixing the
following in dgnc_init_module()?

        /*
         * Find and configure all the cards
         */
        rc = pci_register_driver(&dgnc_driver);

        /*
         * If something went wrong in the scan, bail out of driver.
         */
        if (rc < 0) {
                /* Only unregister if it was actually registered. */
                if (dgnc_NumBoards)
                        pci_unregister_driver(&dgnc_driver);
                else
                        pr_warn("WARNING: dgnc driver load failed.  No Digi Neo or Classic boards found.\n");

                dgnc_cleanup_module();

While I'm at it, the entire NumBoards counting seems to be wonky - it looks
like a *lot* of off-by-one errors.  Looks like the programmer(s) weren't sure
if they wanted to use that as a zero-based or one-based counter/index.

Attachment: pgp8zs_tUVzWR.pgp
Description: PGP signature

_______________________________________________
Kernelnewbies mailing list
Kernelnewbies@xxxxxxxxxxxxxxxxx
http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies

[Index of Archives]     [Newbies FAQ]     [Linux Kernel Mentors]     [Linux Kernel Development]     [IETF Annouce]     [Git]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux SCSI]     [Linux ACPI]
  Powered by Linux