{"id":2219132,"url":"http://patchwork.ozlabs.org/api/1.0/patches/2219132/?format=json","project":{"id":13,"url":"http://patchwork.ozlabs.org/api/1.0/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":"<91a152e2-a29a-4ea4-9bab-5f9e61510a3e@gmail.com>","date":"2026-04-02T13:31:22","name":"[v2,4/5] ata: libata-transport: split struct ata_internal","commit_ref":null,"pull_url":null,"state":"new","archived":false,"hash":"e1d8546c397da44b2cb1ebdc16f87cb48813f7a9","submitter":{"id":65365,"url":"http://patchwork.ozlabs.org/api/1.0/people/65365/?format=json","name":"Heiner Kallweit","email":"hkallweit1@gmail.com"},"delegate":null,"mbox":"http://patchwork.ozlabs.org/project/linux-ide/patch/91a152e2-a29a-4ea4-9bab-5f9e61510a3e@gmail.com/mbox/","series":[{"id":498482,"url":"http://patchwork.ozlabs.org/api/1.0/series/498482/?format=json","date":"2026-04-02T13:30:05","name":"ata: libata-transport: series with further refactorings","version":2,"mbox":"http://patchwork.ozlabs.org/series/498482/mbox/"}],"check":"pending","checks":"http://patchwork.ozlabs.org/api/patches/2219132/checks/","tags":{},"headers":{"Return-Path":"\n <linux-ide+bounces-5426-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=gmail.com header.i=@gmail.com header.a=rsa-sha256\n header.s=20251104 header.b=ptUuOvWd;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org\n (client-ip=2600:3c04:e001:36c::12fc:5321; helo=tor.lore.kernel.org;\n envelope-from=linux-ide+bounces-5426-incoming=patchwork.ozlabs.org@vger.kernel.org;\n receiver=patchwork.ozlabs.org)","smtp.subspace.kernel.org;\n\tdkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com\n header.b=\"ptUuOvWd\"","smtp.subspace.kernel.org;\n arc=none smtp.client-ip=209.85.128.51","smtp.subspace.kernel.org;\n dmarc=pass (p=none dis=none) header.from=gmail.com","smtp.subspace.kernel.org;\n spf=pass smtp.mailfrom=gmail.com"],"Received":["from tor.lore.kernel.org (tor.lore.kernel.org\n [IPv6:2600:3c04:e001:36c::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 4fmjgC3Xnvz1yCs\n\tfor <incoming@patchwork.ozlabs.org>; Fri, 03 Apr 2026 00:41:11 +1100 (AEDT)","from smtp.subspace.kernel.org (conduit.subspace.kernel.org\n [100.90.174.1])\n\tby tor.lore.kernel.org (Postfix) with ESMTP id 48B9930C4753\n\tfor <incoming@patchwork.ozlabs.org>; Thu,  2 Apr 2026 13:31:30 +0000 (UTC)","from localhost.localdomain (localhost.localdomain [127.0.0.1])\n\tby smtp.subspace.kernel.org (Postfix) with ESMTP id 087202F747A;\n\tThu,  2 Apr 2026 13:31:28 +0000 (UTC)","from mail-wm1-f51.google.com (mail-wm1-f51.google.com\n [209.85.128.51])\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 77062266581\n\tfor <linux-ide@vger.kernel.org>; Thu,  2 Apr 2026 13:31:26 +0000 (UTC)","by mail-wm1-f51.google.com with SMTP id\n 5b1f17b1804b1-486fc4725f0so9198325e9.1\n        for <linux-ide@vger.kernel.org>; Thu, 02 Apr 2026 06:31:26 -0700 (PDT)","from ?IPV6:2003:ea:8f19:9500:c168:ad27:2fdd:9334?\n (p200300ea8f199500c168ad272fdd9334.dip0.t-ipconnect.de.\n [2003:ea:8f19:9500:c168:ad27:2fdd:9334])\n        by smtp.gmail.com with ESMTPSA id\n 5b1f17b1804b1-4887e80a63esm251607115e9.3.2026.04.02.06.31.23\n        (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);\n        Thu, 02 Apr 2026 06:31:24 -0700 (PDT)"],"ARC-Seal":"i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;\n\tt=1775136687; cv=none;\n b=qB3qqGNgYvx2fHkcI71F1FDSSiS6CDHTlEMsNO7B17Z7GSIxzbpfhy7HkjLLaN7lepB3uItqa2NXTRXobLltd424vdp/os+IdbWNDJJfe8HCiAPCvLEZUtzki2syLSh8MOGVFJyCcr92w9hKTTg52HiA5y+1loKaAHha2de+pa8=","ARC-Message-Signature":"i=1; a=rsa-sha256; d=subspace.kernel.org;\n\ts=arc-20240116; t=1775136687; c=relaxed/simple;\n\tbh=1yfvBaugUTwb2WH1uNPfRl0X4hkseks+JlvvtUV6E8g=;\n\th=Message-ID:Date:MIME-Version:Subject:From:To:Cc:References:\n\t In-Reply-To:Content-Type;\n b=e1EF+ose8jGBrGEsUo4j6ZszQhS8n0u3SgaTY2OAV4yXvfK2T/y0S+bffp2gXGIkM2KGw+RtAtlJee7KdbK5sYXWAwXpWVZ7T3Ex7WDj1bUZn1psz5llkmvuFvmHmMsYm0VPGmizJmYe1YWrX6o9jqd6GBtRkvfRL3GsrZGwjlw=","ARC-Authentication-Results":"i=1; smtp.subspace.kernel.org;\n dmarc=pass (p=none dis=none) header.from=gmail.com;\n spf=pass smtp.mailfrom=gmail.com;\n dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com\n header.b=ptUuOvWd; arc=none smtp.client-ip=209.85.128.51","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n        d=gmail.com; s=20251104; t=1775136685; x=1775741485;\n darn=vger.kernel.org;\n        h=content-transfer-encoding:in-reply-to:content-language:references\n         :cc:to:from:subject:user-agent:mime-version:date:message-id:from:to\n         :cc:subject:date:message-id:reply-to;\n        bh=Yg9MdfAaSLI0rVc17JGq+XYmdD32tt6ays2WdHnciXM=;\n        b=ptUuOvWdg9b3eIG1+/8275aJOeR2GoYn7jUWxcsPkaOw0Y+MbFYU4GWE8KGrH3L6g2\n         4YUfn97R/NbUISkZSyoNp/Nu2wC1JrRGBgCBtmk+r3p6C3Kg5hPeOGL10VAvfbEMWfjJ\n         veTFbWz30Bs/num1W6T+VquZTOLTN8maTU0WeRGjKjTmF/+TVeopnPKrGsD4V8h7Yv08\n         +qPC3o3QjPxdypsxiFwuFASqiZ+dOcfW9A4yZa6sfpJ7elCnXT9jsx0xzU0hARw2bLMA\n         f604Em6ejzR/Jzu/l6aXL3fT2qJAIK9B4XpczqK/MNhcX05pjXcCRmBr56G+KM2uCr7l\n         vpzw==","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n        d=1e100.net; s=20251104; t=1775136685; x=1775741485;\n        h=content-transfer-encoding:in-reply-to:content-language:references\n         :cc:to:from:subject:user-agent:mime-version:date:message-id:x-gm-gg\n         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;\n        bh=Yg9MdfAaSLI0rVc17JGq+XYmdD32tt6ays2WdHnciXM=;\n        b=j9XfdCh/O+anXExkOqmBz5XO7azl6/ZGU9PEu8t+WXg4BUsKBk9amNtjikxBk1089v\n         JqGPutRfO/U+vxLhIcsoFjgMdrtW7SEqUDAwgsQvHzt9zmNWjBnhBA/5ZKAJQ0wewlQM\n         WgjVmshu0iINWgk7ci6YtReuDdJL6//Gxe5vD6r9en+B8w/yiYz5bmBo+gJv/qTrUDjr\n         i20iCCbmTdWDHOVZDKO7lVZqtNSBvvUDZ7sa5affiPOuRAcOB1tD3tHGG7TRAK/yRUdK\n         /g/DO/641HFLRGE3fiMbexSjcw1nvofeb9fv+p3N2Zy/0O7vLSBzw+T0ZSkAlZfYWDlJ\n         IFrg==","X-Gm-Message-State":"AOJu0YzxqPchCuVI9S7s2RGvvRny64aB0kSt1ZaZq1Ro0d7/sIsCiPjp\n\t29otm/t5Zh4bFM4ReDJJZyXhNvMSdviCdaSsWAUDiFpMd546MuYpewbR","X-Gm-Gg":"ATEYQzzh5V2opDQKFsuBH7+sar4Ei0ywZG0aoaO13qn5ZMyjZnVUboe8BZ2I3NDJqHZ\n\tShddaWuZu6oX1XAaVSmg8+7S1kniLL3+ec8QYaF8BRgDtXqBRYyGDMEMY4apZFhL+wkzYAtKT3B\n\tvzT4j1+17pDkiNo1fQuHcO6L3YoR+boWsCUlp0ajE+TVpw9BDnuKCOHnY1dAzedGtsEeQS9a3lL\n\tyTxAtudsRaqV1NybFTz32Gbgeu7f0E2LCLjEOm8yStuTptQel3EhhkeI5XrkrFFBJWLtjtiUMFB\n\t6e3mNMci9j+9A1GDujESg2Znn3jrk6YndVv9mtkusmkQ7E1rAtdJQU/Nyl+XQ7+QqAVkAfYVMWx\n\tImL5NCCwTLIYlB6u3Wu6y9FWynQ0i7aBAX/TTKH+gA2nmAbO12wJhOABV/UyEu++grVFDKsIolI\n\tWk48oMTGN7GwfYSCWs9EGxeK3QUHJSpkeDK3cOgfDL11Eoyp2ja+tU8fClISPa/hgfMJBVFC7Z4\n\tvrGucjfsJtChFTbI0QwvaaXV3ojO7VL6XcX9gcfdq8nZF4AEiMW7wxBb+/nE7fwFyeI7QsmBoOU","X-Received":"by 2002:a05:600c:8214:b0:485:fbd2:f72 with SMTP id\n 5b1f17b1804b1-4888e01e356mr44327095e9.1.1775136684686;\n        Thu, 02 Apr 2026 06:31:24 -0700 (PDT)","Message-ID":"<91a152e2-a29a-4ea4-9bab-5f9e61510a3e@gmail.com>","Date":"Thu, 2 Apr 2026 15:31:22 +0200","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","User-Agent":"Mozilla Thunderbird","Subject":"[PATCH v2 4/5] ata: libata-transport: split struct ata_internal","From":"Heiner Kallweit <hkallweit1@gmail.com>","To":"Damien Le Moal <dlemoal@kernel.org>, Niklas Cassel <cassel@kernel.org>","Cc":"linux-ide@vger.kernel.org","References":"<93fc6c62-ed8c-4953-ad7b-522031bb7ed9@gmail.com>","Content-Language":"en-US","In-Reply-To":"<93fc6c62-ed8c-4953-ad7b-522031bb7ed9@gmail.com>","Content-Type":"text/plain; charset=UTF-8","Content-Transfer-Encoding":"7bit"},"content":"There's no need for an umbrella struct, so remove it. It's also a\nprerequisite for making the embedded struct scsi_transport_template\npublic.\n\nReviewed-by: Damien Le Moal <dlemoal@kernel.org>\nSigned-off-by: Heiner Kallweit <hkallweit1@gmail.com>\n---\n drivers/ata/libata-transport.c | 53 ++++++++++++++++------------------\n 1 file changed, 25 insertions(+), 28 deletions(-)","diff":"diff --git a/drivers/ata/libata-transport.c b/drivers/ata/libata-transport.c\nindex 68ae57a89..538743e88 100644\n--- a/drivers/ata/libata-transport.c\n+++ b/drivers/ata/libata-transport.c\n@@ -40,13 +40,6 @@\n struct scsi_transport_template;\n struct scsi_transport_template *ata_scsi_transport_template;\n \n-struct ata_internal {\n-\tstruct scsi_transport_template t;\n-\n-\tstruct transport_container link_attr_cont;\n-\tstruct transport_container dev_attr_cont;\n-};\n-\n static int ata_tlink_match(struct attribute_container *cont,\n \t\t\t   struct device *dev);\n static int ata_tdev_match(struct attribute_container *cont,\n@@ -729,21 +722,25 @@ int ata_tlink_add(struct ata_link *link)\n \treturn error;\n }\n \n-static struct ata_internal ata_transport_internal = {\n-\t.t.eh_strategy_handler\t= ata_scsi_error,\n-\t.t.user_scan\t\t= ata_scsi_user_scan,\n+static struct scsi_transport_template ata_scsi_transportt = {\n+\t.eh_strategy_handler\t= ata_scsi_error,\n+\t.user_scan\t\t= ata_scsi_user_scan,\n \n-\t.t.host_attrs.ac.class\t= &ata_port_class.class,\n-\t.t.host_attrs.ac.grp\t= &ata_port_attr_group,\n-\t.t.host_attrs.ac.match\t= ata_tport_match,\n+\t.host_attrs.ac.class\t= &ata_port_class.class,\n+\t.host_attrs.ac.grp\t= &ata_port_attr_group,\n+\t.host_attrs.ac.match\t= ata_tport_match,\n+};\n \n-\t.link_attr_cont.ac.class = &ata_link_class.class,\n-\t.link_attr_cont.ac.grp   = &ata_link_attr_group,\n-\t.link_attr_cont.ac.match = ata_tlink_match,\n+static struct transport_container ata_link_attr_cont = {\n+\t.ac.class\t= &ata_link_class.class,\n+\t.ac.grp\t\t= &ata_link_attr_group,\n+\t.ac.match\t= ata_tlink_match,\n+};\n \n-\t.dev_attr_cont.ac.class\t= &ata_dev_class.class,\n-\t.dev_attr_cont.ac.grp\t= &ata_device_attr_group,\n-\t.dev_attr_cont.ac.match\t= ata_tdev_match,\n+static struct transport_container ata_dev_attr_cont = {\n+\t.ac.class\t= &ata_dev_class.class,\n+\t.ac.grp\t\t= &ata_device_attr_group,\n+\t.ac.match\t= ata_tdev_match,\n };\n \n static int ata_tlink_match(struct attribute_container *cont,\n@@ -752,7 +749,7 @@ static int ata_tlink_match(struct attribute_container *cont,\n \tif (!ata_is_link(dev))\n \t\treturn 0;\n \n-\treturn &ata_transport_internal.link_attr_cont.ac == cont;\n+\treturn &ata_link_attr_cont.ac == cont;\n }\n \n static int ata_tdev_match(struct attribute_container *cont,\n@@ -761,7 +758,7 @@ static int ata_tdev_match(struct attribute_container *cont,\n \tif (!ata_is_ata_dev(dev))\n \t\treturn 0;\n \n-\treturn &ata_transport_internal.dev_attr_cont.ac == cont;\n+\treturn &ata_dev_attr_cont.ac == cont;\n }\n \n /*\n@@ -782,11 +779,11 @@ __init int libata_transport_init(void)\n \tif (error)\n \t\tgoto out_unregister_port;\n \n-\ttransport_container_register(&ata_transport_internal.t.host_attrs);\n-\ttransport_container_register(&ata_transport_internal.link_attr_cont);\n-\ttransport_container_register(&ata_transport_internal.dev_attr_cont);\n+\ttransport_container_register(&ata_scsi_transportt.host_attrs);\n+\ttransport_container_register(&ata_link_attr_cont);\n+\ttransport_container_register(&ata_dev_attr_cont);\n \n-\tata_scsi_transport_template = &ata_transport_internal.t;\n+\tata_scsi_transport_template = &ata_scsi_transportt;\n \n \treturn 0;\n \n@@ -801,9 +798,9 @@ __init int libata_transport_init(void)\n \n void __exit libata_transport_exit(void)\n {\n-\ttransport_container_unregister(&ata_transport_internal.t.host_attrs);\n-\ttransport_container_unregister(&ata_transport_internal.link_attr_cont);\n-\ttransport_container_unregister(&ata_transport_internal.dev_attr_cont);\n+\ttransport_container_unregister(&ata_scsi_transportt.host_attrs);\n+\ttransport_container_unregister(&ata_link_attr_cont);\n+\ttransport_container_unregister(&ata_dev_attr_cont);\n \n \ttransport_class_unregister(&ata_link_class);\n \ttransport_class_unregister(&ata_port_class);\n","prefixes":["v2","4/5"]}