Search Linux Wireless

Re: [PATCH] ath9k: Move rate control alg register/unregister to appropriate place

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

 



On Mon, Dec 15, 2008 at 08:40:45PM +0530, Vasanth Thiagarajan wrote:
> This patch makes sure the rate control alg is registered/unregistered
> only once for this module.
> 
> Signed-off-by: Vasanthakumar Thiagarajan <vasanth@xxxxxxxxxxx>
> ---
>  drivers/net/wireless/ath9k/main.c |   23 +++++++++++++----------
>  1 files changed, 13 insertions(+), 10 deletions(-)
> 
> diff --git a/drivers/net/wireless/ath9k/main.c b/drivers/net/wireless/ath9k/main.c
> index 05416db..6376fdf 100644
> --- a/drivers/net/wireless/ath9k/main.c
> +++ b/drivers/net/wireless/ath9k/main.c
> @@ -1231,9 +1231,6 @@ static void ath_detach(struct ath_softc *sc)
>         ath_deinit_leds(sc);
> 
>         ieee80211_unregister_hw(hw);
> -
> -       ath_rate_control_unregister();
> -
>         ath_rx_cleanup(sc);
>         ath_tx_cleanup(sc);
> 
> @@ -1520,13 +1517,6 @@ static int ath_attach(u16 devid, struct ath_softc *sc)
> 
>         /* Register rate control */
>         hw->rate_control_algorithm = "ath9k_rate_control";
> -       error = ath_rate_control_register();
> -       if (error != 0) {
> -               DPRINTF(sc, ATH_DBG_FATAL,
> -                       "Unable to register rate control algorithm: %d\n", error);
> -               ath_rate_control_unregister();
> -               goto bad;
> -       }
> 
>         if (sc->sc_ah->ah_caps.hw_caps & ATH9K_HW_CAP_HT) {
>                 setup_ht_cap(&sc->sbands[IEEE80211_BAND_2GHZ].ht_cap);
> @@ -2727,8 +2717,20 @@ static struct pci_driver ath_pci_driver = {
> 
>  static int __init init_ath_pci(void)
>  {
> +       int error;
> +
>         printk(KERN_INFO "%s: %s\n", dev_info, ATH_PCI_VERSION);
> 
> +       /* Register rate control algorithm */
> +       error = ath_rate_control_register();
> +       if (error != 0) {
> +               printk(KERN_ERR
> +                       "Unable to register rate control algorithm: %d\n",
> +                       error);
> +               ath_rate_control_unregister();
> +               return -EIO;
> +       }
> +
>         if (pci_register_driver(&ath_pci_driver) < 0) {
>                 printk(KERN_ERR
>                         "ath_pci: No devices found, driver not installed.\n");
> @@ -2742,6 +2744,7 @@ module_init(init_ath_pci);
> 
>  static void __exit exit_ath_pci(void)
>  {
> +       ath_rate_control_unregister();
>         pci_unregister_driver(&ath_pci_driver);
>         printk(KERN_INFO "%s: Driver unloaded\n", dev_info);
>  }

Please ignore this patch. This patch does not handle the rate
control unregistration when pci_register_driver() fails. I will be
sending out a more cleaner patch.

Thanks,

Vasanth

--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Device Mapper]
  Powered by Linux