net: wwan: t7xx: use union to group port type specific data
authorM Chetan Kumar <m.chetan.kumar@linux.intel.com>
Fri, 28 Oct 2022 15:34:50 +0000 (21:04 +0530)
committerDavid S. Miller <davem@davemloft.net>
Wed, 2 Nov 2022 11:39:49 +0000 (11:39 +0000)
Use union inside t7xx_port to group port type specific data members.

Signed-off-by: M Chetan Kumar <m.chetan.kumar@linux.intel.com>
Reviewed-by: Sergey Ryazanov <ryazanov.s.a@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/wwan/t7xx/t7xx_port.h
drivers/net/wwan/t7xx/t7xx_port_wwan.c

index dc4133e..fbc6d72 100644 (file)
@@ -99,7 +99,6 @@ struct t7xx_port_conf {
 struct t7xx_port {
        /* Members not initialized in definition */
        const struct t7xx_port_conf     *port_conf;
-       struct wwan_port                *wwan_port;
        struct t7xx_pci_dev             *t7xx_dev;
        struct device                   *dev;
        u16                             seq_nums[2];    /* TX/RX sequence numbers */
@@ -122,6 +121,11 @@ struct t7xx_port {
        int                             rx_length_th;
        bool                            chan_enable;
        struct task_struct              *thread;
+       union {
+               struct {
+                       struct wwan_port                *wwan_port;
+               } wwan;
+       };
 };
 
 struct sk_buff *t7xx_port_alloc_skb(int payload);
index 33931bf..24bd219 100644 (file)
@@ -109,12 +109,12 @@ static int t7xx_port_wwan_init(struct t7xx_port *port)
 
 static void t7xx_port_wwan_uninit(struct t7xx_port *port)
 {
-       if (!port->wwan_port)
+       if (!port->wwan.wwan_port)
                return;
 
        port->rx_length_th = 0;
-       wwan_remove_port(port->wwan_port);
-       port->wwan_port = NULL;
+       wwan_remove_port(port->wwan.wwan_port);
+       port->wwan.wwan_port = NULL;
 }
 
 static int t7xx_port_wwan_recv_skb(struct t7xx_port *port, struct sk_buff *skb)
@@ -129,7 +129,7 @@ static int t7xx_port_wwan_recv_skb(struct t7xx_port *port, struct sk_buff *skb)
                return 0;
        }
 
-       wwan_port_rx(port->wwan_port, skb);
+       wwan_port_rx(port->wwan.wwan_port, skb);
        return 0;
 }
 
@@ -158,10 +158,10 @@ static void t7xx_port_wwan_md_state_notify(struct t7xx_port *port, unsigned int
        if (state != MD_STATE_READY)
                return;
 
-       if (!port->wwan_port) {
-               port->wwan_port = wwan_create_port(port->dev, port_conf->port_type,
-                                                  &wwan_ops, port);
-               if (IS_ERR(port->wwan_port))
+       if (!port->wwan.wwan_port) {
+               port->wwan.wwan_port = wwan_create_port(port->dev, port_conf->port_type,
+                                                       &wwan_ops, port);
+               if (IS_ERR(port->wwan.wwan_port))
                        dev_err(port->dev, "Unable to create WWWAN port %s", port_conf->name);
        }
 }