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.