diff for duplicates of <20150121155519.GA25166@ulmo.nvidia.com> diff --git a/a/1.1.hdr b/a/1.1.hdr deleted file mode 100644 index 5a32186..0000000 --- a/a/1.1.hdr +++ /dev/null @@ -1,3 +0,0 @@ -Content-Type: text/plain; charset=us-ascii -Content-Disposition: inline -Content-Transfer-Encoding: quoted-printable diff --git a/a/1.1.txt b/a/1.1.txt deleted file mode 100644 index ed989ef..0000000 --- a/a/1.1.txt +++ /dev/null @@ -1,14 +0,0 @@ -On Wed, Jan 21, 2015 at 07:31:34AM -0500, Tejun Heo wrote: -> On Wed, Jan 21, 2015 at 11:50:03AM +0100, Thierry Reding wrote: -> > Tejun, preferably the attached patch should be squashed into commit -> > c7d7ddee7e24 ("ata: libahci: Allow using multiple regulators") to avoid -> > breaking bisectability. If you don't want to rewrite history, let me -> > know and I can turn it into a proper patch. -> -> Yes, please make it a proper patch. -> -> Thanks a lot! - -Attaching the patch. - -Thierry diff --git a/a/1.2.hdr b/a/1.2.hdr deleted file mode 100644 index f43aa12..0000000 --- a/a/1.2.hdr +++ /dev/null @@ -1,3 +0,0 @@ -Content-Type: text/x-diff; charset=us-ascii -Content-Disposition: inline; filename="0001-ata-libahci-Fix-devres-cleanup-on-failure.patch" -Content-Transfer-Encoding: quoted-printable diff --git a/a/1.2.txt b/a/1.2.txt deleted file mode 100644 index eb01b07..0000000 --- a/a/1.2.txt +++ /dev/null @@ -1,47 +0,0 @@ -From a4f78e3ec05f1b2ad86aa44d6bd5394d75a23a06 Mon Sep 17 00:00:00 2001 -From: Thierry Reding <treding@nvidia.com> -Date: Wed, 21 Jan 2015 11:50:52 +0100 -Subject: [PATCH] ata: libahci: Fix devres cleanup on failure - -Commit c7d7ddee7e24 ("ata: libahci: Allow using multiple regulators") -releases regulators during ahci_platform_put_resources(). That doesn't -work because the function is run as part of the devres machinery. Such -resources are torn down in reverse order. Since the array that holds -pointers to the regulators is allocated using devres after the device -context to which ahci_platform_put_resources() is attached, the memory -will be freed before calling ahci_platform_put_resources() and thereby -causing a use-after-free error. - -This commit fixes this by using regular allocations for the array. The -memory can then be freed after the regulators have been released. This -conserves the advantages of using the managed API. - -Reported-by: Paul Walmsley <paul@pwsan.com> -Signed-off-by: Thierry Reding <treding@nvidia.com> ---- - drivers/ata/libahci_platform.c | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git a/drivers/ata/libahci_platform.c b/drivers/ata/libahci_platform.c -index 73a086664ee7..504d534ccbfe 100644 ---- a/drivers/ata/libahci_platform.c -+++ b/drivers/ata/libahci_platform.c -@@ -276,6 +276,7 @@ static void ahci_platform_put_resources(struct device *dev, void *res) - if (hpriv->target_pwrs && hpriv->target_pwrs[c]) - regulator_put(hpriv->target_pwrs[c]); - -+ kfree(hpriv->target_pwrs); - } - - static int ahci_platform_get_phy(struct ahci_host_priv *hpriv, u32 port, -@@ -412,7 +413,7 @@ struct ahci_host_priv *ahci_platform_get_resources(struct platform_device *pdev) - goto err_out; - } - sz = hpriv->nports * sizeof(*hpriv->target_pwrs); -- hpriv->target_pwrs = devm_kzalloc(dev, sz, GFP_KERNEL); -+ hpriv->target_pwrs = kzalloc(sz, GFP_KERNEL); - if (!hpriv->target_pwrs) { - rc = -ENOMEM; - goto err_out; --- -2.1.3 diff --git a/N1/1.txt b/N1/1.txt new file mode 100644 index 0000000..dfaa343 --- /dev/null +++ b/N1/1.txt @@ -0,0 +1,28 @@ +On Wed, Jan 21, 2015 at 07:31:34AM -0500, Tejun Heo wrote: +> On Wed, Jan 21, 2015 at 11:50:03AM +0100, Thierry Reding wrote: +> > Tejun, preferably the attached patch should be squashed into commit +> > c7d7ddee7e24 ("ata: libahci: Allow using multiple regulators") to avoid +> > breaking bisectability. If you don't want to rewrite history, let me +> > know and I can turn it into a proper patch. +> +> Yes, please make it a proper patch. +> +> Thanks a lot! + +Attaching the patch. + +Thierry +-------------- next part -------------- +A non-text attachment was scrubbed... +Name: 0001-ata-libahci-Fix-devres-cleanup-on-failure.patch +Type: text/x-diff +Size: 1961 bytes +Desc: not available +URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20150121/416f7897/attachment.bin> +-------------- next part -------------- +A non-text attachment was scrubbed... +Name: not available +Type: application/pgp-signature +Size: 819 bytes +Desc: not available +URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20150121/416f7897/attachment.sig> diff --git a/a/2.bin b/a/2.bin deleted file mode 100644 index b8e08a5..0000000 --- a/a/2.bin +++ /dev/null @@ -1,17 +0,0 @@ ------BEGIN PGP SIGNATURE----- -Version: GnuPG v2 - -iQIcBAEBAgAGBQJUv8vnAAoJEN0jrNd/PrOhEwIQAMLBYpKKV58MUIA2O91w3pdr -2jYzWy2Dl8iBQOeoYurUIU+MdVt1tqY6ISnaBiSlH+8w2AF7vEo/GbQXUaIiFroW -/9u/QQLQndO/a40/EdWB4lGs2a3vp8sk+pNDK8LpHbtxfNCdERKgHMyfDpbJWpjC -XEiGit0dktT7jrqg8JIaQ3veCvp/6iaByvU4pO+wH92krl2us7NXtweyaF5IKNmv -fliUxmEVXLpM2Jmhogr5UQqS16+nhT6heTK5L7NS69WZd2bOUhYZMPoW4TuwQG6l -SL7dmKaj5fjsmGufmGiccdcF0UN3s/O5ZIUVm3fCTrdjUEg3jleAK9JPdDRGJdqR -p8q4crc+4g3V0tWg5bR/PlLu/HY5U/GDvucMqgM/gXYvg5HFNkpIOzGFoD1rl/Is -VSe9l4uIIZm34kVO/jwaSDdAAMB7PKp7B5YWT7TB81G7H0WnoqwC+vtvj/0iIuJO -UT3jXArYHxf20snTP6Bvt9zCCk2XWS6qvc0F0he2vm3ICTnqs9U/Fu5bgaqe2GDQ -Hgx38ScAzp8614ouv0Jjn5vzrEzZVqKHIcH9eZSw8ssirX1QLodT+6DR3sXjxIwy -WqCLdVHaQlLuyEL4u5mZbhndMUCiPlBnMKk7MrvJeIXi8Z09QbdguR2FwiSlZvDX -tCmZUCv3I3/zgOR4erVW -=1neP ------END PGP SIGNATURE----- diff --git a/a/2.hdr b/a/2.hdr deleted file mode 100644 index a09cc95..0000000 --- a/a/2.hdr +++ /dev/null @@ -1 +0,0 @@ -Content-Type: application/pgp-signature diff --git a/a/content_digest b/N1/content_digest index c2d3b75..03fa16a 100644 --- a/a/content_digest +++ b/N1/content_digest @@ -1,20 +1,11 @@ "ref\0alpine.DEB.2.02.1501210003010.5450@utopia.booyaka.com\0" "ref\020150121105001.GA9921@ulmo.nvidia.com\0" "ref\020150121123134.GD8684@htj.dyndns.org\0" - "From\0Thierry Reding <treding@nvidia.com>\0" - "Subject\0Re: next-20150120 broken on Tegra by \"ata: libahci: Allow using multiple regulators\"\0" + "From\0treding@nvidia.com (Thierry Reding)\0" + "Subject\0next-20150120 broken on Tegra by \"ata: libahci: Allow using multiple regulators\"\0" "Date\0Wed, 21 Jan 2015 16:55:21 +0100\0" - "To\0Tejun Heo <tj@kernel.org>\0" - "Cc\0Paul Walmsley <paul@pwsan.com>" - gregory.clement@free-electrons.com - hdegoede@redhat.com - pwalmsley@nvidia.com - linux-tegra@vger.kernel.org - linux-arm-kernel@lists.infradead.org - linux-kernel@vger.kernel.org - linux-next@vger.kernel.org - " linux-ide@vger.kernel.org\0" - "\02:1.1\0" + "To\0linux-arm-kernel@lists.infradead.org\0" + "\00:1\0" "b\0" "On Wed, Jan 21, 2015 at 07:31:34AM -0500, Tejun Heo wrote:\n" "> On Wed, Jan 21, 2015 at 11:50:03AM +0100, Thierry Reding wrote:\n" @@ -29,75 +20,20 @@ "\n" "Attaching the patch.\n" "\n" - Thierry - "\02:1.2\0" - "fn\00001-ata-libahci-Fix-devres-cleanup-on-failure.patch\0" - "b\0" - "From a4f78e3ec05f1b2ad86aa44d6bd5394d75a23a06 Mon Sep 17 00:00:00 2001\n" - "From: Thierry Reding <treding@nvidia.com>\n" - "Date: Wed, 21 Jan 2015 11:50:52 +0100\n" - "Subject: [PATCH] ata: libahci: Fix devres cleanup on failure\n" - "\n" - "Commit c7d7ddee7e24 (\"ata: libahci: Allow using multiple regulators\")\n" - "releases regulators during ahci_platform_put_resources(). That doesn't\n" - "work because the function is run as part of the devres machinery. Such\n" - "resources are torn down in reverse order. Since the array that holds\n" - "pointers to the regulators is allocated using devres after the device\n" - "context to which ahci_platform_put_resources() is attached, the memory\n" - "will be freed before calling ahci_platform_put_resources() and thereby\n" - "causing a use-after-free error.\n" - "\n" - "This commit fixes this by using regular allocations for the array. The\n" - "memory can then be freed after the regulators have been released. This\n" - "conserves the advantages of using the managed API.\n" - "\n" - "Reported-by: Paul Walmsley <paul@pwsan.com>\n" - "Signed-off-by: Thierry Reding <treding@nvidia.com>\n" - "---\n" - " drivers/ata/libahci_platform.c | 3 ++-\n" - " 1 file changed, 2 insertions(+), 1 deletion(-)\n" - "\n" - "diff --git a/drivers/ata/libahci_platform.c b/drivers/ata/libahci_platform.c\n" - "index 73a086664ee7..504d534ccbfe 100644\n" - "--- a/drivers/ata/libahci_platform.c\n" - "+++ b/drivers/ata/libahci_platform.c\n" - "@@ -276,6 +276,7 @@ static void ahci_platform_put_resources(struct device *dev, void *res)\n" - " \t\tif (hpriv->target_pwrs && hpriv->target_pwrs[c])\n" - " \t\t\tregulator_put(hpriv->target_pwrs[c]);\n" - " \n" - "+\tkfree(hpriv->target_pwrs);\n" - " }\n" - " \n" - " static int ahci_platform_get_phy(struct ahci_host_priv *hpriv, u32 port,\n" - "@@ -412,7 +413,7 @@ struct ahci_host_priv *ahci_platform_get_resources(struct platform_device *pdev)\n" - " \t\tgoto err_out;\n" - " \t}\n" - " \tsz = hpriv->nports * sizeof(*hpriv->target_pwrs);\n" - "-\thpriv->target_pwrs = devm_kzalloc(dev, sz, GFP_KERNEL);\n" - "+\thpriv->target_pwrs = kzalloc(sz, GFP_KERNEL);\n" - " \tif (!hpriv->target_pwrs) {\n" - " \t\trc = -ENOMEM;\n" - " \t\tgoto err_out;\n" - "-- \n" - 2.1.3 - "\01:2\0" - "b\0" - "-----BEGIN PGP SIGNATURE-----\n" - "Version: GnuPG v2\n" - "\n" - "iQIcBAEBAgAGBQJUv8vnAAoJEN0jrNd/PrOhEwIQAMLBYpKKV58MUIA2O91w3pdr\n" - "2jYzWy2Dl8iBQOeoYurUIU+MdVt1tqY6ISnaBiSlH+8w2AF7vEo/GbQXUaIiFroW\n" - "/9u/QQLQndO/a40/EdWB4lGs2a3vp8sk+pNDK8LpHbtxfNCdERKgHMyfDpbJWpjC\n" - "XEiGit0dktT7jrqg8JIaQ3veCvp/6iaByvU4pO+wH92krl2us7NXtweyaF5IKNmv\n" - "fliUxmEVXLpM2Jmhogr5UQqS16+nhT6heTK5L7NS69WZd2bOUhYZMPoW4TuwQG6l\n" - "SL7dmKaj5fjsmGufmGiccdcF0UN3s/O5ZIUVm3fCTrdjUEg3jleAK9JPdDRGJdqR\n" - "p8q4crc+4g3V0tWg5bR/PlLu/HY5U/GDvucMqgM/gXYvg5HFNkpIOzGFoD1rl/Is\n" - "VSe9l4uIIZm34kVO/jwaSDdAAMB7PKp7B5YWT7TB81G7H0WnoqwC+vtvj/0iIuJO\n" - "UT3jXArYHxf20snTP6Bvt9zCCk2XWS6qvc0F0he2vm3ICTnqs9U/Fu5bgaqe2GDQ\n" - "Hgx38ScAzp8614ouv0Jjn5vzrEzZVqKHIcH9eZSw8ssirX1QLodT+6DR3sXjxIwy\n" - "WqCLdVHaQlLuyEL4u5mZbhndMUCiPlBnMKk7MrvJeIXi8Z09QbdguR2FwiSlZvDX\n" - "tCmZUCv3I3/zgOR4erVW\n" - "=1neP\n" - "-----END PGP SIGNATURE-----\n" + "Thierry\n" + "-------------- next part --------------\n" + "A non-text attachment was scrubbed...\n" + "Name: 0001-ata-libahci-Fix-devres-cleanup-on-failure.patch\n" + "Type: text/x-diff\n" + "Size: 1961 bytes\n" + "Desc: not available\n" + "URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20150121/416f7897/attachment.bin>\n" + "-------------- next part --------------\n" + "A non-text attachment was scrubbed...\n" + "Name: not available\n" + "Type: application/pgp-signature\n" + "Size: 819 bytes\n" + "Desc: not available\n" + URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20150121/416f7897/attachment.sig> -aa778b826fbc0103e5c6a4295b2eef2101edf16f670023bf13d29c72e39def45 +df6788dc1cf0a7de9edc70f23a1629a90d9d6a34f892d0602b1e9de7855e7fb4
diff --git a/a/content_digest b/N2/content_digest index c2d3b75..3548a7c 100644 --- a/a/content_digest +++ b/N2/content_digest @@ -6,14 +6,14 @@ "Date\0Wed, 21 Jan 2015 16:55:21 +0100\0" "To\0Tejun Heo <tj@kernel.org>\0" "Cc\0Paul Walmsley <paul@pwsan.com>" - gregory.clement@free-electrons.com - hdegoede@redhat.com - pwalmsley@nvidia.com - linux-tegra@vger.kernel.org - linux-arm-kernel@lists.infradead.org - linux-kernel@vger.kernel.org - linux-next@vger.kernel.org - " linux-ide@vger.kernel.org\0" + <gregory.clement@free-electrons.com> + <hdegoede@redhat.com> + <pwalmsley@nvidia.com> + <linux-tegra@vger.kernel.org> + <linux-arm-kernel@lists.infradead.org> + <linux-kernel@vger.kernel.org> + <linux-next@vger.kernel.org> + " <linux-ide@vger.kernel.org>\0" "\02:1.1\0" "b\0" "On Wed, Jan 21, 2015 at 07:31:34AM -0500, Tejun Heo wrote:\n" @@ -100,4 +100,4 @@ "=1neP\n" "-----END PGP SIGNATURE-----\n" -aa778b826fbc0103e5c6a4295b2eef2101edf16f670023bf13d29c72e39def45 +6b4752b283dea5588f9a77fc951ae9b7ce13055392f51ad8c47b10519359461c
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.