On 2019-03-14 15:57, Lorenzo Bianconi wrote:
> Move mac_work delayed work in mt76_dev data structure since
> it is used by all drivers and it will be reused adding mac work to
> mt7615
> 
> Signed-off-by: Lorenzo Bianconi <[email protected]>
> ---
>  drivers/net/wireless/mediatek/mt76/mt76.h            |  2 ++
>  drivers/net/wireless/mediatek/mt76/mt7603/init.c     |  2 +-
>  drivers/net/wireless/mediatek/mt76/mt7603/mac.c      |  8 +++++---
>  drivers/net/wireless/mediatek/mt76/mt7603/main.c     | 10 +++++-----
>  drivers/net/wireless/mediatek/mt76/mt7603/mt7603.h   |  1 -
>  drivers/net/wireless/mediatek/mt76/mt76x0/pci.c      |  4 ++--
>  drivers/net/wireless/mediatek/mt76/mt76x0/usb.c      |  4 ++--
>  drivers/net/wireless/mediatek/mt76/mt76x02.h         |  1 -
>  drivers/net/wireless/mediatek/mt76/mt76x02_mac.c     |  8 +++++---
>  drivers/net/wireless/mediatek/mt76/mt76x02_util.c    |  2 +-
>  drivers/net/wireless/mediatek/mt76/mt76x2/pci_init.c |  2 +-
>  drivers/net/wireless/mediatek/mt76/mt76x2/pci_main.c |  2 +-
>  drivers/net/wireless/mediatek/mt76/mt76x2/usb_init.c |  2 +-
>  drivers/net/wireless/mediatek/mt76/mt76x2/usb_main.c |  2 +-
>  14 files changed, 27 insertions(+), 23 deletions(-)
> 
> diff --git a/drivers/net/wireless/mediatek/mt76/mt76.h 
> b/drivers/net/wireless/mediatek/mt76/mt76.h
> index edff44f32c8e..46bde2f55fce 100644
> --- a/drivers/net/wireless/mediatek/mt76/mt76.h
> +++ b/drivers/net/wireless/mediatek/mt76/mt76.h
> @@ -455,6 +455,8 @@ struct mt76_dev {
>       const struct mt76_queue_ops *queue_ops;
>       int tx_dma_idx[4];
>  
> +     struct delayed_work mac_work;
> +
>       wait_queue_head_t tx_wait;
>       struct sk_buff_head status_list;
>  
> diff --git a/drivers/net/wireless/mediatek/mt76/mt7603/init.c 
> b/drivers/net/wireless/mediatek/mt76/mt7603/init.c
> index d54dda67d036..ce1685d44888 100644
> --- a/drivers/net/wireless/mediatek/mt76/mt7603/init.c
> +++ b/drivers/net/wireless/mediatek/mt76/mt7603/init.c
> @@ -510,7 +510,7 @@ int mt7603_register_device(struct mt7603_dev *dev)
>       bus_ops->rmw = mt7603_rmw;
>       dev->mt76.bus = bus_ops;
>  
> -     INIT_DELAYED_WORK(&dev->mac_work, mt7603_mac_work);
> +     INIT_DELAYED_WORK(&dev->mt76.mac_work, mt7603_mac_work);
>       tasklet_init(&dev->pre_tbtt_tasklet, mt7603_pre_tbtt_tasklet,
>                    (unsigned long)dev);
>  
> diff --git a/drivers/net/wireless/mediatek/mt76/mt7603/mac.c 
> b/drivers/net/wireless/mediatek/mt76/mt7603/mac.c
> index 5f800467c628..d15d8316a108 100644
> --- a/drivers/net/wireless/mediatek/mt76/mt7603/mac.c
> +++ b/drivers/net/wireless/mediatek/mt76/mt7603/mac.c
> @@ -1691,10 +1691,12 @@ mt7603_false_cca_check(struct mt7603_dev *dev)
>  
>  void mt7603_mac_work(struct work_struct *work)
>  {
> -     struct mt7603_dev *dev = container_of(work, struct mt7603_dev,
> -                                           mac_work.work);
> +     struct mt7603_dev *dev;
>       bool reset = false;
>  
> +     dev = (struct mt7603_dev *)container_of(work, struct mt76_dev,
> +                                             mac_work.work);
Please drop the typecast and use this instead:

container_of(work, struct mt7603_dev, mt76.mac_work.work)

- Felix

Reply via email to