Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/1.1/patches/2225155/?format=api
{ "id": 2225155, "url": "http://patchwork.ozlabs.org/api/1.1/patches/2225155/?format=api", "web_url": "http://patchwork.ozlabs.org/project/linux-ide/patch/20260420122321.4161027-2-philpem@philpem.me.uk/", "project": { "id": 13, "url": "http://patchwork.ozlabs.org/api/1.1/projects/13/?format=api", "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": "<20260420122321.4161027-2-philpem@philpem.me.uk>", "date": "2026-04-20T12:23:17", "name": "[v2,1/5] ata: libata-scsi: add atapi_max_lun module parameter", "commit_ref": null, "pull_url": null, "state": "new", "archived": false, "hash": "84fa22356b9ad5c8c93c28a0c9ed67e12e39433b", "submitter": { "id": 93108, "url": "http://patchwork.ozlabs.org/api/1.1/people/93108/?format=api", "name": "Phil Pemberton", "email": "philpem@philpem.me.uk" }, "delegate": null, "mbox": "http://patchwork.ozlabs.org/project/linux-ide/patch/20260420122321.4161027-2-philpem@philpem.me.uk/mbox/", "series": [ { "id": 500602, "url": "http://patchwork.ozlabs.org/api/1.1/series/500602/?format=api", "web_url": "http://patchwork.ozlabs.org/project/linux-ide/list/?series=500602", "date": "2026-04-20T12:23:21", "name": "ata: libata-scsi: multi-LUN ATAPI device support", "version": 2, "mbox": "http://patchwork.ozlabs.org/series/500602/mbox/" } ], "comments": "http://patchwork.ozlabs.org/api/patches/2225155/comments/", "check": "pending", "checks": "http://patchwork.ozlabs.org/api/patches/2225155/checks/", "tags": {}, "headers": { "Return-Path": "\n <linux-ide+bounces-5497-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 (1024-bit key;\n unprotected) header.d=philpem.me.uk header.i=@philpem.me.uk\n header.a=rsa-sha256 header.s=mail header.b=FZUbyZKg;\n\tdkim-atps=neutral", "legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org\n (client-ip=172.105.105.114; helo=tor.lore.kernel.org;\n envelope-from=linux-ide+bounces-5497-incoming=patchwork.ozlabs.org@vger.kernel.org;\n receiver=patchwork.ozlabs.org)", "smtp.subspace.kernel.org;\n\tdkim=pass (1024-bit key) header.d=philpem.me.uk header.i=@philpem.me.uk\n header.b=\"FZUbyZKg\"", "smtp.subspace.kernel.org;\n arc=none smtp.client-ip=178.62.38.78", "smtp.subspace.kernel.org;\n dmarc=pass (p=reject dis=none) header.from=philpem.me.uk", "smtp.subspace.kernel.org;\n spf=pass smtp.mailfrom=philpem.me.uk" ], "Received": [ "from tor.lore.kernel.org (tor.lore.kernel.org [172.105.105.114])\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 4fzlgs1nqGz1yCv\n\tfor <incoming@patchwork.ozlabs.org>; Mon, 20 Apr 2026 22:50:01 +1000 (AEST)", "from smtp.subspace.kernel.org (conduit.subspace.kernel.org\n [100.90.174.1])\n\tby tor.lore.kernel.org (Postfix) with ESMTP id 60AA5304BB95\n\tfor <incoming@patchwork.ozlabs.org>; Mon, 20 Apr 2026 12:45:31 +0000 (UTC)", "from localhost.localdomain (localhost.localdomain [127.0.0.1])\n\tby smtp.subspace.kernel.org (Postfix) with ESMTP id 19B8539EF1C;\n\tMon, 20 Apr 2026 12:45:27 +0000 (UTC)", "from nick.sneptech.io (nick.sneptech.io [178.62.38.78])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))\n\t(No client certificate requested)\n\tby smtp.subspace.kernel.org (Postfix) with ESMTPS id 8E063393DF9;\n\tMon, 20 Apr 2026 12:45:25 +0000 (UTC)", "from wolf.philpem.me.uk (81-187-163-148.ip4.reverse-dns.uk\n [81.187.163.148])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest\n SHA256)\n\t(No client certificate requested)\n\t(Authenticated sender: mailrelay_wolf@philpem.me.uk)\n\tby nick.sneptech.io (Postfix) with ESMTPSA id 29798BEFDF;\n\tMon, 20 Apr 2026 12:23:29 +0000 (UTC)", "from cheetah.homenet.philpem.me.uk (cheetah.homenet.philpem.me.uk\n [10.0.0.32])\n\tby wolf.philpem.me.uk (Postfix) with ESMTPSA id 92E385FC55;\n\tMon, 20 Apr 2026 13:23:28 +0100 (BST)" ], "ARC-Seal": "i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;\n\tt=1776689127; cv=none;\n b=cz5/JIEE4nH5KjcnOnOBkEE4OhGny8HJjiuKR3NJjOF3oarpnGqp/hUqVnzrWKLjFh2p6EHREAzqAoqCpe4/pLxFdQEw7JkSeXLoZRVraZ1nxwGx0Cv/grJBconxF8ZUCU04Bl1SEJm9bCZJ1EROpKzLR1a/8hX9uWlI32zP/0Q=", "ARC-Message-Signature": "i=1; a=rsa-sha256; d=subspace.kernel.org;\n\ts=arc-20240116; t=1776689127; c=relaxed/simple;\n\tbh=IsQYB9LYP2StV7D93d0U0QPltWvtmbEQheG5KxO1iFk=;\n\th=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References:\n\t MIME-Version;\n b=A6BqElmxZQVEfpgqYT22xZBRyNX6PKIjXFsoEa4aX7Hn28Nt2IObPru7sCt4FIV+cKSkDDbQ5ho7zuka6H6PGa5XOWZsimvguWLtU1iSVE4ZUgppLkxAvpc+yj0AGVqoGByluqQReAbG1j9LdCZxbe38DlAZkXJ2P0NA/9fVJXg=", "ARC-Authentication-Results": "i=1; smtp.subspace.kernel.org;\n dmarc=pass (p=reject dis=none) header.from=philpem.me.uk;\n spf=pass smtp.mailfrom=philpem.me.uk;\n dkim=pass (1024-bit key) header.d=philpem.me.uk header.i=@philpem.me.uk\n header.b=FZUbyZKg; arc=none smtp.client-ip=178.62.38.78", "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/simple; d=philpem.me.uk;\n\ts=mail; t=1776687809;\n\tbh=IsQYB9LYP2StV7D93d0U0QPltWvtmbEQheG5KxO1iFk=;\n\th=From:To:Cc:Subject:Date:In-Reply-To:References:From;\n\tb=FZUbyZKgJLFAzEaox7bK5/6kz2r6+nyNEbV0smo3ZzaReae7EP8JE46KyE8KJYoCw\n\t 8BSTnDj8hMal1SJ/Y/bbkhueQ/Z0MquGVF12+Qb6hOUsVaCNh9fC/NEuIDnUlIH6wM\n\t 4C7usrl57otnvKj8X4YWrUS+I6qEsIpGGIP9kd4c=", "From": "Phil Pemberton <philpem@philpem.me.uk>", "To": "Damien Le Moal <dlemoal@kernel.org>,\n\tNiklas Cassel <cassel@kernel.org>", "Cc": "\"James E . J . Bottomley\" <James.Bottomley@HansenPartnership.com>,\n\t\"Martin K . Petersen\" <martin.petersen@oracle.com>,\n\tHannes Reinecke <hare@suse.de>,\n\tlinux-ide@vger.kernel.org,\n\tlinux-scsi@vger.kernel.org,\n\tlinux-kernel@vger.kernel.org,\n\tPhil Pemberton <philpem@philpem.me.uk>", "Subject": "[PATCH v2 1/5] ata: libata-scsi: add atapi_max_lun module parameter", "Date": "Mon, 20 Apr 2026 13:23:17 +0100", "Message-ID": "<20260420122321.4161027-2-philpem@philpem.me.uk>", "X-Mailer": "git-send-email 2.43.0", "In-Reply-To": "<20260420122321.4161027-1-philpem@philpem.me.uk>", "References": "<20260420122321.4161027-1-philpem@philpem.me.uk>", "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", "Content-Transfer-Encoding": "8bit" }, "content": "Until now libata has hard-coded shost->max_lun = 1 for every ATA host,\nso the SCSI layer never scans past LUN 0. This blocks support for\nthe small handful of multi-LUN ATAPI devices (Panasonic LF-1195C and\nCOMPAQ PD-1 PD/CD combos export CD on LUN 0 and PD on LUN 1; old\nNakamichi MJ-x.y CD changers expose one LUN per disc slot, up to 7).\n\nIntroduce a libata module parameter, atapi_max_lun, that controls the\nupper bound of the per-host SCSI LUN scan. Default is 1, preserving\ncurrent behaviour exactly: out-of-the-box only LUN 0 is scanned.\nRange is clamped to 1..ATAPI_MAX_LUN (8, the SCSI-2 ceiling).\n\nSubsequent patches gate actual LUN>0 probing on BLIST_FORCELUN, so a\ndevice must both be on the SCSI device list (or carry the appropriate\nquirk) and run on a host whose atapi_max_lun has been raised before\nany extra LUNs are scanned.\n\nSigned-off-by: Phil Pemberton <philpem@philpem.me.uk>\n---\n drivers/ata/libata-core.c | 5 +++++\n drivers/ata/libata-scsi.c | 2 +-\n drivers/ata/libata.h | 1 +\n include/linux/libata.h | 1 +\n 4 files changed, 8 insertions(+), 1 deletion(-)", "diff": "diff --git a/drivers/ata/libata-core.c b/drivers/ata/libata-core.c\nindex 374993031895..8c279b6eb1fb 100644\n--- a/drivers/ata/libata-core.c\n+++ b/drivers/ata/libata-core.c\n@@ -122,6 +122,11 @@ int atapi_passthru16 = 1;\n module_param(atapi_passthru16, int, 0444);\n MODULE_PARM_DESC(atapi_passthru16, \"Enable ATA_16 passthru for ATAPI devices (0=off, 1=on [default])\");\n \n+int atapi_max_lun = 1;\n+module_param(atapi_max_lun, int, 0444);\n+MODULE_PARM_DESC(atapi_max_lun,\n+\t\"Maximum LUN to scan on ATAPI devices flagged BLIST_FORCELUN (1 [default] .. 7)\");\n+\n int libata_fua = 0;\n module_param_named(fua, libata_fua, int, 0444);\n MODULE_PARM_DESC(fua, \"FUA support (0=off [default], 1=on)\");\ndiff --git a/drivers/ata/libata-scsi.c b/drivers/ata/libata-scsi.c\nindex 3b65df914ebb..d1665305b552 100644\n--- a/drivers/ata/libata-scsi.c\n+++ b/drivers/ata/libata-scsi.c\n@@ -4620,7 +4620,7 @@ int ata_scsi_add_hosts(struct ata_host *host, const struct scsi_host_template *s\n \t\tshost->transportt = ata_scsi_transport_template;\n \t\tshost->unique_id = ap->print_id;\n \t\tshost->max_id = 16;\n-\t\tshost->max_lun = 1;\n+\t\tshost->max_lun = clamp(atapi_max_lun, 1, ATAPI_MAX_LUN);\n \t\tshost->max_channel = 1;\n \t\tshost->max_cmd_len = 32;\n \ndiff --git a/drivers/ata/libata.h b/drivers/ata/libata.h\nindex b5423b6e97de..96d804d02b99 100644\n--- a/drivers/ata/libata.h\n+++ b/drivers/ata/libata.h\n@@ -33,6 +33,7 @@ enum {\n #define ATA_PORT_TYPE_NAME\t\"ata_port\"\n \n extern int atapi_passthru16;\n+extern int atapi_max_lun;\n extern int libata_fua;\n extern int libata_noacpi;\n extern int libata_allow_tpm;\ndiff --git a/include/linux/libata.h b/include/linux/libata.h\nindex 00346ce3af5e..27b11577826e 100644\n--- a/include/linux/libata.h\n+++ b/include/linux/libata.h\n@@ -131,6 +131,7 @@ enum {\n \tATA_SHORT_PAUSE\t\t= 16,\n \n \tATAPI_MAX_DRAIN\t\t= 16 << 10,\n+\tATAPI_MAX_LUN\t\t= 8,\t/* SCSI-2 cap (LUN values 0..7) */\n \n \tATA_ALL_DEVICES\t\t= (1 << ATA_MAX_DEVICES) - 1,\n \n", "prefixes": [ "v2", "1/5" ] }