{"id":2222517,"url":"http://patchwork.ozlabs.org/api/1.2/patches/2222517/?format=json","web_url":"http://patchwork.ozlabs.org/project/linux-ide/patch/20260412153637.475606-1-ipylypiv@google.com/","project":{"id":13,"url":"http://patchwork.ozlabs.org/api/1.2/projects/13/?format=json","name":"Linux IDE development","link_name":"linux-ide","list_id":"linux-ide.vger.kernel.org","list_email":"linux-ide@vger.kernel.org","web_url":null,"scm_url":null,"webscm_url":null,"list_archive_url":"","list_archive_url_format":"","commit_url_format":""},"msgid":"<20260412153637.475606-1-ipylypiv@google.com>","list_archive_url":null,"date":"2026-04-12T15:36:37","name":"[v=2] ata: libata-scsi: fix requeue of deferred ATA PASS-THROUGH commands","commit_ref":null,"pull_url":null,"state":"new","archived":false,"hash":"c994906f09be8a7f7e2a38163abfbae578b2761c","submitter":{"id":86149,"url":"http://patchwork.ozlabs.org/api/1.2/people/86149/?format=json","name":"Igor Pylypiv","email":"ipylypiv@google.com"},"delegate":null,"mbox":"http://patchwork.ozlabs.org/project/linux-ide/patch/20260412153637.475606-1-ipylypiv@google.com/mbox/","series":[{"id":499613,"url":"http://patchwork.ozlabs.org/api/1.2/series/499613/?format=json","web_url":"http://patchwork.ozlabs.org/project/linux-ide/list/?series=499613","date":"2026-04-12T15:36:37","name":"[v=2] ata: libata-scsi: fix requeue of deferred ATA PASS-THROUGH commands","version":1,"mbox":"http://patchwork.ozlabs.org/series/499613/mbox/"}],"comments":"http://patchwork.ozlabs.org/api/patches/2222517/comments/","check":"pending","checks":"http://patchwork.ozlabs.org/api/patches/2222517/checks/","tags":{},"related":[],"headers":{"Return-Path":"\n <linux-ide+bounces-5478-incoming=patchwork.ozlabs.org@vger.kernel.org>","X-Original-To":["incoming@patchwork.ozlabs.org","linux-ide@vger.kernel.org"],"Delivered-To":"patchwork-incoming@legolas.ozlabs.org","Authentication-Results":["legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=google.com header.i=@google.com header.a=rsa-sha256\n header.s=20251104 header.b=dH4q2jSr;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org\n (client-ip=2600:3c15:e001:75::12fc:5321; helo=sin.lore.kernel.org;\n envelope-from=linux-ide+bounces-5478-incoming=patchwork.ozlabs.org@vger.kernel.org;\n receiver=patchwork.ozlabs.org)","smtp.subspace.kernel.org;\n\tdkim=pass (2048-bit key) header.d=google.com header.i=@google.com\n header.b=\"dH4q2jSr\"","smtp.subspace.kernel.org;\n arc=none smtp.client-ip=209.85.210.201","smtp.subspace.kernel.org;\n dmarc=pass (p=reject dis=none) header.from=google.com","smtp.subspace.kernel.org;\n spf=pass smtp.mailfrom=flex--ipylypiv.bounces.google.com"],"Received":["from sin.lore.kernel.org (sin.lore.kernel.org\n [IPv6:2600:3c15:e001:75::12fc:5321])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519 server-signature ECDSA (secp384r1) server-digest SHA384)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4ftvm267cXz1xtJ\n\tfor <incoming@patchwork.ozlabs.org>; Mon, 13 Apr 2026 01:36:50 +1000 (AEST)","from smtp.subspace.kernel.org (conduit.subspace.kernel.org\n [100.90.174.1])\n\tby sin.lore.kernel.org (Postfix) with ESMTP id 2C814300290E\n\tfor <incoming@patchwork.ozlabs.org>; Sun, 12 Apr 2026 15:36:47 +0000 (UTC)","from localhost.localdomain (localhost.localdomain [127.0.0.1])\n\tby smtp.subspace.kernel.org (Postfix) with ESMTP id 14F87EEBB;\n\tSun, 12 Apr 2026 15:36:44 +0000 (UTC)","from mail-pf1-f201.google.com (mail-pf1-f201.google.com\n [209.85.210.201])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))\n\t(No client certificate requested)\n\tby smtp.subspace.kernel.org (Postfix) with ESMTPS id 2A146CA5A\n\tfor <linux-ide@vger.kernel.org>; Sun, 12 Apr 2026 15:36:42 +0000 (UTC)","by mail-pf1-f201.google.com with SMTP id\n d2e1a72fcca58-82f3eaf4b9aso41534b3a.0\n        for <linux-ide@vger.kernel.org>; Sun, 12 Apr 2026 08:36:42 -0700 (PDT)"],"ARC-Seal":"i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;\n\tt=1776008204; cv=none;\n b=j2F1Wp3qOvIDSwUXRxJhaIsUqPoHEVx6r2Ti7l0jb1lHizyFMMw3O1ToF90rWXO51fOEyf5zgxVAOOqeWLYBx42oJrTKccBgz8bY5CBYHlXuiOPuVHi/iBuVngggwXb2Bx3W9S/gJtatT1meYNBWvWRaxBNUmzbDqLDgMo+86vI=","ARC-Message-Signature":"i=1; a=rsa-sha256; d=subspace.kernel.org;\n\ts=arc-20240116; t=1776008204; c=relaxed/simple;\n\tbh=tRRvi5YtRVXMY4QJsM9F6kWKMx/wNMB3++ordcHvjY0=;\n\th=Date:Mime-Version:Message-ID:Subject:From:To:Cc:Content-Type;\n b=TwoNoblCz/vErARKcwxGIU83APqMCRaQOdOyV9zI0WHwrySA/C+Mjy11DVq/Znyjh2i2azN7+tTjK4rwUAFWU9Lc80OjMHgMG2W6EBxBcHBlxZ3pyQ2gKxIJCFNZKQv+DB29N9uWbagAcDSnlmRbvDexGQDFLoOfkOUWNmDoCwc=","ARC-Authentication-Results":"i=1; smtp.subspace.kernel.org;\n dmarc=pass (p=reject dis=none) header.from=google.com;\n spf=pass smtp.mailfrom=flex--ipylypiv.bounces.google.com;\n dkim=pass (2048-bit key) header.d=google.com header.i=@google.com\n header.b=dH4q2jSr; arc=none smtp.client-ip=209.85.210.201","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n        d=google.com; s=20251104; t=1776008201; x=1776613001;\n darn=vger.kernel.org;\n        h=cc:to:from:subject:message-id:mime-version:date:from:to:cc:subject\n         :date:message-id:reply-to;\n        bh=zIIsrwYoyoyzN/bzsbXwITV0IR2iB/tzp3wGCo7y0Zw=;\n        b=dH4q2jSreBUceZPNq96jlFO823mQDHP1sJS3qfgaduuEDke2pyNjhy/Tu4KYeTzAIk\n         Q2y1S+jlvhHz+H9b72OpyQLDa9zVdQllYnY+h12u7/zG/Z9D9yUTkjl7FTVJPSrcRest\n         mehqBFyiRsxwJYRDScdb0om9tfuGWkJn68Mft+iWlshVmZneBrX9n7B2DdVPsPG6v4+u\n         9wX+P7Nt1Y5baYCuV7+LHMBau1hEeRrlkoUmmDAU2jSsFhCeLEfEMk3M/pv9gtDmZdmz\n         8aVkaxY9H3wFcTWR8QYuALhnBmACvypp4ekBY2QQpS3o3StC4iJTWE9Fz5HMBri9Jscz\n         kl1g==","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n        d=1e100.net; s=20251104; t=1776008201; x=1776613001;\n        h=cc:to:from:subject:message-id:mime-version:date:x-gm-message-state\n         :from:to:cc:subject:date:message-id:reply-to;\n        bh=zIIsrwYoyoyzN/bzsbXwITV0IR2iB/tzp3wGCo7y0Zw=;\n        b=QPjQs6CsMzWkYN9ON8WYepPbnOJ2TMN3e9dPwCa8yM1ZbB6CPtvErE+FZ5ruqgc56f\n         rGrhX4R4+uSw2XCAbmc14EEC3RzC9i/eY4y6AtCY0/iEgrfYAPmFUgPniCx2px4xFcxi\n         qJen3ALZv5/S8zjNd8LjULq5Y3TpS2LCoMRQcah42Vy33m1k99QsYISQtXYQmz90yjbP\n         YSHsNEA3BkE3w2eg9MEuTZA8tjkbY9ICBovQ/yFKDy14G7sQOsDdAfP7wXsuSFdwVDnB\n         r5faZ1PH3CUNOd8RvEe8iUHuSjXM6eygHdwei2fQ0dlmZdnC7FNdQitCN8lRwlTfotO9\n         UwXQ==","X-Forwarded-Encrypted":"i=1;\n AFNElJ+6cAbUlYu6+TQqGenHcXtyzMXhWsOIxSnbGaT4hw1h/W5StF8oISYxQ0mLD04zxKt1vaco/jj5yzU=@vger.kernel.org","X-Gm-Message-State":"AOJu0YxaRxH3FaAdlyC6V4MDlVFe3EvueA4MKn2wiD6tPAuH2GVTJ0JL\n\th+mo4Y8zdGGt3i3uvHBsqofapUyP8V5faegW3Ul/T2GX8LLnS/bzprE/8dQiLL7NVUmMly3et0H\n\thlIKH1+kZCy2xIA==","X-Received":"from pfgs39.prod.google.com\n ([2002:a05:6a00:17a7:b0:82c:e9cd:a73f])\n (user=ipylypiv job=prod-delivery.src-stubby-dispatcher) by\n 2002:a05:6a00:3e05:b0:82f:37e3:ae72 with SMTP id\n d2e1a72fcca58-82f37e3b155mr2033486b3a.5.1776008201289;\n Sun, 12 Apr 2026 08:36:41 -0700 (PDT)","Date":"Sun, 12 Apr 2026 08:36:37 -0700","Precedence":"bulk","X-Mailing-List":"linux-ide@vger.kernel.org","List-Id":"<linux-ide.vger.kernel.org>","List-Subscribe":"<mailto:linux-ide+subscribe@vger.kernel.org>","List-Unsubscribe":"<mailto:linux-ide+unsubscribe@vger.kernel.org>","Mime-Version":"1.0","X-Mailer":"git-send-email 2.53.0.1213.gd9a14994de-goog","Message-ID":"<20260412153637.475606-1-ipylypiv@google.com>","Subject":"[PATCH v=2] ata: libata-scsi: fix requeue of deferred ATA\n PASS-THROUGH commands","From":"Igor Pylypiv <ipylypiv@google.com>","To":"Damien Le Moal <dlemoal@kernel.org>, Niklas Cassel <cassel@kernel.org>","Cc":"\"Martin K. Petersen\" <martin.petersen@oracle.com>,\n John Garry <john.g.garry@oracle.com>,\n\tXingui Yang <yangxingui@huawei.com>, linux-ide@vger.kernel.org,\n\tlinux-kernel@vger.kernel.org, Igor Pylypiv <ipylypiv@google.com>","Content-Type":"text/plain; charset=\"UTF-8\""},"content":"Commit 0ea84089dbf6 (\"ata: libata-scsi: avoid Non-NCQ command starvation\")\nintroduced ata_scsi_requeue_deferred_qc() to handle commands deferred\nduring resets or NCQ failures. This deferral logic completed commands\nwith DID_SOFT_ERROR to trigger a retry in the SCSI mid-layer.\n\nHowever, DID_SOFT_ERROR is subject to scsi_cmd_retry_allowed() checks.\nATA PASS-THROUGH commands sent via SG_IO ioctl have scmd->allowed set\nto zero. This causes the mid-layer to fail the command immediately\ninstead of retrying, even though the command was never actually issued\nto the hardware.\n\nSwitch to DID_REQUEUE to ensure these commands are inserted back into\nthe request queue regardless of retry limits.\n\nFixes: 0ea84089dbf6 (\"ata: libata-scsi: avoid Non-NCQ command starvation\")\nReviewed-by: Damien Le Moal <dlemoal@kernel.org>\nSigned-off-by: Igor Pylypiv <ipylypiv@google.com>\n---\n\nChanges from v1:\n- Dropped the usage of set_host_byte() because it is logically a separate\n  change from what this commit is fixing. set_host_byte() does not clear\n  the status byte and the ML byte.\n\n drivers/ata/libata-scsi.c | 4 ++--\n 1 file changed, 2 insertions(+), 2 deletions(-)","diff":"diff --git a/drivers/ata/libata-scsi.c b/drivers/ata/libata-scsi.c\nindex 3b65df914ebb..cd607911d724 100644\n--- a/drivers/ata/libata-scsi.c\n+++ b/drivers/ata/libata-scsi.c\n@@ -1692,7 +1692,7 @@ void ata_scsi_requeue_deferred_qc(struct ata_port *ap)\n \t/*\n \t * If we have a deferred qc when a reset occurs or NCQ commands fail,\n \t * do not try to be smart about what to do with this deferred command\n-\t * and simply retry it by completing it with DID_SOFT_ERROR.\n+\t * and simply requeue it by completing it with DID_REQUEUE.\n \t */\n \tif (!qc)\n \t\treturn;\n@@ -1701,7 +1701,7 @@ void ata_scsi_requeue_deferred_qc(struct ata_port *ap)\n \tap->deferred_qc = NULL;\n \tcancel_work(&ap->deferred_qc_work);\n \tata_qc_free(qc);\n-\tscmd->result = (DID_SOFT_ERROR << 16);\n+\tscmd->result = (DID_REQUEUE << 16);\n \tscsi_done(scmd);\n }\n \n","prefixes":["v=2"]}