{"id":2222230,"url":"http://patchwork.ozlabs.org/api/1.1/patches/2222230/?format=json","web_url":"http://patchwork.ozlabs.org/project/linux-ide/patch/20260410231519.951971-1-ipylypiv@google.com/","project":{"id":13,"url":"http://patchwork.ozlabs.org/api/1.1/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},"msgid":"<20260410231519.951971-1-ipylypiv@google.com>","date":"2026-04-10T23:15:19","name":"ata: libata-scsi: fix requeue of deferred ATA PASS-THROUGH commands","commit_ref":null,"pull_url":null,"state":"new","archived":false,"hash":"fb405e2d08bcae79d4824b5a7e75b4dc118538f7","submitter":{"id":86149,"url":"http://patchwork.ozlabs.org/api/1.1/people/86149/?format=json","name":"Igor Pylypiv","email":"ipylypiv@google.com"},"delegate":null,"mbox":"http://patchwork.ozlabs.org/project/linux-ide/patch/20260410231519.951971-1-ipylypiv@google.com/mbox/","series":[{"id":499515,"url":"http://patchwork.ozlabs.org/api/1.1/series/499515/?format=json","web_url":"http://patchwork.ozlabs.org/project/linux-ide/list/?series=499515","date":"2026-04-10T23:15:19","name":"ata: libata-scsi: fix requeue of deferred ATA PASS-THROUGH commands","version":1,"mbox":"http://patchwork.ozlabs.org/series/499515/mbox/"}],"comments":"http://patchwork.ozlabs.org/api/patches/2222230/comments/","check":"pending","checks":"http://patchwork.ozlabs.org/api/patches/2222230/checks/","tags":{},"headers":{"Return-Path":"\n <linux-ide+bounces-5471-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=svKvEKWS;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org\n (client-ip=2600:3c0a:e001:db::12fc:5321; helo=sea.lore.kernel.org;\n envelope-from=linux-ide+bounces-5471-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=\"svKvEKWS\"","smtp.subspace.kernel.org;\n arc=none smtp.client-ip=209.85.215.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 sea.lore.kernel.org (sea.lore.kernel.org\n [IPv6:2600:3c0a:e001:db::12fc:5321])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4fst2v6Cyjz1yCx\n\tfor <incoming@patchwork.ozlabs.org>; Sat, 11 Apr 2026 09:16:07 +1000 (AEST)","from smtp.subspace.kernel.org (conduit.subspace.kernel.org\n [100.90.174.1])\n\tby sea.lore.kernel.org (Postfix) with ESMTP id C5EE53014C39\n\tfor <incoming@patchwork.ozlabs.org>; Fri, 10 Apr 2026 23:15:26 +0000 (UTC)","from localhost.localdomain (localhost.localdomain [127.0.0.1])\n\tby smtp.subspace.kernel.org (Postfix) with ESMTP id 3013B387374;\n\tFri, 10 Apr 2026 23:15:26 +0000 (UTC)","from mail-pg1-f201.google.com (mail-pg1-f201.google.com\n [209.85.215.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 EF78536215B\n\tfor <linux-ide@vger.kernel.org>; Fri, 10 Apr 2026 23:15:24 +0000 (UTC)","by mail-pg1-f201.google.com with SMTP id\n 41be03b00d2f7-bce224720d8so1543736a12.1\n        for <linux-ide@vger.kernel.org>; Fri, 10 Apr 2026 16:15:24 -0700 (PDT)"],"ARC-Seal":"i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;\n\tt=1775862926; cv=none;\n b=eNSe/u8RnJ1sRxDfwGB0onwWH6eXp3OVYPei27ZRlffdlF7YStqXWCv56QZ/EbAi4J70WzPSPCJ8kMYDCyATWCYk1b40lg5PljmyZnU8Z2DyZNAy7uCqzZzIUywgWSMBR1SLF9+k4jsWbVD+oyqLTWwTv2iNXHM7pK576rfFaXI=","ARC-Message-Signature":"i=1; a=rsa-sha256; d=subspace.kernel.org;\n\ts=arc-20240116; t=1775862926; c=relaxed/simple;\n\tbh=eYuxISrv/X3k5TUxzKbWNdINLoBc4naew/tA8xDUQto=;\n\th=Date:Mime-Version:Message-ID:Subject:From:To:Cc:Content-Type;\n b=t6QSjMKQN3pVbPmzYJ5+Am8cW9JHEInXBkqnEO6TbRIt1sx6CdlGlFRr02AeYmx8R0pycpYCig7W/7zhtEApb4U4QuaQRNof4KWFVBhYcDax9V2U8RNqIhai4yyN3kKfTU+dVS4O6+6VenlsJhA4Z+E7QGVDmK7wZ3UxheGda5o=","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=svKvEKWS; arc=none smtp.client-ip=209.85.215.201","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n        d=google.com; s=20251104; t=1775862924; x=1776467724;\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=fNacGDc773uS+o0Qj3GHlGLX7hbC2zRPARQZrbsF57c=;\n        b=svKvEKWSV2MGh/gVwFLVBnidSuGazeiuC7bEwx1mCIsG8+Pe7tyiJb1UyIgm+kSIDp\n         etq4PnFYJRH/hwZO5UdBeFvc1hp5dD9nc3wkbrlgDVPH5Cb60W5N6IGvDzHDzC+QFzvr\n         CP/kuw2gD3ovnL02grnV9VOA+wA/b/j7Pxh9qkwoXUaVJrLOfiPhF1KsH2C1C2MvdIWK\n         7sJjt54vl5bMIH5VgnWBnSW7rK8xPbHszQtIembD4sqt2jg437b3ic7Q1+aHhlE+3j8R\n         Wq0LhkWWxm4UvPUck8l+XjuIPbyiLjGHN7tHyNL1gRANBowg0Y5K9GSVxziCRDDjwCNY\n         qD4Q==","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n        d=1e100.net; s=20251104; t=1775862924; x=1776467724;\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=fNacGDc773uS+o0Qj3GHlGLX7hbC2zRPARQZrbsF57c=;\n        b=ebFNw5j/UF3r4hlOo8jygPpfj1P51+I3NGW8LDrrlffXUsQU2TXQAZlFtCA52edsMh\n         C8Ha+XQpr+FoV85EQGTXSEot73WHLHLrZxMHNIKy1EO+0U9q1AlfEglP6AdxqGCG4ET2\n         O/KNyf0YvGpsSWmX5vafYIyfu+uA4mdHtwDqNdiWraGpqiU3xiosFbcakCsY/Nkquvv6\n         AEI10KkkDVmI+lvTQJxPsz+FoeAQ8nfj5NlMO1HiG43HI9nNRkTdgx4VvlrAoMybnE6F\n         vKh2mSZ8OuUVeLdV8nmEHP9Iq6RX40MC2L/gEx0ob8gr4jh45kHZzF15rxHXeI0isUHh\n         HTVA==","X-Forwarded-Encrypted":"i=1;\n AJvYcCV/hyjbYdZDq9OowmzWI4yb1QZA3v7MQOaV8+BMEETTLtn5p42Ml5B8iSDDyCIu/s9lptYud0gYB/Q=@vger.kernel.org","X-Gm-Message-State":"AOJu0YzxBRdINTX/G7EZvrunIKSFnPDWNQ/x9g7Jt5miMzl3RjdpMbef\n\t6EHxx90B47PCI2jGPeujUijIUPNvsXNS0gbfAVKyn7zvvc+nnAzBEVRVZCsvMDTUIP6M6AG3Wiq\n\tl0SinzIAMyaF8zA==","X-Received":"from pfbgm23.prod.google.com ([2002:a05:6a00:6417:b0:82f:e13:111])\n (user=ipylypiv job=prod-delivery.src-stubby-dispatcher) by\n 2002:a05:6a21:9987:b0:39b:87f0:758e with SMTP id\n adf61e73a8af0-39fe3c98388mr5711085637.8.1775862924120;\n Fri, 10 Apr 2026 16:15:24 -0700 (PDT)","Date":"Fri, 10 Apr 2026 16:15:19 -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":"<20260410231519.951971-1-ipylypiv@google.com>","Subject":"[PATCH] ata: libata-scsi: fix requeue of deferred ATA PASS-THROUGH\n 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\")\nSigned-off-by: Igor Pylypiv <ipylypiv@google.com>\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..0236394900cc 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+\tset_host_byte(scmd, DID_REQUEUE);\n \tscsi_done(scmd);\n }\n \n","prefixes":[]}