[PATCH 1/7] Kill ctl_wq

Eugene Krasnikov k.eugene.e at gmail.com
Mon Jun 10 04:33:12 EDT 2013


Good job Pontus. Maybe in future we can even get rid of this wcn->wq
workqueue and use internal mac80211 instead;)
Please send pull request.

2013/6/7 Pontus Fuchs <pontus.fuchs at gmail.com>:
> No point in having two workqueues.
>
> Signed-off-by: Pontus Fuchs <pontus.fuchs at gmail.com>
> ---
>  dxe.c     |    2 +-
>  main.c    |   14 ++------------
>  wcn36xx.h |    1 -
>  3 files changed, 3 insertions(+), 14 deletions(-)
>
> diff --git a/dxe.c b/dxe.c
> index a705be1..565c4c8 100644
> --- a/dxe.c
> +++ b/dxe.c
> @@ -361,7 +361,7 @@ static irqreturn_t wcn36xx_irq_rx_ready(int irq, void *dev)
>  {
>         struct wcn36xx *wcn = (struct wcn36xx *)dev;
>         disable_irq_nosync(wcn->rx_irq);
> -       queue_work(wcn->ctl_wq, &wcn->rx_ready_work);
> +       queue_work(wcn->wq, &wcn->rx_ready_work);
>         return IRQ_HANDLED;
>  }
>  static int wcn36xx_dxe_request_irqs(struct wcn36xx *wcn)
> diff --git a/main.c b/main.c
> index c995ca0..a6ee4c1 100644
> --- a/main.c
> +++ b/main.c
> @@ -767,13 +767,6 @@ static int __init wcn36xx_init(void)
>                 goto out_err;
>         }
>
> -       wcn->ctl_wq = create_workqueue("wcn36xx_ctl_wq");
> -       if (!wcn->ctl_wq) {
> -               wcn36xx_error("failed to allocate ctl wq");
> -               ret = -ENOMEM;
> -               goto out_wq;
> -       }
> -
>         wcn36xx_init_ieee80211(wcn);
>
>         /* Configuring supported rates */
> @@ -804,7 +797,7 @@ static int __init wcn36xx_init(void)
>         if (wcnss_memory == NULL) {
>                 wcn36xx_error("failed to get wcnss wlan memory map");
>                 ret = -ENOMEM;
> -               goto out_wq_ctl;
> +               goto out_wq;
>         }
>
>         wcn->tx_irq = wcnss_wlan_get_dxe_tx_irq(wcn->dev);
> @@ -814,7 +807,7 @@ static int __init wcn36xx_init(void)
>         if (NULL == wcn->mmio) {
>                 wcn36xx_error("failed to map io memory");
>                 ret = -ENOMEM;
> -               goto out_wq_ctl;
> +               goto out_wq;
>         }
>
>         private_hw = hw;
> @@ -840,8 +833,6 @@ out_free_nv:
>         release_firmware(wcn->nv);
>  out_unmap:
>         iounmap(wcn->mmio);
> -out_wq_ctl:
> -       destroy_workqueue(wcn->ctl_wq);
>  out_wq:
>         destroy_workqueue(wcn->wq);
>  out_err:
> @@ -856,7 +847,6 @@ static void __exit wcn36xx_exit(void)
>         struct wcn36xx *wcn = hw->priv;
>
>         ieee80211_unregister_hw(hw);
> -       destroy_workqueue(wcn->ctl_wq);
>         destroy_workqueue(wcn->wq);
>         iounmap(wcn->mmio);
>         release_firmware(wcn->nv);
> diff --git a/wcn36xx.h b/wcn36xx.h
> index 28c86ea..0218923 100644
> --- a/wcn36xx.h
> +++ b/wcn36xx.h
> @@ -101,7 +101,6 @@ struct wcn36xx_dxe_ch;
>  struct wcn36xx {
>         struct ieee80211_hw     *hw;
>         struct workqueue_struct *wq;
> -       struct workqueue_struct *ctl_wq;
>         struct device           *dev;
>         const struct firmware   *nv;
>         struct mac_address      addresses[2];
> --
> 1.7.10.4
>
>
> _______________________________________________
> wcn36xx mailing list
> wcn36xx at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/wcn36xx



-- 
Best regards,
Eugene



More information about the wcn36xx mailing list