Signed-off-by: Heloise <o...@iscas.ac.cn>

mtip_async_complete() uses the variable port 'port->dd'at the begining, then
validates null-pointer dereference of port 'unlikely(!port)'. Change the order
of validation.
---
 drivers/block/mtip32xx/mtip32xx.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/drivers/block/mtip32xx/mtip32xx.c 
b/drivers/block/mtip32xx/mtip32xx.c
index 1d1dc11..feed61a 100644
--- a/drivers/block/mtip32xx/mtip32xx.c
+++ b/drivers/block/mtip32xx/mtip32xx.c
@@ -228,10 +228,13 @@ static struct mtip_cmd *mtip_cmd_from_tag(struct 
driver_data *dd,
 static void mtip_async_complete(struct mtip_port *port,
                                int tag, struct mtip_cmd *cmd, int status)
 {
+       if (unlikely(!port))
+               return;
+
        struct driver_data *dd = port->dd;
        struct request *rq;
 
-       if (unlikely(!dd) || unlikely(!port))
+       if (unlikely(!dd))
                return;
 
        if (unlikely(status == PORT_IRQ_TF_ERR)) {
-- 
2.1.0


Reply via email to