[alsa-devel] ASoC: Intel: sst: Add IPC handling
Dan Carpenter
dan.carpenter at oracle.com
Tue Nov 25 10:20:31 CET 2014
Hello Vinod Koul,
The patch ea12aa4acd70: "ASoC: Intel: sst: Add IPC handling" from Oct
16, 2014, leads to the following static checker warning:
sound/soc/intel/sst/sst_ipc.c:340 sst_process_reply_mrfld()
warn: we tested 'drv_id' before and it was 'true'
sound/soc/intel/sst/sst_ipc.c
330 drv_id = msg_high.part.drv_id;
331
332 /* Check for async messages first */
333 if (drv_id == SST_ASYNC_DRV_ID) {
^^^^^^^^^^^^^^^^
This is zero.
334 /*FW sent async large message*/
335 process_fw_async_msg(sst_drv_ctx, msg);
336 return;
337 }
338
339 /* FW sent short error response for an IPC */
340 if (msg_high.part.result && drv_id && !msg_high.part.large) {
^^^^^^
So this is non-zero. The thinking behind these warnings is that maybe
a different test was intended. What does a non-zero drv_id mean which
is different from checking SST_ASYNC_DRV_ID? The intent is not clear.
In other words, would it be more readable to test "drv_id != SST_ASYNC_DRV_ID"?
But in that case, we would just leave the test out since we obviously
tested for that earlier.
341 /* 32-bit FW error code in msg_low */
342 dev_err(sst_drv_ctx->dev, "FW sent error response 0x%x", msg_low);
343 sst_wake_up_block(sst_drv_ctx, msg_high.part.result,
344 msg_high.part.drv_id,
345 msg_high.part.msg_id, NULL, 0);
346 return;
347 }
348
regards,
dan carpenter
More information about the Alsa-devel
mailing list