ata_qc_from_tag() may return a null pointer and further lead to null-pointer-dereference. Add a return value check to avoid such case. Signed-off-by: Dinghao Liu <dinghao.liu@xxxxxxxxxx> --- drivers/ata/sata_dwc_460ex.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/drivers/ata/sata_dwc_460ex.c b/drivers/ata/sata_dwc_460ex.c index 9dcef6ac643b..0068247ffc06 100644 --- a/drivers/ata/sata_dwc_460ex.c +++ b/drivers/ata/sata_dwc_460ex.c @@ -548,8 +548,10 @@ static irqreturn_t sata_dwc_isr(int irq, void *dev_instance) * active tag. It is the tag that matches the command about to * be completed. */ - qc->ap->link.active_tag = tag; - sata_dwc_bmdma_start_by_tag(qc, tag); + if (qc) { + qc->ap->link.active_tag = tag; + sata_dwc_bmdma_start_by_tag(qc, tag); + } handled = 1; goto DONE; -- 2.17.1