]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
mtip32xx: fix incorrectly setting MTIP_DDF_SEC_LOCK_BIT
authorAsai Thambi SP <asamymuthupa@micron.com>
Mon, 11 May 2015 22:50:50 +0000 (15:50 -0700)
committerChuck Anderson <chuck.anderson@oracle.com>
Thu, 26 May 2016 22:46:16 +0000 (15:46 -0700)
Orabug: 23331087

[ Upstream commit ee04bed690cb49a49512a641405bac42d13c2b2a ]

Fix incorrectly setting MTIP_DDF_SEC_LOCK_BIT

Signed-off-by: Selvan Mani <smani@micron.com>
Signed-off-by: Asai Thambi S P <asamymuthupa@micron.com>
Signed-off-by: Jens Axboe <axboe@fb.com>
Signed-off-by: Sasha Levin <sasha.levin@oracle.com>
(cherry picked from commit 0e536ed27652e8d5d74e13378a8f48b52cb21c95)

Signed-off-by: Dan Duval <dan.duval@oracle.com>
drivers/block/mtip32xx/mtip32xx.c

index b4e5a971c16dc8eebb431d2bd6a4cbb7a9d746e3..2a174a6820304e9d5eb64c70bf24031ad72c7f03 100644 (file)
@@ -995,15 +995,11 @@ static bool mtip_pause_ncq(struct mtip_port *port,
        reply = port->rxfis + RX_FIS_D2H_REG;
        task_file_data = readl(port->mmio+PORT_TFDATA);
 
-       if (fis->command == ATA_CMD_SEC_ERASE_UNIT)
-               clear_bit(MTIP_DDF_SEC_LOCK_BIT, &port->dd->dd_flag);
-
        if ((task_file_data & 1))
                return false;
 
        if (fis->command == ATA_CMD_SEC_ERASE_PREP) {
                set_bit(MTIP_PF_SE_ACTIVE_BIT, &port->flags);
-               set_bit(MTIP_DDF_SEC_LOCK_BIT, &port->dd->dd_flag);
                port->ic_pause_timer = jiffies;
                return true;
        } else if ((fis->command == ATA_CMD_DOWNLOAD_MICRO) &&
@@ -1015,6 +1011,7 @@ static bool mtip_pause_ncq(struct mtip_port *port,
                ((fis->command == 0xFC) &&
                        (fis->features == 0x27 || fis->features == 0x72 ||
                         fis->features == 0x62 || fis->features == 0x26))) {
+               clear_bit(MTIP_DDF_SEC_LOCK_BIT, &port->dd->dd_flag);
                /* Com reset after secure erase or lowlevel format */
                mtip_restart_port(port);
                return false;