On Thu, 13 Jan 2022, Ricardo Martinez wrote: > From: Chandrashekar Devegowda <chandrashekar.devegowda@xxxxxxxxx> > > Adds AT and MBIM ports to the port proxy infrastructure. > The initialization method is responsible for creating the corresponding > ports using the WWAN framework infrastructure. The implemented WWAN port > operations are start, stop, and TX. > > Signed-off-by: Chandrashekar Devegowda <chandrashekar.devegowda@xxxxxxxxx> > Co-developed-by: Ricardo Martinez <ricardo.martinez@xxxxxxxxxxxxxxx> > Signed-off-by: Ricardo Martinez <ricardo.martinez@xxxxxxxxxxxxxxx> > --- > + memcpy(skb_put(skb_ccci, actual_len), skb->data + i * (txq_mtu - CCCI_H_ELEN), > + actual_len); Use skb_put_data(). > + t7xx_port_proxy_set_seq_num(port_private, ccci_h); > + > + ret = t7xx_port_send_skb_to_md(port_private, skb_ccci, true); > + if (ret) { > + dev_err(port_private->dev, "Write error on %s port, %d\n", > + port_static->name, ret); > + dev_kfree_skb_any(skb_ccci); Free first. > +static void t7xx_port_wwan_uninit(struct t7xx_port *port) > +{ > + if (port->wwan_port) { > + if (port->chn_crt_stat) { ... > + if (port->chn_crt_stat != port->chan_enable) ... > + if (port->chn_crt_stat != port->chan_enable) I don't see anything that would ever make chn_crt_stat true. > +struct port_ops wwan_sub_port_ops = { > + .init = &t7xx_port_wwan_init, > + .recv_skb = &t7xx_port_wwan_recv_skb, > + .uninit = &t7xx_port_wwan_uninit, > + .enable_chl = &t7xx_port_wwan_enable_chl, > + .disable_chl = &t7xx_port_wwan_disable_chl, > + .md_state_notify = &t7xx_port_wwan_md_state_notify, Drop & from these (in all patches). -- i.