Cover Letter Detail
Show a cover letter.
GET /api/covers/816353/?format=api
{ "id": 816353, "url": "http://patchwork.ozlabs.org/api/covers/816353/?format=api", "web_url": "http://patchwork.ozlabs.org/project/linuxppc-dev/cover/20170920162910.32053-1-sergey.senozhatsky@gmail.com/", "project": { "id": 2, "url": "http://patchwork.ozlabs.org/api/projects/2/?format=api", "name": "Linux PPC development", "link_name": "linuxppc-dev", "list_id": "linuxppc-dev.lists.ozlabs.org", "list_email": "linuxppc-dev@lists.ozlabs.org", "web_url": "https://github.com/linuxppc/wiki/wiki", "scm_url": "https://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux.git", "webscm_url": "https://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux.git/", "list_archive_url": "https://lore.kernel.org/linuxppc-dev/", "list_archive_url_format": "https://lore.kernel.org/linuxppc-dev/{}/", "commit_url_format": "https://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux.git/commit/?id={}" }, "msgid": "<20170920162910.32053-1-sergey.senozhatsky@gmail.com>", "list_archive_url": "https://lore.kernel.org/linuxppc-dev/20170920162910.32053-1-sergey.senozhatsky@gmail.com/", "date": "2017-09-20T16:29:02", "name": "[RFC,v2,0/7] printk/ia64/ppc64/parisc64: let's deprecate %pF/%pf printk specifiers", "submitter": { "id": 3905, "url": "http://patchwork.ozlabs.org/api/people/3905/?format=api", "name": "Sergey Senozhatsky", "email": "sergey.senozhatsky@gmail.com" }, "mbox": "http://patchwork.ozlabs.org/project/linuxppc-dev/cover/20170920162910.32053-1-sergey.senozhatsky@gmail.com/mbox/", "series": [ { "id": 4171, "url": "http://patchwork.ozlabs.org/api/series/4171/?format=api", "web_url": "http://patchwork.ozlabs.org/project/linuxppc-dev/list/?series=4171", "date": "2017-09-20T16:29:02", "name": "printk/ia64/ppc64/parisc64: let's deprecate %pF/%pf printk specifiers", "version": 2, "mbox": "http://patchwork.ozlabs.org/series/4171/mbox/" } ], "comments": "http://patchwork.ozlabs.org/api/covers/816353/comments/", "headers": { "Return-Path": "<linuxppc-dev-bounces+patchwork-incoming=ozlabs.org@lists.ozlabs.org>", "X-Original-To": [ "patchwork-incoming@ozlabs.org", "linuxppc-dev@lists.ozlabs.org" ], "Delivered-To": [ "patchwork-incoming@ozlabs.org", "linuxppc-dev@lists.ozlabs.org" ], "Received": [ "from lists.ozlabs.org (lists.ozlabs.org [103.22.144.68])\n\t(using TLSv1.2 with cipher ADH-AES256-GCM-SHA384 (256/256 bits))\n\t(No client certificate requested)\n\tby ozlabs.org (Postfix) with ESMTPS id 3xy4yF6QZjz9t2Q\n\tfor <patchwork-incoming@ozlabs.org>;\n\tThu, 21 Sep 2017 02:31:49 +1000 (AEST)", "from lists.ozlabs.org (lists.ozlabs.org [IPv6:2401:3900:2:1::3])\n\tby lists.ozlabs.org (Postfix) with ESMTP id 3xy4yF56Z2zDqYg\n\tfor <patchwork-incoming@ozlabs.org>;\n\tThu, 21 Sep 2017 02:31:49 +1000 (AEST)", "from mail-pg0-x243.google.com (mail-pg0-x243.google.com\n\t[IPv6:2607:f8b0:400e:c05::243])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128\n\tbits)) (No client certificate requested)\n\tby lists.ozlabs.org (Postfix) with ESMTPS id 3xy4vV6Cf8zDqR8\n\tfor <linuxppc-dev@lists.ozlabs.org>;\n\tThu, 21 Sep 2017 02:29:26 +1000 (AEST)", "by mail-pg0-x243.google.com with SMTP id d8so1911440pgt.3\n\tfor <linuxppc-dev@lists.ozlabs.org>;\n\tWed, 20 Sep 2017 09:29:26 -0700 (PDT)", "from localhost.localdomain ([121.137.63.184])\n\tby smtp.gmail.com with ESMTPSA id\n\tc185sm8890567pfb.57.2017.09.20.09.29.19\n\t(version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);\n\tWed, 20 Sep 2017 09:29:23 -0700 (PDT)" ], "Authentication-Results": [ "ozlabs.org;\n\tdkim=fail reason=\"signature verification failed\" (2048-bit key;\n\tunprotected) header.d=gmail.com header.i=@gmail.com\n\theader.b=\"AyyvYqXc\"; dkim-atps=neutral", "lists.ozlabs.org;\n\tdkim=fail reason=\"signature verification failed\" (2048-bit key;\n\tunprotected) header.d=gmail.com header.i=@gmail.com\n\theader.b=\"AyyvYqXc\"; dkim-atps=neutral", "ozlabs.org;\n\tspf=pass (mailfrom) smtp.mailfrom=gmail.com\n\t(client-ip=2607:f8b0:400e:c05::243; helo=mail-pg0-x243.google.com;\n\tenvelope-from=sergey.senozhatsky@gmail.com; receiver=<UNKNOWN>)", "lists.ozlabs.org; dkim=pass (2048-bit key;\n\tunprotected) header.d=gmail.com header.i=@gmail.com\n\theader.b=\"AyyvYqXc\"; dkim-atps=neutral" ], "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;\n\th=from:to:cc:subject:date:message-id;\n\tbh=ceWezKCwdfMkL4vWLqX/BmC7+FolubpOepfNUVDp1iA=;\n\tb=AyyvYqXceofmH1lSb1571ojzZtyq2pEuDivJ9pp8JHQRcj9RCw/fNGoIY7jcMpNGyR\n\trsROZAWLxb8M8I1kSmEpxXTj+1Mw0bmg9eK7i7SEVtjYGBENH8JQrQV7FQoJo7u0zjKU\n\td7U7hfTX2v4dDMr9irInarLAxIsA6/cQ8bS79LfliC9TeD6QNrf/tUMjmTtiVvFTvicH\n\tBTQalS5XtqDhSgQkuDVROO+XZnjNslujtPb3I8XFcRk7vs6WjaLcoUMfNmAFrUUh4WrD\n\t5RUnP/NVxduDyUurQY5FwOGSWwlPEyvzXWU1cGmosUhBzmC+72trwobdeODZDCtvpotu\n\tIX5Q==", "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20161025;\n\th=x-gm-message-state:from:to:cc:subject:date:message-id;\n\tbh=ceWezKCwdfMkL4vWLqX/BmC7+FolubpOepfNUVDp1iA=;\n\tb=iJbnnlxKUZCMs/4gRxY3gZGuuJHrqsRG9+OlxHXtjnpc75vr2ZunijkDAXVsWyphLx\n\t4bdBagQ9/hHIJqF+KbzBHCl8Bq2pRFmmKCBZvFgKnz4TeXJ2wiE4YHY8OZYaTLzBHG8X\n\tuEsxWIlQGJQOrbgWqLo40st+pdD5HbpdjQo89YWfp4L0PhAJx7fbcNjdUBXox4NOd8w3\n\t3JgxY2MLLy416YHWBIc4wBu2U2P8jxhxMBkBabuBYI6DdxMS6DKMHI4GfjChU39NxeLa\n\t7l/P6JHJT7RkpTuBeBoJ07JItqTp0iVghaenXSiNyewCtG8P8bKRjXPUj1YKUCjuCWsc\n\t8MrQ==", "X-Gm-Message-State": "AHPjjUizOb8xfGu0pZk2wbozzeXlk8NlLWfnD4NqbzU0LxGIumKkhjxL\n\tnrSNBQTTyyxsM39X3/t7cBk=", "X-Google-Smtp-Source": "AOwi7QDK+OeB0hxfpDXWdRinKinJqp8rGBbTg5pH5fsVHp0Rm1SCBSN0gd7cTgSIW0vA9qWZT1lA2w==", "X-Received": "by 10.84.236.78 with SMTP id h14mr2582060pln.2.1505924964407;\n\tWed, 20 Sep 2017 09:29:24 -0700 (PDT)", "From": "Sergey Senozhatsky <sergey.senozhatsky@gmail.com>", "To": "Tony Luck <tony.luck@intel.com>, Fenghua Yu <fenghua.yu@intel.com>,\n\tBenjamin Herrenschmidt <benh@kernel.crashing.org>,\n\tPaul Mackerras <paulus@samba.org>,\n\tMichael Ellerman <mpe@ellerman.id.au>, \n\tJames Bottomley <jejb@parisc-linux.org>, Helge Deller <deller@gmx.de>", "Subject": "[RFC][PATCH v2 0/7] printk/ia64/ppc64/parisc64: let's deprecate\n\t%pF/%pf printk specifiers", "Date": "Thu, 21 Sep 2017 01:29:02 +0900", "Message-Id": "<20170920162910.32053-1-sergey.senozhatsky@gmail.com>", "X-Mailer": "git-send-email 2.14.1", "X-BeenThere": "linuxppc-dev@lists.ozlabs.org", "X-Mailman-Version": "2.1.24", "Precedence": "list", "List-Id": "Linux on PowerPC Developers Mail List\n\t<linuxppc-dev.lists.ozlabs.org>", "List-Unsubscribe": "<https://lists.ozlabs.org/options/linuxppc-dev>,\n\t<mailto:linuxppc-dev-request@lists.ozlabs.org?subject=unsubscribe>", "List-Archive": "<http://lists.ozlabs.org/pipermail/linuxppc-dev/>", "List-Post": "<mailto:linuxppc-dev@lists.ozlabs.org>", "List-Help": "<mailto:linuxppc-dev-request@lists.ozlabs.org?subject=help>", "List-Subscribe": "<https://lists.ozlabs.org/listinfo/linuxppc-dev>,\n\t<mailto:linuxppc-dev-request@lists.ozlabs.org?subject=subscribe>", "Cc": "Petr Mladek <pmladek@suse.com>, linux-ia64@vger.kernel.org,\n\tlinux-parisc@vger.kernel.org, Alexei Starovoitov <ast@kernel.org>,\n\tSteven Rostedt <rostedt@goodmis.org>, linux-kernel@vger.kernel.org,\n\tSergey Senozhatsky <sergey.senozhatsky@gmail.com>,\n\tJessica Yu <jeyu@kernel.org>, Andrew Morton <akpm@linux-foundation.org>, \n\tlinuxppc-dev@lists.ozlabs.org", "Errors-To": "linuxppc-dev-bounces+patchwork-incoming=ozlabs.org@lists.ozlabs.org", "Sender": "\"Linuxppc-dev\"\n\t<linuxppc-dev-bounces+patchwork-incoming=ozlabs.org@lists.ozlabs.org>" }, "content": "Hello\n\n RFC\n\n On some arches C function pointers are indirect and point to\na function descriptor, which contains the actual pointer to the code.\nThis mostly doesn't matter, except for cases when people want to print\nout function pointers in symbolic format, because the usual '%pS/%ps'\ndoes not work on those arches as expected. That's the reason why we\nhave '%pF/%pf', but since it's here because of a subtle ABI detail\nspecific to some arches (ppc64/ia64/parisc64) it's easy to misuse\n'%pF/%pf' and '%pS/%ps' (see [1], for example).\n\n This patch set attempts to move ia64/ppc64/parisc64 C function\npointer ABI details out of printk() to arch code. Function dereference\ncode now checks if a pointer belongs to a .opd ELF section and dereferences\nthat pointer only if it does. The kernel and modules have their own .opd\nsections that's why I use two different ARCH functions: for kernel and\nfor module pointer dereference.\n\n I planned to remove dereference_function_descriptor() entirely,\nbut then I discovered a bunch other uses cases (kgdbts, init/main.c,\nextable, etc.), so I decided to keep dereference_function_descriptor()\naround because the main point of this patch set is to deprecate %pF/%pf.\nBut at the same time, I think I can go further and handle both kernel\nand module descriptor dereference in dereference_function_descriptor().\nWe need a module pointer for module .opd check, so that will come at an\nextra cost of module lookup (may be there will some other issues along\nthe way, haven't checked it).\n\nRight now we've got:\n\n- dereference_function_descriptor(addr)\n a generic (old) function. it simply attempts to dereference\n whatever pointer we give it.\n\n- dereference_kernel_function_descriptor(addr)\n dereferences a kernel pointer if it's within the kernel's .opd\n section.\n\n- dereference_module_function_descriptor(module, addr)\n dereference a module pointer if it's within the module's .opd\n section.\n\n\n*** A BIG NOTE ***\n I don't own ia64/ppc64/parisc64 hardware, so the patches are not\n tested. Sorry about that!\n\nAnother note:\n I need to check what is BPF symbol lookup and do we need to\n do any dereference there.\n\nv2:\n-- convert dereference_function_descriptor() to unsigned long\n-- fix kernel descriptor range checks (Helge)\n-- fix parisc module descriptor range check (Helge)\n-- fix ppc64 module range check\n-- add checkpatch patch\n\n\nSergey Senozhatsky (7):\n switch dereference_function_descriptor() to `unsigned long'\n sections: split dereference_function_descriptor()\n ia64: Add .opd based function descriptor dereference\n powerpc64: Add .opd based function descriptor dereference\n parisc64: Add .opd based function descriptor dereference\n symbol lookup: use new kernel and module dereference functions\n checkpatch: add pF/pf deprecation warning\n\n Documentation/printk-formats.txt | 15 +++++----------\n arch/ia64/include/asm/sections.h | 16 ++++++++++++----\n arch/ia64/kernel/module.c | 13 +++++++++++++\n arch/ia64/kernel/vmlinux.lds.S | 2 ++\n arch/parisc/boot/compressed/vmlinux.lds.S | 2 ++\n arch/parisc/include/asm/sections.h | 4 +++-\n arch/parisc/kernel/module.c | 17 +++++++++++++++++\n arch/parisc/kernel/process.c | 15 ++++++++++++---\n arch/parisc/kernel/vmlinux.lds.S | 2 ++\n arch/parisc/mm/init.c | 4 ++--\n arch/powerpc/include/asm/module.h | 3 +++\n arch/powerpc/include/asm/sections.h | 17 ++++++++++++++---\n arch/powerpc/kernel/module_64.c | 16 ++++++++++++++++\n arch/powerpc/kernel/vmlinux.lds.S | 2 ++\n drivers/misc/kgdbts.c | 2 +-\n include/asm-generic/sections.h | 8 ++++++--\n include/linux/moduleloader.h | 4 ++++\n init/main.c | 2 +-\n kernel/extable.c | 2 +-\n kernel/kallsyms.c | 1 +\n kernel/module.c | 9 ++++++++-\n lib/vsprintf.c | 5 +----\n scripts/checkpatch.pl | 6 ++++--\n 23 files changed, 132 insertions(+), 35 deletions(-)" }