CC: [email protected] BCC: [email protected] CC: [email protected] TO: Srinivas Kandagatla <[email protected]> CC: Bjorn Andersson <[email protected]> CC: "Pierre-Louis Bossart" <[email protected]>
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master head: a7391ad3572431a354c927cf8896e86e50d7d0bf commit: 99139b80c1b3d73026ed8be2de42c52e2976ab64 soc: qcom: apr: make code more reuseable date: 7 months ago :::::: branch date: 2 hours ago :::::: commit date: 7 months ago compiler: arm-linux-gnueabi-gcc (GCC) 11.3.0 reproduce (cppcheck warning): # apt-get install cppcheck git checkout 99139b80c1b3d73026ed8be2de42c52e2976ab64 cppcheck --quiet --enable=style,performance,portability --template=gcc FILE If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot <[email protected]> cppcheck possible warnings: (new ones prefixed by >>, may not real problems) >> drivers/soc/qcom/apr.c:159:16: warning: Uninitialized variable: adev >> [uninitvar] if (!adrv || !adev) { ^ vim +159 drivers/soc/qcom/apr.c 1ac19ad799f880 Srinivas Kandagatla 2019-02-08 107 99139b80c1b3d7 Srinivas Kandagatla 2021-09-27 108 static int apr_do_rx_callback(struct packet_router *apr, struct apr_rx_buf *abuf) 1ac19ad799f880 Srinivas Kandagatla 2019-02-08 109 { 1ac19ad799f880 Srinivas Kandagatla 2019-02-08 110 uint16_t hdr_size, msg_type, ver, svc_id; 99139b80c1b3d7 Srinivas Kandagatla 2021-09-27 111 struct pkt_router_svc *svc; 99139b80c1b3d7 Srinivas Kandagatla 2021-09-27 112 struct apr_device *adev; 1ac19ad799f880 Srinivas Kandagatla 2019-02-08 113 struct apr_driver *adrv = NULL; 1ac19ad799f880 Srinivas Kandagatla 2019-02-08 114 struct apr_resp_pkt resp; 1ac19ad799f880 Srinivas Kandagatla 2019-02-08 115 struct apr_hdr *hdr; 1ac19ad799f880 Srinivas Kandagatla 2019-02-08 116 unsigned long flags; 1ac19ad799f880 Srinivas Kandagatla 2019-02-08 117 void *buf = abuf->buf; 1ac19ad799f880 Srinivas Kandagatla 2019-02-08 118 int len = abuf->len; 1ac19ad799f880 Srinivas Kandagatla 2019-02-08 119 6adba21eb434d8 Srinivas Kandagatla 2018-05-09 120 hdr = buf; 6adba21eb434d8 Srinivas Kandagatla 2018-05-09 121 ver = APR_HDR_FIELD_VER(hdr->hdr_field); 6adba21eb434d8 Srinivas Kandagatla 2018-05-09 122 if (ver > APR_PKT_VER + 1) 6adba21eb434d8 Srinivas Kandagatla 2018-05-09 123 return -EINVAL; 6adba21eb434d8 Srinivas Kandagatla 2018-05-09 124 6adba21eb434d8 Srinivas Kandagatla 2018-05-09 125 hdr_size = APR_HDR_FIELD_SIZE_BYTES(hdr->hdr_field); 6adba21eb434d8 Srinivas Kandagatla 2018-05-09 126 if (hdr_size < APR_HDR_SIZE) { 6adba21eb434d8 Srinivas Kandagatla 2018-05-09 127 dev_err(apr->dev, "APR: Wrong hdr size:%d\n", hdr_size); 6adba21eb434d8 Srinivas Kandagatla 2018-05-09 128 return -EINVAL; 6adba21eb434d8 Srinivas Kandagatla 2018-05-09 129 } 6adba21eb434d8 Srinivas Kandagatla 2018-05-09 130 6adba21eb434d8 Srinivas Kandagatla 2018-05-09 131 if (hdr->pkt_size < APR_HDR_SIZE || hdr->pkt_size != len) { 35aac0ba88d55d Colin Ian King 2018-06-11 132 dev_err(apr->dev, "APR: Wrong packet size\n"); 6adba21eb434d8 Srinivas Kandagatla 2018-05-09 133 return -EINVAL; 6adba21eb434d8 Srinivas Kandagatla 2018-05-09 134 } 6adba21eb434d8 Srinivas Kandagatla 2018-05-09 135 6adba21eb434d8 Srinivas Kandagatla 2018-05-09 136 msg_type = APR_HDR_FIELD_MT(hdr->hdr_field); e744619d056e6e Srinivas Kandagatla 2018-05-17 137 if (msg_type >= APR_MSG_TYPE_MAX) { 6adba21eb434d8 Srinivas Kandagatla 2018-05-09 138 dev_err(apr->dev, "APR: Wrong message type: %d\n", msg_type); 6adba21eb434d8 Srinivas Kandagatla 2018-05-09 139 return -EINVAL; 6adba21eb434d8 Srinivas Kandagatla 2018-05-09 140 } 6adba21eb434d8 Srinivas Kandagatla 2018-05-09 141 6adba21eb434d8 Srinivas Kandagatla 2018-05-09 142 if (hdr->src_domain >= APR_DOMAIN_MAX || 6adba21eb434d8 Srinivas Kandagatla 2018-05-09 143 hdr->dest_domain >= APR_DOMAIN_MAX || 6adba21eb434d8 Srinivas Kandagatla 2018-05-09 144 hdr->src_svc >= APR_SVC_MAX || 6adba21eb434d8 Srinivas Kandagatla 2018-05-09 145 hdr->dest_svc >= APR_SVC_MAX) { 6adba21eb434d8 Srinivas Kandagatla 2018-05-09 146 dev_err(apr->dev, "APR: Wrong APR header\n"); 6adba21eb434d8 Srinivas Kandagatla 2018-05-09 147 return -EINVAL; 6adba21eb434d8 Srinivas Kandagatla 2018-05-09 148 } 6adba21eb434d8 Srinivas Kandagatla 2018-05-09 149 6adba21eb434d8 Srinivas Kandagatla 2018-05-09 150 svc_id = hdr->dest_svc; 6adba21eb434d8 Srinivas Kandagatla 2018-05-09 151 spin_lock_irqsave(&apr->svcs_lock, flags); 6adba21eb434d8 Srinivas Kandagatla 2018-05-09 152 svc = idr_find(&apr->svcs_idr, svc_id); 99139b80c1b3d7 Srinivas Kandagatla 2021-09-27 153 if (svc && svc->dev->driver) { 99139b80c1b3d7 Srinivas Kandagatla 2021-09-27 154 adev = svc_to_apr_device(svc); 99139b80c1b3d7 Srinivas Kandagatla 2021-09-27 155 adrv = to_apr_driver(adev->dev.driver); 99139b80c1b3d7 Srinivas Kandagatla 2021-09-27 156 } 6adba21eb434d8 Srinivas Kandagatla 2018-05-09 157 spin_unlock_irqrestore(&apr->svcs_lock, flags); 6adba21eb434d8 Srinivas Kandagatla 2018-05-09 158 99139b80c1b3d7 Srinivas Kandagatla 2021-09-27 @159 if (!adrv || !adev) { 99139b80c1b3d7 Srinivas Kandagatla 2021-09-27 160 dev_err(apr->dev, "APR: service is not registered (%d)\n", 99139b80c1b3d7 Srinivas Kandagatla 2021-09-27 161 svc_id); 6adba21eb434d8 Srinivas Kandagatla 2018-05-09 162 return -EINVAL; 6adba21eb434d8 Srinivas Kandagatla 2018-05-09 163 } 6adba21eb434d8 Srinivas Kandagatla 2018-05-09 164 6adba21eb434d8 Srinivas Kandagatla 2018-05-09 165 resp.hdr = *hdr; 6adba21eb434d8 Srinivas Kandagatla 2018-05-09 166 resp.payload_size = hdr->pkt_size - hdr_size; 6adba21eb434d8 Srinivas Kandagatla 2018-05-09 167 6adba21eb434d8 Srinivas Kandagatla 2018-05-09 168 /* 6adba21eb434d8 Srinivas Kandagatla 2018-05-09 169 * NOTE: hdr_size is not same as APR_HDR_SIZE as remote can include 6adba21eb434d8 Srinivas Kandagatla 2018-05-09 170 * optional headers in to apr_hdr which should be ignored 6adba21eb434d8 Srinivas Kandagatla 2018-05-09 171 */ 6adba21eb434d8 Srinivas Kandagatla 2018-05-09 172 if (resp.payload_size > 0) 6adba21eb434d8 Srinivas Kandagatla 2018-05-09 173 resp.payload = buf + hdr_size; 6adba21eb434d8 Srinivas Kandagatla 2018-05-09 174 99139b80c1b3d7 Srinivas Kandagatla 2021-09-27 175 adrv->callback(adev, &resp); 6adba21eb434d8 Srinivas Kandagatla 2018-05-09 176 6adba21eb434d8 Srinivas Kandagatla 2018-05-09 177 return 0; 6adba21eb434d8 Srinivas Kandagatla 2018-05-09 178 } 6adba21eb434d8 Srinivas Kandagatla 2018-05-09 179 -- 0-DAY CI Kernel Test Service https://01.org/lkp _______________________________________________ kbuild mailing list -- [email protected] To unsubscribe send an email to [email protected]
