Hi Nitin, FYI, the error/warning still remains. tree: https://github.com/Freescale/linux-fslc 5.15-2.1.x-imx head: 9dcc132b0caa04022a9adbb76510258684fbfef7 commit: 5b2493afc57b6ef1f5c13b9ccf509555a87cb54f [3362/18017] MLK-25346: net: add imx-shmem-net driver config: alpha-randconfig-c44-20221124 compiler: alpha-linux-gcc (GCC) 12.1.0 reproduce (this is a W=1 build): wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # https://github.com/Freescale/linux-fslc/commit/5b2493afc57b6ef1f5c13b9ccf509555a87cb54f git remote add freescale-fslc https://github.com/Freescale/linux-fslc git fetch --no-tags freescale-fslc 5.15-2.1.x-imx git checkout 5b2493afc57b6ef1f5c13b9ccf509555a87cb54f # save the config file mkdir build_dir && cp config build_dir/.config COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-12.1.0 make.cross W=1 O=build_dir ARCH=alpha SHELL=/bin/bash drivers/ If you fix the issue, kindly add following tag where applicable | Reported-by: kernel test robot All errors (new ones prefixed by >>): drivers/net/imx-shmem-net.c: In function 'mu_enable_reset_irq': drivers/net/imx-shmem-net.c:994:13: warning: unused variable 'sciErr' [-Wunused-variable] 994 | int sciErr; | ^~~~~~ drivers/net/imx-shmem-net.c: In function 'imx_shm_net_probe': >> drivers/net/imx-shmem-net.c:1176:9: error: implicit declaration of function 'imx_scu_irq_unregister_notifier'; did you mean 'netlink_unregister_notifier'? [-Werror=implicit-function-declaration] 1176 | imx_scu_irq_unregister_notifier(&in->pnotifier); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | netlink_unregister_notifier drivers/net/imx-shmem-net.c: At top level: drivers/net/imx-shmem-net.c:888:12: warning: 'imx_shm_partition_notify' defined but not used [-Wunused-function] 888 | static int imx_shm_partition_notify(struct notifier_block *nb, | ^~~~~~~~~~~~~~~~~~~~~~~~ cc1: some warnings being treated as errors vim +1176 drivers/net/imx-shmem-net.c 1033 1034 static int imx_shm_net_probe(struct platform_device *pdev) 1035 { 1036 struct net_device *ndev = NULL; 1037 struct imx_shm_net *in; 1038 resource_size_t shmaddr; 1039 resource_size_t shmlen; 1040 char *device_name; 1041 void *shm = NULL; 1042 u32 ivpos; 1043 int ret; 1044 1045 /* check if 1st probe or another attempt after EAGAIN */ 1046 if (pdev->dev.driver_data) { 1047 dev_dbg(&pdev->dev, "Retrying connection...\n"); 1048 in = netdev_priv(platform_get_drvdata(pdev)); 1049 goto retry; 1050 } 1051 1052 if (of_property_read_bool(pdev->dev.of_node, "rxfirst")) { 1053 ivpos = 1; 1054 dev_info(&pdev->dev, "queue position is RX first\n"); 1055 } else { 1056 ivpos = 0; 1057 dev_info(&pdev->dev, "queue position is TX first\n"); 1058 } 1059 1060 /* get shared coherent memory for buffers */ 1061 if (of_reserved_mem_device_init(&pdev->dev)) { 1062 dev_err(&pdev->dev, 1063 "dev doesn't have specific DMA pool.\n"); 1064 return -ENOMEM; 1065 } 1066 shmlen = IMX_SHM_NET_DMA_SIZE; 1067 shm = dma_alloc_coherent(&pdev->dev, IMX_SHM_NET_DMA_SIZE, 1068 &shmaddr, GFP_KERNEL); 1069 if (!shm || !shmaddr) 1070 return -ENOMEM; 1071 1072 dev_info(&pdev->dev, "allocated %d bytes in coherent mem @ 0x%x\n", 1073 (uint)shmlen, (uint)shmaddr); 1074 1075 device_name = devm_kasprintf(&pdev->dev, GFP_KERNEL, "%s[%s]", DRV_NAME, 1076 dev_name(&pdev->dev)); 1077 if (!device_name) { 1078 ret = -ENOMEM; 1079 goto err_free_dma; 1080 } 1081 1082 ndev = alloc_etherdev(sizeof(*in)); 1083 if (!ndev) { 1084 ret = -ENOMEM; 1085 goto err_free_dma; 1086 } 1087 dev_info(&pdev->dev, "allocated ethernet device %s\n", ndev->name); 1088 1089 platform_set_drvdata(pdev, ndev); 1090 SET_NETDEV_DEV(ndev, &pdev->dev); 1091 1092 /* get struct 'imx_shm_net' stored as private data in ndev */ 1093 in = netdev_priv(ndev); 1094 1095 list_add(&in->isn_node, &imx_shm_net_head); 1096 1097 in->shm = shm; 1098 in->shmaddr = shmaddr; 1099 in->shmlen = shmlen; 1100 in->pdev = pdev; 1101 in->regs.ivpos = ivpos; 1102 in->regs.rstate = IMX_SHM_NET_STATE_RESET; 1103 in->remote_message = IMX_SHM_NET_STATE_RESET; 1104 spin_lock_init(&in->tx_free_lock); 1105 spin_lock_init(&in->tx_clean_lock); 1106 mutex_init(&in->state_lock); 1107 1108 /* enable peer's reset notification */ 1109 ret = mu_enable_reset_irq(ndev); 1110 if (ret) 1111 goto err_free; 1112 1113 ret = imx_shm_net_calc_qsize(ndev); 1114 if (ret) 1115 goto err_reset_irq; 1116 1117 in->state_wq = alloc_ordered_workqueue(device_name, 0); 1118 if (!in->state_wq) { 1119 ret = -ENOMEM; 1120 goto err_reset_irq; 1121 } 1122 1123 INIT_WORK(&in->state_work, imx_shm_net_state_change); 1124 1125 eth_random_addr(ndev->dev_addr); 1126 ndev->netdev_ops = &imx_shm_net_ops; 1127 ndev->ethtool_ops = &imx_shm_net_ethtool_ops; 1128 ndev->mtu = min_t(u32, IMX_SHM_NET_MTU_DEF, in->qsize / 16); 1129 ndev->hw_features = NETIF_F_HW_CSUM | NETIF_F_SG; 1130 ndev->features = ndev->hw_features; 1131 1132 netif_carrier_off(ndev); 1133 netif_napi_add(ndev, &in->napi, imx_shm_net_poll, NAPI_POLL_WEIGHT); 1134 1135 ret = register_netdev(ndev); 1136 if (ret) 1137 goto err_wq; 1138 1139 /* initialize Mailbox for RX/TX */ 1140 ret = imx_shm_xtr_channel_init(in); 1141 if (ret) { 1142 dev_err(&in->pdev->dev, "unable to initialize Mailbox.\n"); 1143 /* MU may not be ready yet, need to try later on */ 1144 ret = -EPROBE_DEFER; 1145 goto err_unregister; 1146 } 1147 dev_info(&in->pdev->dev, 1148 "Mailbox is ready for cross core communication!\n"); 1149 1150 retry: 1151 /* notify reset */ 1152 mutex_lock(&in->state_lock); 1153 in->regs.lstate = IMX_SHM_NET_STATE_RESET; 1154 in->message_state = MESS_STATE_NEW; 1155 mutex_unlock(&in->state_lock); 1156 1157 /* only device with queue position TXfirst sends the first message */ 1158 if (!ivpos) { 1159 ret = mbox_send_message(in->tx_ch, &in->regs.lstate); 1160 if (ret < 0) 1161 dev_err(&pdev->dev, "%s first message error=%d!\n", 1162 __func__, ret); 1163 1164 dev_dbg(&pdev->dev, "%s sent first message\n", __func__); 1165 } 1166 1167 return 0; 1168 1169 err_unregister: 1170 unregister_netdev(ndev); 1171 1172 err_wq: 1173 destroy_workqueue(in->state_wq); 1174 1175 err_reset_irq: > 1176 imx_scu_irq_unregister_notifier(&in->pnotifier); 1177 1178 err_free: 1179 list_del(&in->isn_node); 1180 free_netdev(ndev); 1181 1182 err_free_dma: 1183 dma_free_coherent(&pdev->dev, shmlen, shm, shmaddr); 1184 1185 return ret; 1186 } 1187 -- 0-DAY CI Kernel Test Service https://01.org/lkp