All of lore.kernel.org
 help / color / mirror / Atom feed
diff for duplicates of <20140524152200.GA4666@lianli>

diff --git a/a/1.txt b/N1/1.txt
index 62ae376..aad1c3e 100644
--- a/a/1.txt
+++ b/N1/1.txt
@@ -20,3 +20,10 @@ applying the patch as it is?
 Best regards,
 
 Emil Goode
+-------------- next part --------------
+A non-text attachment was scrubbed...
+Name: 0001-driver-core-platform-don-t-leak-memory-allocated-for.patch
+Type: text/x-diff
+Size: 9958 bytes
+Desc: not available
+URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20140524/e1732228/attachment-0001.bin>
diff --git a/a/2.hdr b/a/2.hdr
deleted file mode 100644
index 82d31a4..0000000
--- a/a/2.hdr
+++ /dev/null
@@ -1,3 +0,0 @@
-Content-Type: text/x-diff; charset="utf-8"
-Content-Disposition: attachment; filename="0001-driver-core-platform-don-t-leak-memory-allocated-for.patch"
-Content-Transfer-Encoding: 8bit
diff --git a/a/2.txt b/a/2.txt
deleted file mode 100644
index b264196..0000000
--- a/a/2.txt
+++ /dev/null
@@ -1,240 +0,0 @@
-From 66b72cb8eb71974903dd40ed67a34412faf818f0 Mon Sep 17 00:00:00 2001
-From: Yann Droneaud <ydroneaud@opteya.com>
-Date: Mon, 27 Jan 2014 11:05:52 +0100
-Subject: [PATCH] driver core/platform: don't leak memory allocated for
- dma_mask
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Since commit 01dcc60a7cb8, platform_device_register_full() is
-available to allocate and register a platform device.
-
-If a dma_mask is provided as part of platform_device_info,
-platform_device_register_full() allocate memory for a u64 using
-kmalloc().
-
-A comment in the code state that "[t]his memory isn't freed when the
-device is put".
-
-It's never a good thing to leak memory, but there's only very few
-users of platform_device_info's dma_mask, and those are mostly
-"static" devices that are not going to be plugged/unplugged often.
-
-So memory leak is not really an issue, but allocating 8 bytes through
-kmalloc() seems overkill.
-
-And it's a pity to have to allocate 8 bytes for the dma_mask while up
-to 7 bytes are wasted at the end of struct platform_object in the form
-of padding after name field: unfortunately this padding is not used
-when allocating the memory to hold the name.
-
-To address theses issues, this patch adds dma_mask to platform_object
-struct so that it is always allocated for all struct platform_device
-allocated through platform_device_alloc() or platform_device_register_full().
-And since it's within struct platform_object, dma_mask won't be leaked
-anymore when struct platform_device got released. Storage for dma_mask
-is added almost for free by removing the padding at the end of struct
-platform_object.
-
-Padding at the end of the structure is removed by making name a C99
-flexible array member (eg. a zero sized array). To handle this change,
-memory allocation is updated to take care of allocating an additional
-byte for the NUL terminating character.
-
-No more memory leak, no small allocation, no byte wasted and
-a slight reduction in code size.
-
-Built on Fedora 20, using GCC 4.8, for ARM, i386, x86_64 and PPC64
-architectures, the size of the object file and the data structure layout
-are updated as follow, produced with commands:
-
-  $ size drivers/base/platform.o
-  $ pahole drivers/base/platform.o \
-           --recursive             \
-           --class_name device,pdev_archdata,platform_device,platform_object
-
-  --- size+pahole.next-20140124
-  +++ size+pahole.next-20140124+
-  @@ -1,5 +1,5 @@
-      text    data     bss     dec     hex filename
-  -   5616     472      32    6120    17e8 obj-arm/drivers/base/platform.o
-  +   5572     472      32    6076    17bc obj-arm/drivers/base/platform.o
-   struct device {
-           struct device *            parent;               /*     0     4 */
-           struct device_private *    p;                    /*     4     4 */
-  @@ -77,15 +77,15 @@ struct platform_object {
-           /* XXX last struct has 4 bytes of padding */
-
-           /* --- cacheline 6 boundary (384 bytes) --- */
-  -        char                       name[1];              /*   384     1 */
-  +        u64                        dma_mask;             /*   384     8 */
-  +        char                       name[0];              /*   392     0 */
-
-  -        /* size: 392, cachelines: 7, members: 2 */
-  -        /* padding: 7 */
-  +        /* size: 392, cachelines: 7, members: 3 */
-           /* paddings: 1, sum paddings: 4 */
-           /* last cacheline: 8 bytes */
-   };
-
-      text    data     bss     dec     hex filename
-  -   6007     532      32    6571    19ab obj-i386/drivers/base/platform.o
-  +   5943     532      32    6507    196b obj-i386/drivers/base/platform.o
-   struct device {
-           struct device *            parent;               /*     0     4 */
-           struct device_private *    p;                    /*     4     4 */
-  @@ -161,14 +161,14 @@ struct platform_device {
-   struct platform_object {
-           struct platform_device     pdev;                 /*     0   392 */
-           /* --- cacheline 6 boundary (384 bytes) was 8 bytes ago --- */
-  -        char                       name[1];              /*   392     1 */
-  +        u64                        dma_mask;             /*   392     8 */
-  +        char                       name[0];              /*   400     0 */
-
-  -        /* size: 396, cachelines: 7, members: 2 */
-  -        /* padding: 3 */
-  -        /* last cacheline: 12 bytes */
-  +        /* size: 400, cachelines: 7, members: 3 */
-  +        /* last cacheline: 16 bytes */
-   };
-
-      text    data     bss     dec     hex filename
-  -   8851    2112      48   11011    2b03 obj-ppc64/drivers/base/platform.o
-  +   8787    2104      48   10939    2abb obj-ppc64/drivers/base/platform.o
-   struct device {
-           struct device *            parent;               /*     0     8 */
-           struct device_private *    p;                    /*     8     8 */
-  @@ -256,14 +256,14 @@ struct platform_device {
-   struct platform_object {
-           struct platform_device     pdev;                 /*     0   728 */
-           /* --- cacheline 11 boundary (704 bytes) was 24 bytes ago --- */
-  -        char                       name[1];              /*   728     1 */
-  +        u64                        dma_mask;             /*   728     8 */
-  +        char                       name[0];              /*   736     0 */
-
-  -        /* size: 736, cachelines: 12, members: 2 */
-  -        /* padding: 7 */
-  +        /* size: 736, cachelines: 12, members: 3 */
-           /* last cacheline: 32 bytes */
-   };
-
-      text    data     bss     dec     hex filename
-  -   7100     960      48    8108    1fac obj-x86_64/drivers/base/platform.o
-  +   7020     960      48    8028    1f5c obj-x86_64/drivers/base/platform.o
-   struct device {
-           struct device *            parent;               /*     0     8 */
-           struct device_private *    p;                    /*     8     8 */
-  @@ -350,9 +350,9 @@ struct platform_device {
-   struct platform_object {
-           struct platform_device     pdev;                 /*     0   712 */
-           /* --- cacheline 11 boundary (704 bytes) was 8 bytes ago --- */
-  -        char                       name[1];              /*   712     1 */
-  +        u64                        dma_mask;             /*   712     8 */
-  +        char                       name[0];              /*   720     0 */
-
-  -        /* size: 720, cachelines: 12, members: 2 */
-  -        /* padding: 7 */
-  +        /* size: 720, cachelines: 12, members: 3 */
-           /* last cacheline: 16 bytes */
-   };
-
-Changes from v3 [1]:
-- fixed commit message so that git am doesn't fail.
-
-Changes from v2 [2]:
-- move 'dma_mask' to platform_object so that it's always
-  allocated and won't leak on release; remove all previously
-  added support functions.
-- use C99 flexible array member for 'name' to remove padding
-  at the end of platform_object.
-
-Changes from v1 [3]:
-- remove unneeded kfree() from error path
-- add reference to author/commit adding allocation of dmamask
-
-Changes from v0 [4]:
-- small rewrite to squeeze the patch to a bare minimal
-
-[1] http://lkml.kernel.org/r/1390771138-28348-1-git-send-email-ydroneaud@opteya.com
-    https://patchwork.kernel.org/patch/3540081/
-
-[2] http://lkml.kernel.org/r/1389683909-17495-1-git-send-email-ydroneaud@opteya.com
-    https://patchwork.kernel.org/patch/3484411/
-
-[3] http://lkml.kernel.org/r/1389649085-7365-1-git-send-email-ydroneaud@opteya.com
-    https://patchwork.kernel.org/patch/3480961/
-
-[4] http://lkml.kernel.org/r/1386886207-2735-1-git-send-email-ydroneaud@opteya.com
-
-Cc: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
-Cc: Dmitry Torokhov <dmitry.torokhov@gmail.com>
-Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-Signed-off-by: Yann Droneaud <ydroneaud@opteya.com>
----
- drivers/base/platform.c |   17 +++++++----------
- 1 file changed, 7 insertions(+), 10 deletions(-)
-
-diff --git a/drivers/base/platform.c b/drivers/base/platform.c
-index 5b47210..d19769e 100644
---- a/drivers/base/platform.c
-+++ b/drivers/base/platform.c
-@@ -162,7 +162,8 @@ EXPORT_SYMBOL_GPL(platform_add_devices);
- 
- struct platform_object {
- 	struct platform_device pdev;
--	char name[1];
-+	u64 dma_mask;
-+	char name[];
- };
- 
- /**
-@@ -198,16 +199,20 @@ static void platform_device_release(struct device *dev)
-  *
-  * Create a platform device object which can have other objects attached
-  * to it, and which will have attached objects freed when it is released.
-+ *
-+ * The associated struct device will be set up so that its dma_mask field
-+ * is a valid pointer to an u64. This pointer must not be free'd manually.
-  */
- struct platform_device *platform_device_alloc(const char *name, int id)
- {
- 	struct platform_object *pa;
- 
--	pa = kzalloc(sizeof(struct platform_object) + strlen(name), GFP_KERNEL);
-+	pa = kzalloc(sizeof(*pa) + strlen(name) + 1, GFP_KERNEL);
- 	if (pa) {
- 		strcpy(pa->name, name);
- 		pa->pdev.name = pa->name;
- 		pa->pdev.id = id;
-+		pa->pdev.dev.dma_mask = &pa->dma_mask;
- 		device_initialize(&pa->pdev.dev);
- 		pa->pdev.dev.release = platform_device_release;
- 		arch_setup_pdev_archdata(&pa->pdev);
-@@ -441,16 +446,9 @@ struct platform_device *platform_device_register_full(
- 
- 	if (pdevinfo->dma_mask) {
- 		/*
--		 * This memory isn't freed when the device is put,
--		 * I don't have a nice idea for that though.  Conceptually
- 		 * dma_mask in struct device should not be a pointer.
- 		 * See http://thread.gmane.org/gmane.linux.kernel.pci/9081
- 		 */
--		pdev->dev.dma_mask =
--			kmalloc(sizeof(*pdev->dev.dma_mask), GFP_KERNEL);
--		if (!pdev->dev.dma_mask)
--			goto err;
--
- 		*pdev->dev.dma_mask = pdevinfo->dma_mask;
- 		pdev->dev.coherent_dma_mask = pdevinfo->dma_mask;
- 	}
-@@ -469,7 +467,6 @@ struct platform_device *platform_device_register_full(
- 	if (ret) {
- err:
- 		ACPI_COMPANION_SET(&pdev->dev, NULL);
--		kfree(pdev->dev.dma_mask);
- 
- err_alloc:
- 		platform_device_put(pdev);
--- 
-1.7.10.4
diff --git a/a/content_digest b/N1/content_digest
index d34c051..023826a 100644
--- a/a/content_digest
+++ b/N1/content_digest
@@ -1,10 +1,10 @@
  "ref\01400781080-6117-1-git-send-email-emilgoode@gmail.com\0"
  "ref\020140522181024.GA20155@pengutronix.de\0"
- "From\0Emil Goode <emilgoode@gmail.com>\0"
- "Subject\0Re: [PATCH] ARM: imx: introduce function imx_free_mx3_camera\0"
- "Date\0Sat, 24 May 2014 15:22:00 +0000\0"
+ "From\0emilgoode@gmail.com (Emil Goode)\0"
+ "Subject\0[PATCH] ARM: imx: introduce function imx_free_mx3_camera\0"
+ "Date\0Sat, 24 May 2014 17:22:00 +0200\0"
  "To\0linux-arm-kernel@lists.infradead.org\0"
- "\01:1\0"
+ "\00:1\0"
  "b\0"
  "Hello Uwe and Greg,\n"
  "\n"
@@ -27,249 +27,13 @@
  "\n"
  "Best regards,\n"
  "\n"
- Emil Goode
- "\01:2\0"
- "fn\00001-driver-core-platform-don-t-leak-memory-allocated-for.patch\0"
- "b\0"
- "From 66b72cb8eb71974903dd40ed67a34412faf818f0 Mon Sep 17 00:00:00 2001\n"
- "From: Yann Droneaud <ydroneaud@opteya.com>\n"
- "Date: Mon, 27 Jan 2014 11:05:52 +0100\n"
- "Subject: [PATCH] driver core/platform: don't leak memory allocated for\n"
- " dma_mask\n"
- "MIME-Version: 1.0\n"
- "Content-Type: text/plain; charset=UTF-8\n"
- "Content-Transfer-Encoding: 8bit\n"
- "\n"
- "Since commit 01dcc60a7cb8, platform_device_register_full() is\n"
- "available to allocate and register a platform device.\n"
- "\n"
- "If a dma_mask is provided as part of platform_device_info,\n"
- "platform_device_register_full() allocate memory for a u64 using\n"
- "kmalloc().\n"
- "\n"
- "A comment in the code state that \"[t]his memory isn't freed when the\n"
- "device is put\".\n"
- "\n"
- "It's never a good thing to leak memory, but there's only very few\n"
- "users of platform_device_info's dma_mask, and those are mostly\n"
- "\"static\" devices that are not going to be plugged/unplugged often.\n"
- "\n"
- "So memory leak is not really an issue, but allocating 8 bytes through\n"
- "kmalloc() seems overkill.\n"
- "\n"
- "And it's a pity to have to allocate 8 bytes for the dma_mask while up\n"
- "to 7 bytes are wasted at the end of struct platform_object in the form\n"
- "of padding after name field: unfortunately this padding is not used\n"
- "when allocating the memory to hold the name.\n"
- "\n"
- "To address theses issues, this patch adds dma_mask to platform_object\n"
- "struct so that it is always allocated for all struct platform_device\n"
- "allocated through platform_device_alloc() or platform_device_register_full().\n"
- "And since it's within struct platform_object, dma_mask won't be leaked\n"
- "anymore when struct platform_device got released. Storage for dma_mask\n"
- "is added almost for free by removing the padding at the end of struct\n"
- "platform_object.\n"
- "\n"
- "Padding at the end of the structure is removed by making name a C99\n"
- "flexible array member (eg. a zero sized array). To handle this change,\n"
- "memory allocation is updated to take care of allocating an additional\n"
- "byte for the NUL terminating character.\n"
- "\n"
- "No more memory leak, no small allocation, no byte wasted and\n"
- "a slight reduction in code size.\n"
- "\n"
- "Built on Fedora 20, using GCC 4.8, for ARM, i386, x86_64 and PPC64\n"
- "architectures, the size of the object file and the data structure layout\n"
- "are updated as follow, produced with commands:\n"
- "\n"
- "  $ size drivers/base/platform.o\n"
- "  $ pahole drivers/base/platform.o \\\n"
- "           --recursive             \\\n"
- "           --class_name device,pdev_archdata,platform_device,platform_object\n"
- "\n"
- "  --- size+pahole.next-20140124\n"
- "  +++ size+pahole.next-20140124+\n"
- "  @@ -1,5 +1,5 @@\n"
- "      text    data     bss     dec     hex filename\n"
- "  -   5616     472      32    6120    17e8 obj-arm/drivers/base/platform.o\n"
- "  +   5572     472      32    6076    17bc obj-arm/drivers/base/platform.o\n"
- "   struct device {\n"
- "           struct device *            parent;               /*     0     4 */\n"
- "           struct device_private *    p;                    /*     4     4 */\n"
- "  @@ -77,15 +77,15 @@ struct platform_object {\n"
- "           /* XXX last struct has 4 bytes of padding */\n"
- "\n"
- "           /* --- cacheline 6 boundary (384 bytes) --- */\n"
- "  -        char                       name[1];              /*   384     1 */\n"
- "  +        u64                        dma_mask;             /*   384     8 */\n"
- "  +        char                       name[0];              /*   392     0 */\n"
- "\n"
- "  -        /* size: 392, cachelines: 7, members: 2 */\n"
- "  -        /* padding: 7 */\n"
- "  +        /* size: 392, cachelines: 7, members: 3 */\n"
- "           /* paddings: 1, sum paddings: 4 */\n"
- "           /* last cacheline: 8 bytes */\n"
- "   };\n"
- "\n"
- "      text    data     bss     dec     hex filename\n"
- "  -   6007     532      32    6571    19ab obj-i386/drivers/base/platform.o\n"
- "  +   5943     532      32    6507    196b obj-i386/drivers/base/platform.o\n"
- "   struct device {\n"
- "           struct device *            parent;               /*     0     4 */\n"
- "           struct device_private *    p;                    /*     4     4 */\n"
- "  @@ -161,14 +161,14 @@ struct platform_device {\n"
- "   struct platform_object {\n"
- "           struct platform_device     pdev;                 /*     0   392 */\n"
- "           /* --- cacheline 6 boundary (384 bytes) was 8 bytes ago --- */\n"
- "  -        char                       name[1];              /*   392     1 */\n"
- "  +        u64                        dma_mask;             /*   392     8 */\n"
- "  +        char                       name[0];              /*   400     0 */\n"
- "\n"
- "  -        /* size: 396, cachelines: 7, members: 2 */\n"
- "  -        /* padding: 3 */\n"
- "  -        /* last cacheline: 12 bytes */\n"
- "  +        /* size: 400, cachelines: 7, members: 3 */\n"
- "  +        /* last cacheline: 16 bytes */\n"
- "   };\n"
- "\n"
- "      text    data     bss     dec     hex filename\n"
- "  -   8851    2112      48   11011    2b03 obj-ppc64/drivers/base/platform.o\n"
- "  +   8787    2104      48   10939    2abb obj-ppc64/drivers/base/platform.o\n"
- "   struct device {\n"
- "           struct device *            parent;               /*     0     8 */\n"
- "           struct device_private *    p;                    /*     8     8 */\n"
- "  @@ -256,14 +256,14 @@ struct platform_device {\n"
- "   struct platform_object {\n"
- "           struct platform_device     pdev;                 /*     0   728 */\n"
- "           /* --- cacheline 11 boundary (704 bytes) was 24 bytes ago --- */\n"
- "  -        char                       name[1];              /*   728     1 */\n"
- "  +        u64                        dma_mask;             /*   728     8 */\n"
- "  +        char                       name[0];              /*   736     0 */\n"
- "\n"
- "  -        /* size: 736, cachelines: 12, members: 2 */\n"
- "  -        /* padding: 7 */\n"
- "  +        /* size: 736, cachelines: 12, members: 3 */\n"
- "           /* last cacheline: 32 bytes */\n"
- "   };\n"
- "\n"
- "      text    data     bss     dec     hex filename\n"
- "  -   7100     960      48    8108    1fac obj-x86_64/drivers/base/platform.o\n"
- "  +   7020     960      48    8028    1f5c obj-x86_64/drivers/base/platform.o\n"
- "   struct device {\n"
- "           struct device *            parent;               /*     0     8 */\n"
- "           struct device_private *    p;                    /*     8     8 */\n"
- "  @@ -350,9 +350,9 @@ struct platform_device {\n"
- "   struct platform_object {\n"
- "           struct platform_device     pdev;                 /*     0   712 */\n"
- "           /* --- cacheline 11 boundary (704 bytes) was 8 bytes ago --- */\n"
- "  -        char                       name[1];              /*   712     1 */\n"
- "  +        u64                        dma_mask;             /*   712     8 */\n"
- "  +        char                       name[0];              /*   720     0 */\n"
- "\n"
- "  -        /* size: 720, cachelines: 12, members: 2 */\n"
- "  -        /* padding: 7 */\n"
- "  +        /* size: 720, cachelines: 12, members: 3 */\n"
- "           /* last cacheline: 16 bytes */\n"
- "   };\n"
- "\n"
- "Changes from v3 [1]:\n"
- "- fixed commit message so that git am doesn't fail.\n"
- "\n"
- "Changes from v2 [2]:\n"
- "- move 'dma_mask' to platform_object so that it's always\n"
- "  allocated and won't leak on release; remove all previously\n"
- "  added support functions.\n"
- "- use C99 flexible array member for 'name' to remove padding\n"
- "  at the end of platform_object.\n"
- "\n"
- "Changes from v1 [3]:\n"
- "- remove unneeded kfree() from error path\n"
- "- add reference to author/commit adding allocation of dmamask\n"
- "\n"
- "Changes from v0 [4]:\n"
- "- small rewrite to squeeze the patch to a bare minimal\n"
- "\n"
- "[1] http://lkml.kernel.org/r/1390771138-28348-1-git-send-email-ydroneaud@opteya.com\n"
- "    https://patchwork.kernel.org/patch/3540081/\n"
- "\n"
- "[2] http://lkml.kernel.org/r/1389683909-17495-1-git-send-email-ydroneaud@opteya.com\n"
- "    https://patchwork.kernel.org/patch/3484411/\n"
- "\n"
- "[3] http://lkml.kernel.org/r/1389649085-7365-1-git-send-email-ydroneaud@opteya.com\n"
- "    https://patchwork.kernel.org/patch/3480961/\n"
- "\n"
- "[4] http://lkml.kernel.org/r/1386886207-2735-1-git-send-email-ydroneaud@opteya.com\n"
- "\n"
- "Cc: Uwe Kleine-K\303\266nig <u.kleine-koenig@pengutronix.de>\n"
- "Cc: Dmitry Torokhov <dmitry.torokhov@gmail.com>\n"
- "Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>\n"
- "Signed-off-by: Yann Droneaud <ydroneaud@opteya.com>\n"
- "---\n"
- " drivers/base/platform.c |   17 +++++++----------\n"
- " 1 file changed, 7 insertions(+), 10 deletions(-)\n"
- "\n"
- "diff --git a/drivers/base/platform.c b/drivers/base/platform.c\n"
- "index 5b47210..d19769e 100644\n"
- "--- a/drivers/base/platform.c\n"
- "+++ b/drivers/base/platform.c\n"
- "@@ -162,7 +162,8 @@ EXPORT_SYMBOL_GPL(platform_add_devices);\n"
- " \n"
- " struct platform_object {\n"
- " \tstruct platform_device pdev;\n"
- "-\tchar name[1];\n"
- "+\tu64 dma_mask;\n"
- "+\tchar name[];\n"
- " };\n"
- " \n"
- " /**\n"
- "@@ -198,16 +199,20 @@ static void platform_device_release(struct device *dev)\n"
- "  *\n"
- "  * Create a platform device object which can have other objects attached\n"
- "  * to it, and which will have attached objects freed when it is released.\n"
- "+ *\n"
- "+ * The associated struct device will be set up so that its dma_mask field\n"
- "+ * is a valid pointer to an u64. This pointer must not be free'd manually.\n"
- "  */\n"
- " struct platform_device *platform_device_alloc(const char *name, int id)\n"
- " {\n"
- " \tstruct platform_object *pa;\n"
- " \n"
- "-\tpa = kzalloc(sizeof(struct platform_object) + strlen(name), GFP_KERNEL);\n"
- "+\tpa = kzalloc(sizeof(*pa) + strlen(name) + 1, GFP_KERNEL);\n"
- " \tif (pa) {\n"
- " \t\tstrcpy(pa->name, name);\n"
- " \t\tpa->pdev.name = pa->name;\n"
- " \t\tpa->pdev.id = id;\n"
- "+\t\tpa->pdev.dev.dma_mask = &pa->dma_mask;\n"
- " \t\tdevice_initialize(&pa->pdev.dev);\n"
- " \t\tpa->pdev.dev.release = platform_device_release;\n"
- " \t\tarch_setup_pdev_archdata(&pa->pdev);\n"
- "@@ -441,16 +446,9 @@ struct platform_device *platform_device_register_full(\n"
- " \n"
- " \tif (pdevinfo->dma_mask) {\n"
- " \t\t/*\n"
- "-\t\t * This memory isn't freed when the device is put,\n"
- "-\t\t * I don't have a nice idea for that though.  Conceptually\n"
- " \t\t * dma_mask in struct device should not be a pointer.\n"
- " \t\t * See http://thread.gmane.org/gmane.linux.kernel.pci/9081\n"
- " \t\t */\n"
- "-\t\tpdev->dev.dma_mask =\n"
- "-\t\t\tkmalloc(sizeof(*pdev->dev.dma_mask), GFP_KERNEL);\n"
- "-\t\tif (!pdev->dev.dma_mask)\n"
- "-\t\t\tgoto err;\n"
- "-\n"
- " \t\t*pdev->dev.dma_mask = pdevinfo->dma_mask;\n"
- " \t\tpdev->dev.coherent_dma_mask = pdevinfo->dma_mask;\n"
- " \t}\n"
- "@@ -469,7 +467,6 @@ struct platform_device *platform_device_register_full(\n"
- " \tif (ret) {\n"
- " err:\n"
- " \t\tACPI_COMPANION_SET(&pdev->dev, NULL);\n"
- "-\t\tkfree(pdev->dev.dma_mask);\n"
- " \n"
- " err_alloc:\n"
- " \t\tplatform_device_put(pdev);\n"
- "-- \n"
- 1.7.10.4
+ "Emil Goode\n"
+ "-------------- next part --------------\n"
+ "A non-text attachment was scrubbed...\n"
+ "Name: 0001-driver-core-platform-don-t-leak-memory-allocated-for.patch\n"
+ "Type: text/x-diff\n"
+ "Size: 9958 bytes\n"
+ "Desc: not available\n"
+ URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20140524/e1732228/attachment-0001.bin>
 
-e2b00ed019c522c2455bb04dc5fe0a0189d4dcfa22b0b2617539c04f46e36118
+2bf0fd765a6358d9f91658cd0c8a45f09d79b9a977ba03961e08a735bcc65fff

diff --git a/a/2.hdr b/N2/2.hdr
index 82d31a4..5260904 100644
--- a/a/2.hdr
+++ b/N2/2.hdr
@@ -1,3 +1,3 @@
-Content-Type: text/x-diff; charset="utf-8"
+Content-Type: text/x-diff; charset=utf-8
 Content-Disposition: attachment; filename="0001-driver-core-platform-don-t-leak-memory-allocated-for.patch"
 Content-Transfer-Encoding: 8bit
diff --git a/a/2.txt b/N2/2.txt
index b264196..0d9f7b4 100644
--- a/a/2.txt
+++ b/N2/2.txt
@@ -1,4 +1,4 @@
-From 66b72cb8eb71974903dd40ed67a34412faf818f0 Mon Sep 17 00:00:00 2001
+>From 66b72cb8eb71974903dd40ed67a34412faf818f0 Mon Sep 17 00:00:00 2001
 From: Yann Droneaud <ydroneaud@opteya.com>
 Date: Mon, 27 Jan 2014 11:05:52 +0100
 Subject: [PATCH] driver core/platform: don't leak memory allocated for
diff --git a/a/content_digest b/N2/content_digest
index d34c051..713f0e6 100644
--- a/a/content_digest
+++ b/N2/content_digest
@@ -2,8 +2,18 @@
  "ref\020140522181024.GA20155@pengutronix.de\0"
  "From\0Emil Goode <emilgoode@gmail.com>\0"
  "Subject\0Re: [PATCH] ARM: imx: introduce function imx_free_mx3_camera\0"
- "Date\0Sat, 24 May 2014 15:22:00 +0000\0"
- "To\0linux-arm-kernel@lists.infradead.org\0"
+ "Date\0Sat, 24 May 2014 17:22:00 +0200\0"
+ "To\0Uwe Kleine-K\303\266nig <u.kleine-koenig@pengutronix.de>"
+ " Greg Kroah-Hartman <gregkh@linuxfoundation.org>\0"
+ "Cc\0Shawn Guo <shawn.guo@freescale.com>"
+  Sascha Hauer <kernel@pengutronix.de>
+  Russell King <linux@arm.linux.org.uk>
+  Dan Carpenter <dan.carpenter@oracle.com>
+  Alexander Shiyan <shc_work@mail.ru>
+  Marc Kleine-Budde <mkl@pengutronix.de>
+  linux-arm-kernel@lists.infradead.org
+  linux-kernel@vger.kernel.org
+ " kernel-janitors@vger.kernel.org\0"
  "\01:1\0"
  "b\0"
  "Hello Uwe and Greg,\n"
@@ -31,7 +41,7 @@
  "\01:2\0"
  "fn\00001-driver-core-platform-don-t-leak-memory-allocated-for.patch\0"
  "b\0"
- "From 66b72cb8eb71974903dd40ed67a34412faf818f0 Mon Sep 17 00:00:00 2001\n"
+ ">From 66b72cb8eb71974903dd40ed67a34412faf818f0 Mon Sep 17 00:00:00 2001\n"
  "From: Yann Droneaud <ydroneaud@opteya.com>\n"
  "Date: Mon, 27 Jan 2014 11:05:52 +0100\n"
  "Subject: [PATCH] driver core/platform: don't leak memory allocated for\n"
@@ -272,4 +282,4 @@
  "-- \n"
  1.7.10.4
 
-e2b00ed019c522c2455bb04dc5fe0a0189d4dcfa22b0b2617539c04f46e36118
+5e65a335df7f164d84835b1430cbc65f8efe55fe94c3a3792ced262b03e8162d

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.