Hi, On 08/09/25 2:37 pm, MD Danish Anwar wrote: > +static int create_request(struct rpmsg_eth_common *common, > + enum rpmsg_eth_rpmsg_type rpmsg_type) > +{ > + struct message *msg = &common->send_msg; > + int ret = 0; > + > + msg->msg_hdr.src_id = common->port->port_id; > + msg->req_msg.type = rpmsg_type; > + > + switch (rpmsg_type) { > + case RPMSG_ETH_REQ_SHM_INFO: > + msg->msg_hdr.msg_type = RPMSG_ETH_REQUEST_MSG; > + break; > + case RPMSG_ETH_REQ_SET_MAC_ADDR: > + msg->msg_hdr.msg_type = RPMSG_ETH_REQUEST_MSG; > + ether_addr_copy(msg->req_msg.mac_addr.addr, > + common->port->ndev->dev_addr); > + break; > + case RPMSG_ETH_NOTIFY_PORT_UP: > + case RPMSG_ETH_NOTIFY_PORT_DOWN: > + msg->msg_hdr.msg_type = RPMSG_ETH_NOTIFY_MSG; > + break; > + default: > + ret = -EINVAL; > + dev_err(common->dev, "Invalid RPMSG request\n"); I don't think you need 'ret' here instead directly return -EINVAL and above 'ret' declaration can be removed. > + } > + return ret; can be return 0; > +} > + > +static int rpmsg_eth_create_send_request(struct rpmsg_eth_common *common, > + enum rpmsg_eth_rpmsg_type rpmsg_type, > + bool wait) > +{ > + unsigned long flags; > + int ret = 0; No need to initialize. > + > + if (wait) > + reinit_completion(&common->sync_msg); > + > + spin_lock_irqsave(&common->send_msg_lock, flags); > + > +static int rpmsg_eth_set_mac_address(struct net_device *ndev, void *addr) > +{ > + struct rpmsg_eth_common *common = rpmsg_eth_ndev_to_common(ndev); > + int ret; > + > + ret = eth_mac_addr(ndev, addr); > + > + if (ret < 0) > + return ret; > + ret = rpmsg_eth_create_send_request(common, RPMSG_ETH_REQ_SET_MAC_ADDR, false); You can directly return from here. > + return ret; > +} > + Best regards, Parthiban V