staging/sep: Check pointers before dereferencing (fix smatch warning)
smatch complains about two dereferenced before check issues: sep_main.c:2898 sep_free_dma_tables_and_dcb() warn: variable dereferenced before check 'dma_ctx' (see line 2885) sep_main.c:2898 sep_free_dma_tables_and_dcb() warn: variable dereferenced before check '*dma_ctx' (see line 2885) -> Move the checks to the top, but keep the semantics. Signed-off-by: Peter Huewe <peterhuewe@gmx.de> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
c37aeab625
commit
eb1bd49c50
@ -2880,6 +2880,8 @@ static int sep_free_dma_tables_and_dcb(struct sep_device *sep, bool isapplet,
|
||||
|
||||
dev_dbg(&sep->pdev->dev, "[PID%d] sep_free_dma_tables_and_dcb\n",
|
||||
current->pid);
|
||||
if (!dma_ctx || !*dma_ctx) /* nothing to be done here*/
|
||||
return 0;
|
||||
|
||||
if (((*dma_ctx)->secure_dma == false) && (isapplet == true)) {
|
||||
dev_dbg(&sep->pdev->dev, "[PID%d] handling applet\n",
|
||||
@ -2895,8 +2897,7 @@ static int sep_free_dma_tables_and_dcb(struct sep_device *sep, bool isapplet,
|
||||
* Go over each DCB and see if
|
||||
* tail pointer must be updated
|
||||
*/
|
||||
for (i = 0; dma_ctx && *dma_ctx &&
|
||||
i < (*dma_ctx)->nr_dcb_creat; i++, dcb_table_ptr++) {
|
||||
for (i = 0; i < (*dma_ctx)->nr_dcb_creat; i++, dcb_table_ptr++) {
|
||||
if (dcb_table_ptr->out_vr_tail_pt) {
|
||||
pt_hold = (unsigned long)dcb_table_ptr->
|
||||
out_vr_tail_pt;
|
||||
|
Loading…
x
Reference in New Issue
Block a user