mirror of https://gitee.com/openkylin/linux.git
staging: wilc1000: refactor wilc_wlan_handle_isr_ext to avoid goto statement
Refactor wilc_wlan_handle_isr_ext() to avoid the use of the goto label. Also avoid the unnecessary NULL check for 'wilc->rx_buffer' and calling wilc_wlan_handle_rxq() only after wilc_wlan_rxq_add() call. The link [1] contains details for discussion related to this changes. [1]. https://patchwork.kernel.org/patch/10533601/ Signed-off-by: Ajay Singh <ajay.kathat@microchip.com> Suggested-by: Dan Carpenter <dan.carpenter@oracle.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
49328076f6
commit
7878abdec9
|
@ -815,31 +815,28 @@ static void wilc_wlan_handle_isr_ext(struct wilc *wilc, u32 int_status)
|
|||
retries++;
|
||||
}
|
||||
|
||||
if (size > 0) {
|
||||
if (size <= 0)
|
||||
return;
|
||||
|
||||
if (LINUX_RX_SIZE - offset < size)
|
||||
offset = 0;
|
||||
|
||||
if (wilc->rx_buffer)
|
||||
buffer = &wilc->rx_buffer[offset];
|
||||
else
|
||||
goto end;
|
||||
|
||||
wilc->hif_func->hif_clear_int_ext(wilc,
|
||||
DATA_INT_CLR | ENABLE_RX_VMM);
|
||||
wilc->hif_func->hif_clear_int_ext(wilc, DATA_INT_CLR | ENABLE_RX_VMM);
|
||||
ret = wilc->hif_func->hif_block_rx_ext(wilc, 0, buffer, size);
|
||||
if (!ret)
|
||||
return;
|
||||
|
||||
end:
|
||||
if (ret) {
|
||||
offset += size;
|
||||
wilc->rx_buffer_offset = offset;
|
||||
rqe = kmalloc(sizeof(*rqe), GFP_KERNEL);
|
||||
if (rqe) {
|
||||
if (!rqe)
|
||||
return;
|
||||
|
||||
rqe->buffer = buffer;
|
||||
rqe->buffer_size = size;
|
||||
wilc_wlan_rxq_add(wilc, rqe);
|
||||
}
|
||||
}
|
||||
}
|
||||
wilc_wlan_handle_rxq(wilc);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue