[{"id":3674717,"web_url":"http://patchwork.ozlabs.org/comment/3674717/","msgid":"<75953ab2-8b96-ffe5-98ae-a565397bd7c3@huawei.com>","list_archive_url":null,"date":"2026-04-08T11:34:19","subject":"Re: [PATCH v2] jffs2: fix use-after-free in\n jffs2_garbage_collect_thread()","submitter":{"id":76854,"url":"http://patchwork.ozlabs.org/api/people/76854/","name":"Zhihao Cheng","email":"chengzhihao1@huawei.com"},"content":"在 2026/4/8 18:31, Dmitriy Chumachenko 写道:\n> During fuzz testing, the following issue was discovered.\n> \n> BUG: KASAN: use-after-free in __lock_acquire+0x3f22/0x53c0 kernel/locking/lockdep.c:4825\n> Read of size 8 at addr ffff888053cfa098 by task jffs2_gcd_mtd0/11093\n> \n> CPU: 1 PID: 11093 Comm: jffs2_gcd_mtd0 Not tainted 5.10.232-syzkaller #0\n> Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.12.0-1 04/01/2014\n> Call Trace:\n>   __dump_stack lib/dump_stack.c:77 [inline]\n>   dump_stack+0x107/0x167 lib/dump_stack.c:118\n>   print_address_description.constprop.0+0x1c/0x220 mm/kasan/report.c:377\n>   __kasan_report mm/kasan/report.c:537 [inline]\n>   kasan_report.cold+0x1f/0x37 mm/kasan/report.c:554\n>   __lock_acquire+0x3f22/0x53c0 kernel/locking/lockdep.c:4825\n>   lock_acquire kernel/locking/lockdep.c:5566 [inline]\n>   lock_acquire+0x197/0x480 kernel/locking/lockdep.c:5531\n>   __raw_spin_lock_irqsave include/linux/spinlock_api_smp.h:110 [inline]\n>   _raw_spin_lock_irqsave+0x36/0x60 kernel/locking/spinlock.c:159\n>   complete+0x13/0x60 kernel/sched/completion.c:32\n>   complete_and_exit+0x20/0x40 kernel/exit.c:943\n>   jffs2_garbage_collect_thread+0x554/0x750 fs/jffs2/background.c:164\n>   kthread+0x3a9/0x490 kernel/kthread.c:328\n>   ret_from_fork+0x1f/0x30 arch/x86/entry/entry_64.S:298\n> \n> Allocated by task 11091:\n>   kasan_save_stack+0x1b/0x40 mm/kasan/common.c:48\n>   kasan_set_track mm/kasan/common.c:56 [inline]\n>   __kasan_kmalloc.constprop.0+0xc9/0xd0 mm/kasan/common.c:461\n>   kmalloc include/linux/slab.h:552 [inline]\n>   kzalloc include/linux/slab.h:664 [inline]\n>   jffs2_init_fs_context+0x41/0xd0 fs/jffs2/super.c:314\n>   alloc_fs_context+0x4f9/0x840 fs/fs_context.c:267\n>   do_new_mount fs/namespace.c:2896 [inline]\n>   path_mount+0xb99/0x2140 fs/namespace.c:3247\n>   do_mount fs/namespace.c:3260 [inline]\n>   __do_sys_mount fs/namespace.c:3468 [inline]\n>   __se_sys_mount fs/namespace.c:3445 [inline]\n>   __x64_sys_mount+0x283/0x300 fs/namespace.c:3445\n>   do_syscall_64+0x30/0x40 arch/x86/entry/common.c:46\n>   entry_SYSCALL_64_after_hwframe+0x67/0xd1\n> \n> Freed by task 28546:\n>   kasan_save_stack+0x1b/0x40 mm/kasan/common.c:48\n>   kasan_set_track+0x1c/0x30 mm/kasan/common.c:56\n>   kasan_set_free_info+0x1b/0x30 mm/kasan/generic.c:355\n>   __kasan_slab_free+0x112/0x170 mm/kasan/common.c:422\n>   slab_free_hook mm/slub.c:1542 [inline]\n>   slab_free_freelist_hook+0xb8/0x1b0 mm/slub.c:1576\n>   slab_free mm/slub.c:3149 [inline]\n>   kfree+0xd9/0x360 mm/slub.c:4125\n>   deactivate_locked_super+0x96/0x170 fs/super.c:335\n>   deactivate_super+0xb2/0xd0 fs/super.c:366\n>   cleanup_mnt+0x3a3/0x530 fs/namespace.c:1118\n>   task_work_run+0xdf/0x1a0 kernel/task_work.c:185\n>   tracehook_notify_resume include/linux/tracehook.h:188 [inline]\n>   exit_to_user_mode_loop kernel/entry/common.c:172 [inline]\n>   exit_to_user_mode_prepare+0x1de/0x1f0 kernel/entry/common.c:199\n>   syscall_exit_to_user_mode+0x38/0x1e0 kernel/entry/common.c:274\n> \n> In jffs2_garbage_collect_thread() gc_task is set to NULL and then\n> kthread_complete_and_exit() calls complete() on gc_thread_exit. These\n> operations are not atomic: stop path can see gc_task == NULL, skip\n> wait_for_completion(), and the caller frees jffs2_sb_info while the GC\n> thread still accesses gc_thread_exit in complete().\n> \n> Moreover, spin_unlock() itself accesses c after complete() has woken the\n> stop path:\n> \n> jffs2_kill_sb                    jffs2_garbage_collect_thread\n>      jffs2_stop_garbage_collect_thread\n>        spin_lock\n>        send_sig(SIGKILL)\n>        wait = 1\n>        spin_unlock\n>                                       goto die\n>                                       spin_lock\n>                                       c->gc_task = NULL\n>                                       spin_unlock\n>                                       kthread_complete_and_exit()\n>                                         complete(&c->gc_thread_exit)\n>        wait_for_completion()\n>      kfree(c)\n> \n> Fix by adding a gc_thread_started flag that is set when the GC thread is\n> successfully started. Use this flag instead of gc_task to decide whether\n> to wait. The flag is never cleared by the GC thread, so\n> wait_for_completion() is always called when start() succeeded, regardless\n> of the current value of gc_task.\n>                                     \n> Found by Linux Verification Center (linuxtesting.org) with Syzkaller.\n> \n> Fixes: e2d48b1a98bb (\"[JFFS2] Fix cleanup in case of GC-Task not started\")\n> Signed-off-by: Dmitriy Chumachenko <Dmitry.Chumachenko@cyberprotect.ru>\n> ---\n> v1->v2: Use gc_thread_started flag as a reliable indicator instead\n>      of gc_task. Drop complete() under erase_completion_lock\n>      (thanks, Zhihao Cheng).\n> \n>   fs/jffs2/background.c  | 7 ++++---\n>   fs/jffs2/jffs2_fs_sb.h | 1 +\n>   2 files changed, 5 insertions(+), 3 deletions(-)\n> \n\nReviewed-by: Zhihao Cheng <chengzhihao1@huawei.com>\n> diff --git a/fs/jffs2/background.c b/fs/jffs2/background.c\n> index bb0ee1a59e71..5e5ed9053326 100644\n> --- a/fs/jffs2/background.c\n> +++ b/fs/jffs2/background.c\n> @@ -52,6 +52,7 @@ int jffs2_start_garbage_collect_thread(struct jffs2_sb_info *c)\n>   \t\t/* Wait for it... */\n>   \t\tjffs2_dbg(1, \"Garbage collect thread is pid %d\\n\", tsk->pid);\n>   \t\twait_for_completion(&c->gc_thread_start);\n> +\t\tc->gc_thread_started = true;\n>   \t\tret = tsk->pid;\n>   \t}\n>   \n> @@ -60,16 +61,16 @@ int jffs2_start_garbage_collect_thread(struct jffs2_sb_info *c)\n>   \n>   void jffs2_stop_garbage_collect_thread(struct jffs2_sb_info *c)\n>   {\n> -\tint wait = 0;\n>   \tspin_lock(&c->erase_completion_lock);\n>   \tif (c->gc_task) {\n>   \t\tjffs2_dbg(1, \"Killing GC task %d\\n\", c->gc_task->pid);\n>   \t\tsend_sig(SIGKILL, c->gc_task, 1);\n> -\t\twait = 1;\n>   \t}\n>   \tspin_unlock(&c->erase_completion_lock);\n> -\tif (wait)\n> +\tif (c->gc_thread_started) {\n>   \t\twait_for_completion(&c->gc_thread_exit);\n> +\t\tc->gc_thread_started = false;\n> +\t}\n>   }\n>   \n>   static int jffs2_garbage_collect_thread(void *_c)\n> diff --git a/fs/jffs2/jffs2_fs_sb.h b/fs/jffs2/jffs2_fs_sb.h\n> index 5a7091746f68..4c833e0ff03c 100644\n> --- a/fs/jffs2/jffs2_fs_sb.h\n> +++ b/fs/jffs2/jffs2_fs_sb.h\n> @@ -55,6 +55,7 @@ struct jffs2_sb_info {\n>   \tunsigned int flags;\n>   \n>   \tstruct task_struct *gc_task;\t/* GC task struct */\n> +\tbool gc_thread_started;         /* GC thread was successfully started */\n>   \tstruct completion gc_thread_start; /* GC thread start completion */\n>   \tstruct completion gc_thread_exit; /* GC thread exit completion port */\n>   \n>","headers":{"Return-Path":"\n <linux-mtd-bounces+incoming=patchwork.ozlabs.org@lists.infradead.org>","X-Original-To":"incoming@patchwork.ozlabs.org","Delivered-To":"patchwork-incoming@legolas.ozlabs.org","Authentication-Results":["legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n secure) header.d=lists.infradead.org header.i=@lists.infradead.org\n header.a=rsa-sha256 header.s=bombadil.20210309 header.b=Wn5nFIzk;\n\tdkim=fail reason=\"signature verification failed\" (1024-bit key;\n unprotected) header.d=huawei.com header.i=@huawei.com header.a=rsa-sha256\n header.s=dkim header.b=b3QOITmd;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=none (no SPF record) smtp.mailfrom=lists.infradead.org\n (client-ip=2607:7c80:54:3::133; helo=bombadil.infradead.org;\n envelope-from=linux-mtd-bounces+incoming=patchwork.ozlabs.org@lists.infradead.org;\n receiver=patchwork.ozlabs.org)"],"Received":["from bombadil.infradead.org (bombadil.infradead.org\n [IPv6:2607:7c80:54:3::133])\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 4frLZg25Tcz1xv0\n\tfor <incoming@patchwork.ozlabs.org>; Wed, 08 Apr 2026 21:34:46 +1000 (AEST)","from localhost ([::1] helo=bombadil.infradead.org)\n\tby bombadil.infradead.org with esmtp (Exim 4.98.2 #2 (Red Hat Linux))\n\tid 1wARB3-00000008lIv-3OiO;\n\tWed, 08 Apr 2026 11:34:33 +0000","from canpmsgout01.his.huawei.com ([113.46.200.216])\n\tby bombadil.infradead.org with esmtps (Exim 4.98.2 #2 (Red Hat Linux))\n\tid 1wARAz-00000008lHC-1sjl\n\tfor linux-mtd@lists.infradead.org;\n\tWed, 08 Apr 2026 11:34:32 +0000","from mail.maildlp.com (unknown [172.19.163.0])\n\tby canpmsgout01.his.huawei.com (SkyGuard) with ESMTPS id 4frLRL2Jy7z1T4Fk;\n\tWed,  8 Apr 2026 19:28:30 +0800 (CST)","from kwepemk500005.china.huawei.com (unknown [7.202.194.90])\n\tby mail.maildlp.com (Postfix) with ESMTPS id 3619C40537;\n\tWed,  8 Apr 2026 19:34:21 +0800 (CST)","from [10.174.178.46] (10.174.178.46) by\n kwepemk500005.china.huawei.com (7.202.194.90) with Microsoft SMTP Server\n (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id\n 15.2.1544.11; Wed, 8 Apr 2026 19:34:20 +0800"],"DKIM-Signature":["v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;\n\td=lists.infradead.org; s=bombadil.20210309; h=Sender:Content-Type:\n\tContent-Transfer-Encoding:List-Subscribe:List-Help:List-Post:List-Archive:\n\tList-Unsubscribe:List-Id:In-Reply-To:MIME-Version:Date:Message-ID:From:\n\tReferences:CC:To:Subject:Reply-To:Content-ID:Content-Description:Resent-Date:\n\tResent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner;\n\tbh=snCXJoxNALFuqKd1ZX5gmURbphHrOQuLU2Q4EJ62Xq8=; b=Wn5nFIzkcQfJQ41bDfUMcdxdq2\n\t+gjVtT06qfxbCPnV7wKUuG0JshgLit3aU2KsOExK27SPdTOwXk6YRemF5JWUAEo9MNx4+pAwvzBpy\n\tEGZ/i7TCTV9Fz1CUp8++NpVNBsZ3om3f1cpz6c4MteYt1VmJgavdG+JON/b+Ad5fcfN4c6BHiH5Oy\n\taeL6EU+a8uJgjduJvk7Xv0Do2VLd7vwYYNjnJGdX8eg+gijv4RMNRhGLxFhie458081PojIYjXcbG\n\tkiqKSlRTBkggx+QxJO4tXFNQIxUtQXqE0nPvvNA7x3/gkGIQFedGkO221Camxfjq3RjkHWBY1jZYn\n\tSNk8y2fw==;","v=1; a=rsa-sha256; d=huawei.com; s=dkim;\n\tc=relaxed/relaxed; q=dns/txt;\n\th=From;\n\tbh=nqfdcG4QUq1LuwaHu9TYpHwkpTZpBVXHVSFoNa3Ar6k=;\n\tb=b3QOITmd0iCiRoPvzo25nPv4oSk9gIvQENYZjI34I9CtTy6AQzjA5wUXH222+0EUBCKPZnoER\n\tikZAo/9gJiB2X33piBc3hEo07ixTSAhCH/oRlKNRb2aGbKN4B3uzSB0y1ZIli0ed7Y48a1ktGrY\n\tOT5ZsVFRfusG/bIGnqhL4ic="],"dkim-signature":["v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;\n\td=lists.infradead.org; s=bombadil.20210309; h=Sender:Content-Type:\n\tContent-Transfer-Encoding:List-Subscribe:List-Help:List-Post:List-Archive:\n\tList-Unsubscribe:List-Id:In-Reply-To:MIME-Version:Date:Message-ID:From:\n\tReferences:CC:To:Subject:Reply-To:Content-ID:Content-Description:Resent-Date:\n\tResent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner;\n\tbh=snCXJoxNALFuqKd1ZX5gmURbphHrOQuLU2Q4EJ62Xq8=; b=Wn5nFIzkcQfJQ41bDfUMcdxdq2\n\t+gjVtT06qfxbCPnV7wKUuG0JshgLit3aU2KsOExK27SPdTOwXk6YRemF5JWUAEo9MNx4+pAwvzBpy\n\tEGZ/i7TCTV9Fz1CUp8++NpVNBsZ3om3f1cpz6c4MteYt1VmJgavdG+JON/b+Ad5fcfN4c6BHiH5Oy\n\taeL6EU+a8uJgjduJvk7Xv0Do2VLd7vwYYNjnJGdX8eg+gijv4RMNRhGLxFhie458081PojIYjXcbG\n\tkiqKSlRTBkggx+QxJO4tXFNQIxUtQXqE0nPvvNA7x3/gkGIQFedGkO221Camxfjq3RjkHWBY1jZYn\n\tSNk8y2fw==;","v=1; a=rsa-sha256; d=huawei.com; s=dkim;\n\tc=relaxed/relaxed; q=dns/txt;\n\th=From;\n\tbh=nqfdcG4QUq1LuwaHu9TYpHwkpTZpBVXHVSFoNa3Ar6k=;\n\tb=b3QOITmd0iCiRoPvzo25nPv4oSk9gIvQENYZjI34I9CtTy6AQzjA5wUXH222+0EUBCKPZnoER\n\tikZAo/9gJiB2X33piBc3hEo07ixTSAhCH/oRlKNRb2aGbKN4B3uzSB0y1ZIli0ed7Y48a1ktGrY\n\tOT5ZsVFRfusG/bIGnqhL4ic="],"Subject":"Re: [PATCH v2] jffs2: fix use-after-free in\n jffs2_garbage_collect_thread()","To":"Dmitriy Chumachenko <Dmitry.Chumachenko@cyberprotect.ru>, David Woodhouse\n\t<dwmw2@infradead.org>","CC":"Richard Weinberger <richard@nod.at>, Thomas Gleixner <tglx@linutronix.de>,\n\t<linux-mtd@lists.infradead.org>, <linux-kernel@vger.kernel.org>,\n\t<lvc-project@linuxtesting.org>","References":"<20260408103127.22218-1-Dmitry.Chumachenko@cyberprotect.ru>","From":"Zhihao Cheng <chengzhihao1@huawei.com>","Message-ID":"<75953ab2-8b96-ffe5-98ae-a565397bd7c3@huawei.com>","Date":"Wed, 8 Apr 2026 19:34:19 +0800","User-Agent":"Mozilla/5.0 (Windows NT 10.0; WOW64; rv:68.0) Gecko/20100101\n Thunderbird/68.5.0","MIME-Version":"1.0","In-Reply-To":"<20260408103127.22218-1-Dmitry.Chumachenko@cyberprotect.ru>","X-Originating-IP":"[10.174.178.46]","X-ClientProxiedBy":"kwepems500002.china.huawei.com (7.221.188.17) To\n kwepemk500005.china.huawei.com (7.202.194.90)","X-CRM114-Version":"20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 ","X-CRM114-CacheID":"sfid-20260408_043431_331371_C15ED213 ","X-CRM114-Status":"GOOD (  24.54  )","X-Spam-Score":"-5.2 (-----)","X-Spam-Report":"=?unknown-8bit?q?Spam_detection_software=2C_running_on_the_sy?=\n\t=?unknown-8bit?q?stem_=22bombadil=2Einfradead=2Eorg=22=2C?=\n\t=?unknown-8bit?q?_has_NOT_identified_this_incoming_email_as_spam=2E__The_ori?=\n\t=?unknown-8bit?q?ginal?=\n\t=?unknown-8bit?q?_message_has_been_attached_to_this_so_you_can_view_it_or_la?=\n\t=?unknown-8bit?q?bel?=\n\t=?unknown-8bit?q?_similar_future_email=2E__If_you_have_any_questions=2C_see?=\n\t=?unknown-8bit?q?_the_administrator_of_that_system_for_details=2E?=\n\t=?unknown-8bit?q?_?=\n\t=?unknown-8bit?q?_Content_preview=3A__=E5=9C=A8_2026/4/8_18=3A31=2C_Dmitriy_?=\n\t=?unknown-8bit?q?Chumachenko_=E5=86=99=E9=81=93=3A_=3E_During_fuzz?=\n\t=?unknown-8bit?q?_testing=2C_the_following_issue_was_discovered=2E_=3E_=3E_B?=\n\t=?unknown-8bit?q?UG=3A_KASAN=3A_use-after-free?=\n\t=?unknown-8bit?q?_in_=5F=5Flock=5Facquire+0x3f22/0x53c0_kernel/locking/lockd?=\n\t=?unknown-8bit?q?ep=2Ec=3A4825_=5B=2E=2E=2E=5D_?=\n\t=?unknown-8bit?q?_?=\n\t=?unknown-8bit?q?_Content_analysis_details=3A___=28-5=2E2_points=2C_5=2E0_re?=\n\t=?unknown-8bit?q?quired=29?=\n\t=?unknown-8bit?q?_?=\n\t=?unknown-8bit?q?_pts_rule_name______________description?=\n\t=?unknown-8bit?q?_----_----------------------_------------------------------?=\n\t=?unknown-8bit?q?--------------------?=\n\t=?unknown-8bit?q?_0=2E0_RCVD=5FIN=5FVALIDITY=5FSAFE=5FBLOCKED_RBL=3A_ADMINIS?=\n\t=?unknown-8bit?q?TRATOR_NOTICE=3A_The_query_to?=\n\t=?unknown-8bit?q?_Validity_was_blocked=2E__See?=\n\t=?unknown-8bit?q?_https=3A//knowledge=2Evalidity=2Ecom/hc/en-us/articles/209?=\n\t=?unknown-8bit?q?61730681243?=\n\t=?unknown-8bit?q?_for_more_information=2E?=\n\t=?unknown-8bit?q?_=5B113=2E46=2E200=2E216_listed_in_sa-accredit=2Ehabeas=2Ec?=\n\t=?unknown-8bit?q?om=5D?=\n\t=?unknown-8bit?q?_0=2E0_RCVD=5FIN=5FVALIDITY=5FCERTIFIED=5FBLOCKED_RBL=3A_AD?=\n\t=?unknown-8bit?q?MINISTRATOR_NOTICE=3A_The?=\n\t=?unknown-8bit?q?_query_to_Validity_was_blocked=2E__See?=\n\t=?unknown-8bit?q?_https=3A//knowledge=2Evalidity=2Ecom/hc/en-us/articles/209?=\n\t=?unknown-8bit?q?61730681243?=\n\t=?unknown-8bit?q?_for_more_information=2E?=\n\t=?unknown-8bit?q?_=5B113=2E46=2E200=2E216_listed_in_sa-trusted=2Ebondedsende?=\n\t=?unknown-8bit?q?r=2Eorg=5D?=\n\t=?unknown-8bit?q?_0=2E0_RCVD=5FIN=5FMSPIKE=5FH2______RBL=3A_Average_reputati?=\n\t=?unknown-8bit?q?on_=28+2=29?=\n\t=?unknown-8bit?q?_=5B113=2E46=2E200=2E216_listed_in_wl=2Emailspike=2Enet=5D?=\n\t=?unknown-8bit?q?_0=2E0_RCVD=5FIN=5FVALIDITY=5FRPBL=5FBLOCKED_RBL=3A_ADMINIS?=\n\t=?unknown-8bit?q?TRATOR_NOTICE=3A_The_query_to?=\n\t=?unknown-8bit?q?_Validity_was_blocked=2E__See?=\n\t=?unknown-8bit?q?_https=3A//knowledge=2Evalidity=2Ecom/hc/en-us/articles/209?=\n\t=?unknown-8bit?q?61730681243?=\n\t=?unknown-8bit?q?_for_more_information=2E?=\n\t=?unknown-8bit?q?_=5B113=2E46=2E200=2E216_listed_in_bl=2Escore=2Esenderscore?=\n\t=?unknown-8bit?q?=2Ecom=5D?=\n\t=?unknown-8bit?q?_-0=2E0_SPF=5FPASS_______________SPF=3A_sender_matches_SPF_?=\n\t=?unknown-8bit?q?record?=\n\t=?unknown-8bit?q?_0=2E0_SPF=5FHELO=5FNONE__________SPF=3A_HELO_does_not_publ?=\n\t=?unknown-8bit?q?ish_an_SPF_Record?=\n\t=?unknown-8bit?q?_-0=2E1_DKIM=5FVALID=5FEF__________Message_has_a_valid_DKIM?=\n\t=?unknown-8bit?q?_or_DK_signature_from?=\n\t=?unknown-8bit?q?_envelope-from_domain?=\n\t=?unknown-8bit?q?_0=2E1_DKIM=5FSIGNED____________Message_has_a_DKIM_or_DK_si?=\n\t=?unknown-8bit?q?gnature=2C_not_necessarily_valid?=\n\t=?unknown-8bit?q?_-0=2E1_DKIM=5FVALID=5FAU__________Message_has_a_valid_DKIM?=\n\t=?unknown-8bit?q?_or_DK_signature_from_author=27s?=\n\t=?unknown-8bit?q?_domain?=\n\t=?unknown-8bit?q?_-0=2E1_DKIM=5FVALID_____________Message_has_at_least_one_v?=\n\t=?unknown-8bit?q?alid_DKIM_or_DK_signature?=\n\t=?unknown-8bit?q?_-1=2E9_BAYES=5F00_______________BODY=3A_Bayes_spam_probabi?=\n\t=?unknown-8bit?q?lity_is_0_to_1=25?=\n\t=?unknown-8bit?q?_=5Bscore=3A_0=2E0000=5D?=\n\t=?unknown-8bit?q?_-3=2E1_NICE=5FREPLY=5FA___________Looks_like_a_legit_reply?=\n\t=?unknown-8bit?q?_=28A=29?=","X-BeenThere":"linux-mtd@lists.infradead.org","X-Mailman-Version":"2.1.34","Precedence":"list","List-Id":"Linux MTD discussion mailing list <linux-mtd.lists.infradead.org>","List-Unsubscribe":"<http://lists.infradead.org/mailman/options/linux-mtd>,\n <mailto:linux-mtd-request@lists.infradead.org?subject=unsubscribe>","List-Archive":"<http://lists.infradead.org/pipermail/linux-mtd/>","List-Post":"<mailto:linux-mtd@lists.infradead.org>","List-Help":"<mailto:linux-mtd-request@lists.infradead.org?subject=help>","List-Subscribe":"<http://lists.infradead.org/mailman/listinfo/linux-mtd>,\n <mailto:linux-mtd-request@lists.infradead.org?subject=subscribe>","Content-Transfer-Encoding":"base64","Content-Type":"text/plain; charset=\"gbk\"; Format=\"flowed\"","Sender":"\"linux-mtd\" <linux-mtd-bounces@lists.infradead.org>","Errors-To":"linux-mtd-bounces+incoming=patchwork.ozlabs.org@lists.infradead.org"}}]