[PATCH] drivers:block:mtip32xx:mtip32xx:change the order of null-pointer dereference validation

From: Heloise
Date: Tue Apr 25 2017 - 21:38:38 EST


Signed-off-by: Heloise <os@xxxxxxxxxxx>

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