From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Subject: [00/13] replace print_symbol() with printk()-s From: Sergey Senozhatsky Message-Id: <20180105102538.GC471@jagdpanzerIV> Date: Fri, 5 Jan 2018 19:25:38 +0900 To: Sergey Senozhatsky Cc: Petr Mladek , Andrew Morton , Russell King , Catalin Marinas , Mark Salter , Tony Luck , David Howells , Yoshinori Sato , Guan Xuetao , Borislav Petkov , Greg Kroah-Hartman , Thomas Gleixner , Peter Zijlstra , Vineet Gupta , Fengguang Wu , Steven Rostedt , LKML , linux-arm-kernel@lists.infradead.org, linux-c6x-dev@linux-c6x.org, linux-ia64@vger.kernel.org, linux-am33-list@redhat.com, linux-sh@vger.kernel.org, linux-edac@vger.kernel.org, x86@kernel.org, linux-snps-arc@lists.infradead.org, Sergey Senozhatsky List-ID: T24gKDAxLzA1LzE4IDE5OjIxKSwgU2VyZ2V5IFNlbm96aGF0c2t5IHdyb3RlOgo+IE9uICgwMS8w NS8xOCAxMTowMyksIFBldHIgTWxhZGVrIHdyb3RlOgo+IFsuLl0KPiA+IEFueXdheSwgcHJpbnRf c3ltYm9sKCkgaXMgYW4gb2xkIHdlaXJkIEFQSSBhbmQgaXQgd291bGQgYmUgbmljZQo+ID4gdG8g ZXZlbnR1YWxseSBnZXQgcmlkIG9mIGl0LiBJIGNvdWxkIHRha2UgdGhpcyBwYXRjaGVzIGludG8K PiA+IHByaW50ay5naXQuCj4gCj4gbm8gb2JqZWN0aW9ucyBmcm9tIG15IHNpZGUgaWYgdGhlIHBh dGNoIHNldCB3aWxsIGdvIHRocm91Z2ggdGhlIHByaW50ayB0cmVlLgo+IHNoYWxsIHdlIHdhaXQg Zm9yIEFDS3Mgb3IgY2FuIHdlIG1vdmUgb24/IGRvIHlvdSBwbGFuIHRvIGxhbmQgaXQgaW4gNC4x Nj8KPiAKPiA+IFdvdWxkIHlvdSBtaW5kIGlmIEkgY2hhbmdlIHRoZSBjb21taXQgbWVzc2FnZXMg dG8gc29tZXRoaW5nIGxpa2U/Ogo+ID4gCj4gPiAgICAgcHJpbnRfc3ltYm9sKCkgaXMgYW4gb2xk IHdlaXJkIEFQSS4gSXQgaGFzIGJlZW4KPiA+ICAgICBvYnNvbGV0ZWQgYnkgcHJpbnRrKCkgYW5k ICVwUyBmb3JtYXQgc3BlY2lmaWVyLgo+IAo+IEkgd291bGRuJ3QuIGxldCdzIGRyb3AgdGhlICJ3 ZWlyZCIgcGFydC4gb3RoZXIgdGhhbiB0aGF0IGxvb2tzCj4gZ29vZCB0byBtZS4KCm9oLCBvbmUg bW9yZSB0aGluZy4gb25lIGV4dHJhIHBhdGNoLCB3aGljaCBnZXRzIHJpZCBvZgpwcmludF9zeW1i b2woKS9fX3ByaW50X3N5bWJvbCgpLgoKODwgPT09CgpGcm9tOiBTZXJnZXkgU2Vub3poYXRza3kg PHNlcmdleS5zZW5vemhhdHNreUBnbWFpbC5jb20+ClN1YmplY3Q6IFtQQVRDSF0ga2FsbHN5bXM6 IHJlbW92ZSBwcmludF9zeW1ib2woKSBmdW5jdGlvbgoKTm8gbW9yZSBwcmludF9zeW1ib2woKS9f X3ByaW50X3N5bWJvbCgpIHVzZXJzIGxlZnQsIHJlbW92ZSB0aGVzZQpzeW1ib2xzLgoKU2lnbmVk LW9mZi1ieTogU2VyZ2V5IFNlbm96aGF0c2t5IDxzZXJnZXkuc2Vub3poYXRza3lAZ21haWwuY29t PgpTdWdnZXN0ZWQtYnk6IEpvZSBQZXJjaGVzIDxqb2VAcGVyY2hlcy5jb20+Ci0tLQogRG9jdW1l bnRhdGlvbi9maWxlc3lzdGVtcy9zeXNmcy50eHQgICAgICAgICAgICAgICAgICAgIHwgIDQgKyst LQogRG9jdW1lbnRhdGlvbi90cmFuc2xhdGlvbnMvemhfQ04vZmlsZXN5c3RlbXMvc3lzZnMudHh0 IHwgIDQgKystLQogaW5jbHVkZS9saW51eC9rYWxsc3ltcy5oICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHwgMTggLS0tLS0tLS0tLS0tLS0tLS0tCiBrZXJuZWwva2FsbHN5bXMuYyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAxMSAtLS0tLS0tLS0tLQogNCBmaWxl cyBjaGFuZ2VkLCA0IGluc2VydGlvbnMoKyksIDMzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBh L0RvY3VtZW50YXRpb24vZmlsZXN5c3RlbXMvc3lzZnMudHh0IGIvRG9jdW1lbnRhdGlvbi9maWxl c3lzdGVtcy9zeXNmcy50eHQKaW5kZXggOWEzNjU4Y2MzOTllLi5hMTQyNmNhYmNlZjEgMTAwNjQ0 Ci0tLSBhL0RvY3VtZW50YXRpb24vZmlsZXN5c3RlbXMvc3lzZnMudHh0CisrKyBiL0RvY3VtZW50 YXRpb24vZmlsZXN5c3RlbXMvc3lzZnMudHh0CkBAIC0xNTQsOCArMTU0LDggQEAgc3RhdGljIHNz aXplX3QgZGV2X2F0dHJfc2hvdyhzdHJ1Y3Qga29iamVjdCAqa29iaiwgc3RydWN0IGF0dHJpYnV0 ZSAqYXR0ciwKICAgICAgICAgaWYgKGRldl9hdHRyLT5zaG93KQogICAgICAgICAgICAgICAgIHJl dCA9IGRldl9hdHRyLT5zaG93KGRldiwgZGV2X2F0dHIsIGJ1Zik7CiAgICAgICAgIGlmIChyZXQg Pj0gKHNzaXplX3QpUEFHRV9TSVpFKSB7Ci0gICAgICAgICAgICAgICAgcHJpbnRfc3ltYm9sKCJk ZXZfYXR0cl9zaG93OiAlcyByZXR1cm5lZCBiYWQgY291bnRcbiIsCi0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICh1bnNpZ25lZCBsb25nKWRldl9hdHRyLT5zaG93KTsKKyAgICAgICAg ICAgICAgICBwcmludGsoImRldl9hdHRyX3Nob3c6ICVwUyByZXR1cm5lZCBiYWQgY291bnRcbiIs CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRldl9hdHRyLT5zaG93KTsKICAgICAg ICAgfQogICAgICAgICByZXR1cm4gcmV0OwogfQpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi90 cmFuc2xhdGlvbnMvemhfQ04vZmlsZXN5c3RlbXMvc3lzZnMudHh0IGIvRG9jdW1lbnRhdGlvbi90 cmFuc2xhdGlvbnMvemhfQ04vZmlsZXN5c3RlbXMvc3lzZnMudHh0CmluZGV4IDdkM2IwNWVkYjhj ZS4uNDUyMjcxZGRhMTQxIDEwMDY0NAotLS0gYS9Eb2N1bWVudGF0aW9uL3RyYW5zbGF0aW9ucy96 aF9DTi9maWxlc3lzdGVtcy9zeXNmcy50eHQKKysrIGIvRG9jdW1lbnRhdGlvbi90cmFuc2xhdGlv bnMvemhfQ04vZmlsZXN5c3RlbXMvc3lzZnMudHh0CkBAIC0xNjcsOCArMTY3LDggQEAgc3RhdGlj IHNzaXplX3QgZGV2X2F0dHJfc2hvdyhzdHJ1Y3Qga29iamVjdCAqa29iaiwgc3RydWN0IGF0dHJp YnV0ZSAqYXR0ciwKICAgICAgICAgaWYgKGRldl9hdHRyLT5zaG93KQogICAgICAgICAgICAgICAg IHJldCA9IGRldl9hdHRyLT5zaG93KGRldiwgZGV2X2F0dHIsIGJ1Zik7CiAgICAgICAgIGlmIChy ZXQgPj0gKHNzaXplX3QpUEFHRV9TSVpFKSB7Ci0gICAgICAgICAgICAgICAgcHJpbnRfc3ltYm9s KCJkZXZfYXR0cl9zaG93OiAlcyByZXR1cm5lZCBiYWQgY291bnRcbiIsCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICh1bnNpZ25lZCBsb25nKWRldl9hdHRyLT5zaG93KTsKKyAgICAg ICAgICAgICAgICBwcmludGsoImRldl9hdHRyX3Nob3c6ICVwUyByZXR1cm5lZCBiYWQgY291bnRc biIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRldl9hdHRyLT5zaG93KTsKICAg ICAgICAgfQogICAgICAgICByZXR1cm4gcmV0OwogfQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51 eC9rYWxsc3ltcy5oIGIvaW5jbHVkZS9saW51eC9rYWxsc3ltcy5oCmluZGV4IDIzMTkwZTVjOTQw Yi4uNjU3YTgzYjk0M2YwIDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L2thbGxzeW1zLmgKKysr IGIvaW5jbHVkZS9saW51eC9rYWxsc3ltcy5oCkBAIC05NCw5ICs5NCw2IEBAIGV4dGVybiBpbnQg c3ByaW50X3N5bWJvbChjaGFyICpidWZmZXIsIHVuc2lnbmVkIGxvbmcgYWRkcmVzcyk7CiBleHRl cm4gaW50IHNwcmludF9zeW1ib2xfbm9fb2Zmc2V0KGNoYXIgKmJ1ZmZlciwgdW5zaWduZWQgbG9u ZyBhZGRyZXNzKTsKIGV4dGVybiBpbnQgc3ByaW50X2JhY2t0cmFjZShjaGFyICpidWZmZXIsIHVu c2lnbmVkIGxvbmcgYWRkcmVzcyk7CiAKLS8qIExvb2sgdXAgYSBrZXJuZWwgc3ltYm9sIGFuZCBw cmludCBpdCB0byB0aGUga2VybmVsIG1lc3NhZ2VzLiAqLwotZXh0ZXJuIHZvaWQgX19wcmludF9z eW1ib2woY29uc3QgY2hhciAqZm10LCB1bnNpZ25lZCBsb25nIGFkZHJlc3MpOwotCiBpbnQgbG9v a3VwX3N5bWJvbF9uYW1lKHVuc2lnbmVkIGxvbmcgYWRkciwgY2hhciAqc3ltbmFtZSk7CiBpbnQg bG9va3VwX3N5bWJvbF9hdHRycyh1bnNpZ25lZCBsb25nIGFkZHIsIHVuc2lnbmVkIGxvbmcgKnNp emUsIHVuc2lnbmVkIGxvbmcgKm9mZnNldCwgY2hhciAqbW9kbmFtZSwgY2hhciAqbmFtZSk7CiAK QEAgLTE2NiwyMyArMTYzLDggQEAgc3RhdGljIGlubGluZSBpbnQga2FsbHN5bXNfc2hvd192YWx1 ZSh2b2lkKQogCXJldHVybiBmYWxzZTsKIH0KIAotLyogU3R1cGlkIHRoYXQgdGhpcyBkb2VzIG5v dGhpbmcsIGJ1dCBJIGRpZG4ndCBjcmVhdGUgdGhpcyBtZXNzLiAqLwotI2RlZmluZSBfX3ByaW50 X3N5bWJvbChmbXQsIGFkZHIpCiAjZW5kaWYgLypDT05GSUdfS0FMTFNZTVMqLwogCi0vKiBUaGlz IG1hY3JvIGFsbG93cyB1cyB0byBrZWVwIHByaW50ayB0eXBlY2hlY2tpbmcgKi8KLXN0YXRpYyBf X3ByaW50ZigxLCAyKQotdm9pZCBfX2NoZWNrX3ByaW50c3ltX2Zvcm1hdChjb25zdCBjaGFyICpm bXQsIC4uLikKLXsKLX0KLQotc3RhdGljIGlubGluZSB2b2lkIHByaW50X3N5bWJvbChjb25zdCBj aGFyICpmbXQsIHVuc2lnbmVkIGxvbmcgYWRkcikKLXsKLQlfX2NoZWNrX3ByaW50c3ltX2Zvcm1h dChmbXQsICIiKTsKLQlfX3ByaW50X3N5bWJvbChmbXQsICh1bnNpZ25lZCBsb25nKQotCQkgICAg ICAgX19idWlsdGluX2V4dHJhY3RfcmV0dXJuX2FkZHIoKHZvaWQgKilhZGRyKSk7Ci19Ci0KIHN0 YXRpYyBpbmxpbmUgdm9pZCBwcmludF9pcF9zeW0odW5zaWduZWQgbG9uZyBpcCkKIHsKIAlwcmlu dGsoIls8JXB4Pl0gJXBTXG4iLCAodm9pZCAqKSBpcCwgKHZvaWQgKikgaXApOwpkaWZmIC0tZ2l0 IGEva2VybmVsL2thbGxzeW1zLmMgYi9rZXJuZWwva2FsbHN5bXMuYwppbmRleCAyNGY0NTY2ODlm OWMuLmEyM2UyMWFkYTgxYiAxMDA2NDQKLS0tIGEva2VybmVsL2thbGxzeW1zLmMKKysrIGIva2Vy bmVsL2thbGxzeW1zLmMKQEAgLTQyOSwxNyArNDI5LDYgQEAgaW50IHNwcmludF9iYWNrdHJhY2Uo Y2hhciAqYnVmZmVyLCB1bnNpZ25lZCBsb25nIGFkZHJlc3MpCiAJcmV0dXJuIF9fc3ByaW50X3N5 bWJvbChidWZmZXIsIGFkZHJlc3MsIC0xLCAxKTsKIH0KIAotLyogTG9vayB1cCBhIGtlcm5lbCBz eW1ib2wgYW5kIHByaW50IGl0IHRvIHRoZSBrZXJuZWwgbWVzc2FnZXMuICovCi12b2lkIF9fcHJp bnRfc3ltYm9sKGNvbnN0IGNoYXIgKmZtdCwgdW5zaWduZWQgbG9uZyBhZGRyZXNzKQotewotCWNo YXIgYnVmZmVyW0tTWU1fU1lNQk9MX0xFTl07Ci0KLQlzcHJpbnRfc3ltYm9sKGJ1ZmZlciwgYWRk cmVzcyk7Ci0KLQlwcmludGsoZm10LCBidWZmZXIpOwotfQotRVhQT1JUX1NZTUJPTChfX3ByaW50 X3N5bWJvbCk7Ci0KIC8qIFRvIGF2b2lkIHVzaW5nIGdldF9zeW1ib2xfb2Zmc2V0IGZvciBldmVy eSBzeW1ib2wsIHdlIGNhcnJ5IHByZWZpeCBhbG9uZy4gKi8KIHN0cnVjdCBrYWxsc3ltX2l0ZXIg ewogCWxvZmZfdCBwb3M7Cg== From mboxrd@z Thu Jan 1 00:00:00 1970 From: Sergey Senozhatsky Date: Fri, 05 Jan 2018 10:25:38 +0000 Subject: Re: [PATCH 00/13] replace print_symbol() with printk()-s Message-Id: <20180105102538.GC471@jagdpanzerIV> List-Id: References: <20171211125025.2270-1-sergey.senozhatsky@gmail.com> <20180105100300.j3svmcvvpfe2iows@pathway.suse.cz> <20180105102105.GB471@jagdpanzerIV> In-Reply-To: <20180105102105.GB471@jagdpanzerIV> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: linux-arm-kernel@lists.infradead.org On (01/05/18 19:21), Sergey Senozhatsky wrote: > On (01/05/18 11:03), Petr Mladek wrote: > [..] > > Anyway, print_symbol() is an old weird API and it would be nice > > to eventually get rid of it. I could take this patches into > > printk.git. > > no objections from my side if the patch set will go through the printk tree. > shall we wait for ACKs or can we move on? do you plan to land it in 4.16? > > > Would you mind if I change the commit messages to something like?: > > > > print_symbol() is an old weird API. It has been > > obsoleted by printk() and %pS format specifier. > > I wouldn't. let's drop the "weird" part. other than that looks > good to me. oh, one more thing. one extra patch, which gets rid of print_symbol()/__print_symbol(). 8< = From: Sergey Senozhatsky Subject: [PATCH] kallsyms: remove print_symbol() function No more print_symbol()/__print_symbol() users left, remove these symbols. Signed-off-by: Sergey Senozhatsky Suggested-by: Joe Perches --- Documentation/filesystems/sysfs.txt | 4 ++-- Documentation/translations/zh_CN/filesystems/sysfs.txt | 4 ++-- include/linux/kallsyms.h | 18 ------------------ kernel/kallsyms.c | 11 ----------- 4 files changed, 4 insertions(+), 33 deletions(-) diff --git a/Documentation/filesystems/sysfs.txt b/Documentation/filesystems/sysfs.txt index 9a3658cc399e..a1426cabcef1 100644 --- a/Documentation/filesystems/sysfs.txt +++ b/Documentation/filesystems/sysfs.txt @@ -154,8 +154,8 @@ static ssize_t dev_attr_show(struct kobject *kobj, struct attribute *attr, if (dev_attr->show) ret = dev_attr->show(dev, dev_attr, buf); if (ret >= (ssize_t)PAGE_SIZE) { - print_symbol("dev_attr_show: %s returned bad count\n", - (unsigned long)dev_attr->show); + printk("dev_attr_show: %pS returned bad count\n", + dev_attr->show); } return ret; } diff --git a/Documentation/translations/zh_CN/filesystems/sysfs.txt b/Documentation/translations/zh_CN/filesystems/sysfs.txt index 7d3b05edb8ce..452271dda141 100644 --- a/Documentation/translations/zh_CN/filesystems/sysfs.txt +++ b/Documentation/translations/zh_CN/filesystems/sysfs.txt @@ -167,8 +167,8 @@ static ssize_t dev_attr_show(struct kobject *kobj, struct attribute *attr, if (dev_attr->show) ret = dev_attr->show(dev, dev_attr, buf); if (ret >= (ssize_t)PAGE_SIZE) { - print_symbol("dev_attr_show: %s returned bad count\n", - (unsigned long)dev_attr->show); + printk("dev_attr_show: %pS returned bad count\n", + dev_attr->show); } return ret; } diff --git a/include/linux/kallsyms.h b/include/linux/kallsyms.h index 23190e5c940b..657a83b943f0 100644 --- a/include/linux/kallsyms.h +++ b/include/linux/kallsyms.h @@ -94,9 +94,6 @@ extern int sprint_symbol(char *buffer, unsigned long address); extern int sprint_symbol_no_offset(char *buffer, unsigned long address); extern int sprint_backtrace(char *buffer, unsigned long address); -/* Look up a kernel symbol and print it to the kernel messages. */ -extern void __print_symbol(const char *fmt, unsigned long address); - int lookup_symbol_name(unsigned long addr, char *symname); int lookup_symbol_attrs(unsigned long addr, unsigned long *size, unsigned long *offset, char *modname, char *name); @@ -166,23 +163,8 @@ static inline int kallsyms_show_value(void) return false; } -/* Stupid that this does nothing, but I didn't create this mess. */ -#define __print_symbol(fmt, addr) #endif /*CONFIG_KALLSYMS*/ -/* This macro allows us to keep printk typechecking */ -static __printf(1, 2) -void __check_printsym_format(const char *fmt, ...) -{ -} - -static inline void print_symbol(const char *fmt, unsigned long addr) -{ - __check_printsym_format(fmt, ""); - __print_symbol(fmt, (unsigned long) - __builtin_extract_return_addr((void *)addr)); -} - static inline void print_ip_sym(unsigned long ip) { printk("[<%px>] %pS\n", (void *) ip, (void *) ip); diff --git a/kernel/kallsyms.c b/kernel/kallsyms.c index 24f456689f9c..a23e21ada81b 100644 --- a/kernel/kallsyms.c +++ b/kernel/kallsyms.c @@ -429,17 +429,6 @@ int sprint_backtrace(char *buffer, unsigned long address) return __sprint_symbol(buffer, address, -1, 1); } -/* Look up a kernel symbol and print it to the kernel messages. */ -void __print_symbol(const char *fmt, unsigned long address) -{ - char buffer[KSYM_SYMBOL_LEN]; - - sprint_symbol(buffer, address); - - printk(fmt, buffer); -} -EXPORT_SYMBOL(__print_symbol); - /* To avoid using get_symbol_offset for every symbol, we carry prefix along. */ struct kallsym_iter { loff_t pos; -- 2.15.1 From mboxrd@z Thu Jan 1 00:00:00 1970 From: sergey.senozhatsky.work@gmail.com (Sergey Senozhatsky) Date: Fri, 5 Jan 2018 19:25:38 +0900 Subject: [PATCH 00/13] replace print_symbol() with printk()-s In-Reply-To: <20180105102105.GB471@jagdpanzerIV> References: <20171211125025.2270-1-sergey.senozhatsky@gmail.com> <20180105100300.j3svmcvvpfe2iows@pathway.suse.cz> <20180105102105.GB471@jagdpanzerIV> List-ID: Message-ID: <20180105102538.GC471@jagdpanzerIV> To: linux-snps-arc@lists.infradead.org On (01/05/18 19:21), Sergey Senozhatsky wrote: > On (01/05/18 11:03), Petr Mladek wrote: > [..] > > Anyway, print_symbol() is an old weird API and it would be nice > > to eventually get rid of it. I could take this patches into > > printk.git. > > no objections from my side if the patch set will go through the printk tree. > shall we wait for ACKs or can we move on? do you plan to land it in 4.16? > > > Would you mind if I change the commit messages to something like?: > > > > print_symbol() is an old weird API. It has been > > obsoleted by printk() and %pS format specifier. > > I wouldn't. let's drop the "weird" part. other than that looks > good to me. oh, one more thing. one extra patch, which gets rid of print_symbol()/__print_symbol(). 8< === From: Sergey Senozhatsky Subject: [PATCH] kallsyms: remove print_symbol() function No more print_symbol()/__print_symbol() users left, remove these symbols. Signed-off-by: Sergey Senozhatsky Suggested-by: Joe Perches --- Documentation/filesystems/sysfs.txt | 4 ++-- Documentation/translations/zh_CN/filesystems/sysfs.txt | 4 ++-- include/linux/kallsyms.h | 18 ------------------ kernel/kallsyms.c | 11 ----------- 4 files changed, 4 insertions(+), 33 deletions(-) diff --git a/Documentation/filesystems/sysfs.txt b/Documentation/filesystems/sysfs.txt index 9a3658cc399e..a1426cabcef1 100644 --- a/Documentation/filesystems/sysfs.txt +++ b/Documentation/filesystems/sysfs.txt @@ -154,8 +154,8 @@ static ssize_t dev_attr_show(struct kobject *kobj, struct attribute *attr, if (dev_attr->show) ret = dev_attr->show(dev, dev_attr, buf); if (ret >= (ssize_t)PAGE_SIZE) { - print_symbol("dev_attr_show: %s returned bad count\n", - (unsigned long)dev_attr->show); + printk("dev_attr_show: %pS returned bad count\n", + dev_attr->show); } return ret; } diff --git a/Documentation/translations/zh_CN/filesystems/sysfs.txt b/Documentation/translations/zh_CN/filesystems/sysfs.txt index 7d3b05edb8ce..452271dda141 100644 --- a/Documentation/translations/zh_CN/filesystems/sysfs.txt +++ b/Documentation/translations/zh_CN/filesystems/sysfs.txt @@ -167,8 +167,8 @@ static ssize_t dev_attr_show(struct kobject *kobj, struct attribute *attr, if (dev_attr->show) ret = dev_attr->show(dev, dev_attr, buf); if (ret >= (ssize_t)PAGE_SIZE) { - print_symbol("dev_attr_show: %s returned bad count\n", - (unsigned long)dev_attr->show); + printk("dev_attr_show: %pS returned bad count\n", + dev_attr->show); } return ret; } diff --git a/include/linux/kallsyms.h b/include/linux/kallsyms.h index 23190e5c940b..657a83b943f0 100644 --- a/include/linux/kallsyms.h +++ b/include/linux/kallsyms.h @@ -94,9 +94,6 @@ extern int sprint_symbol(char *buffer, unsigned long address); extern int sprint_symbol_no_offset(char *buffer, unsigned long address); extern int sprint_backtrace(char *buffer, unsigned long address); -/* Look up a kernel symbol and print it to the kernel messages. */ -extern void __print_symbol(const char *fmt, unsigned long address); - int lookup_symbol_name(unsigned long addr, char *symname); int lookup_symbol_attrs(unsigned long addr, unsigned long *size, unsigned long *offset, char *modname, char *name); @@ -166,23 +163,8 @@ static inline int kallsyms_show_value(void) return false; } -/* Stupid that this does nothing, but I didn't create this mess. */ -#define __print_symbol(fmt, addr) #endif /*CONFIG_KALLSYMS*/ -/* This macro allows us to keep printk typechecking */ -static __printf(1, 2) -void __check_printsym_format(const char *fmt, ...) -{ -} - -static inline void print_symbol(const char *fmt, unsigned long addr) -{ - __check_printsym_format(fmt, ""); - __print_symbol(fmt, (unsigned long) - __builtin_extract_return_addr((void *)addr)); -} - static inline void print_ip_sym(unsigned long ip) { printk("[<%px>] %pS\n", (void *) ip, (void *) ip); diff --git a/kernel/kallsyms.c b/kernel/kallsyms.c index 24f456689f9c..a23e21ada81b 100644 --- a/kernel/kallsyms.c +++ b/kernel/kallsyms.c @@ -429,17 +429,6 @@ int sprint_backtrace(char *buffer, unsigned long address) return __sprint_symbol(buffer, address, -1, 1); } -/* Look up a kernel symbol and print it to the kernel messages. */ -void __print_symbol(const char *fmt, unsigned long address) -{ - char buffer[KSYM_SYMBOL_LEN]; - - sprint_symbol(buffer, address); - - printk(fmt, buffer); -} -EXPORT_SYMBOL(__print_symbol); - /* To avoid using get_symbol_offset for every symbol, we carry prefix along. */ struct kallsym_iter { loff_t pos; -- 2.15.1 From mboxrd@z Thu Jan 1 00:00:00 1970 From: sergey.senozhatsky.work@gmail.com (Sergey Senozhatsky) Date: Fri, 5 Jan 2018 19:25:38 +0900 Subject: [PATCH 00/13] replace print_symbol() with printk()-s In-Reply-To: <20180105102105.GB471@jagdpanzerIV> References: <20171211125025.2270-1-sergey.senozhatsky@gmail.com> <20180105100300.j3svmcvvpfe2iows@pathway.suse.cz> <20180105102105.GB471@jagdpanzerIV> Message-ID: <20180105102538.GC471@jagdpanzerIV> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org On (01/05/18 19:21), Sergey Senozhatsky wrote: > On (01/05/18 11:03), Petr Mladek wrote: > [..] > > Anyway, print_symbol() is an old weird API and it would be nice > > to eventually get rid of it. I could take this patches into > > printk.git. > > no objections from my side if the patch set will go through the printk tree. > shall we wait for ACKs or can we move on? do you plan to land it in 4.16? > > > Would you mind if I change the commit messages to something like?: > > > > print_symbol() is an old weird API. It has been > > obsoleted by printk() and %pS format specifier. > > I wouldn't. let's drop the "weird" part. other than that looks > good to me. oh, one more thing. one extra patch, which gets rid of print_symbol()/__print_symbol(). 8< === From: Sergey Senozhatsky Subject: [PATCH] kallsyms: remove print_symbol() function No more print_symbol()/__print_symbol() users left, remove these symbols. Signed-off-by: Sergey Senozhatsky Suggested-by: Joe Perches --- Documentation/filesystems/sysfs.txt | 4 ++-- Documentation/translations/zh_CN/filesystems/sysfs.txt | 4 ++-- include/linux/kallsyms.h | 18 ------------------ kernel/kallsyms.c | 11 ----------- 4 files changed, 4 insertions(+), 33 deletions(-) diff --git a/Documentation/filesystems/sysfs.txt b/Documentation/filesystems/sysfs.txt index 9a3658cc399e..a1426cabcef1 100644 --- a/Documentation/filesystems/sysfs.txt +++ b/Documentation/filesystems/sysfs.txt @@ -154,8 +154,8 @@ static ssize_t dev_attr_show(struct kobject *kobj, struct attribute *attr, if (dev_attr->show) ret = dev_attr->show(dev, dev_attr, buf); if (ret >= (ssize_t)PAGE_SIZE) { - print_symbol("dev_attr_show: %s returned bad count\n", - (unsigned long)dev_attr->show); + printk("dev_attr_show: %pS returned bad count\n", + dev_attr->show); } return ret; } diff --git a/Documentation/translations/zh_CN/filesystems/sysfs.txt b/Documentation/translations/zh_CN/filesystems/sysfs.txt index 7d3b05edb8ce..452271dda141 100644 --- a/Documentation/translations/zh_CN/filesystems/sysfs.txt +++ b/Documentation/translations/zh_CN/filesystems/sysfs.txt @@ -167,8 +167,8 @@ static ssize_t dev_attr_show(struct kobject *kobj, struct attribute *attr, if (dev_attr->show) ret = dev_attr->show(dev, dev_attr, buf); if (ret >= (ssize_t)PAGE_SIZE) { - print_symbol("dev_attr_show: %s returned bad count\n", - (unsigned long)dev_attr->show); + printk("dev_attr_show: %pS returned bad count\n", + dev_attr->show); } return ret; } diff --git a/include/linux/kallsyms.h b/include/linux/kallsyms.h index 23190e5c940b..657a83b943f0 100644 --- a/include/linux/kallsyms.h +++ b/include/linux/kallsyms.h @@ -94,9 +94,6 @@ extern int sprint_symbol(char *buffer, unsigned long address); extern int sprint_symbol_no_offset(char *buffer, unsigned long address); extern int sprint_backtrace(char *buffer, unsigned long address); -/* Look up a kernel symbol and print it to the kernel messages. */ -extern void __print_symbol(const char *fmt, unsigned long address); - int lookup_symbol_name(unsigned long addr, char *symname); int lookup_symbol_attrs(unsigned long addr, unsigned long *size, unsigned long *offset, char *modname, char *name); @@ -166,23 +163,8 @@ static inline int kallsyms_show_value(void) return false; } -/* Stupid that this does nothing, but I didn't create this mess. */ -#define __print_symbol(fmt, addr) #endif /*CONFIG_KALLSYMS*/ -/* This macro allows us to keep printk typechecking */ -static __printf(1, 2) -void __check_printsym_format(const char *fmt, ...) -{ -} - -static inline void print_symbol(const char *fmt, unsigned long addr) -{ - __check_printsym_format(fmt, ""); - __print_symbol(fmt, (unsigned long) - __builtin_extract_return_addr((void *)addr)); -} - static inline void print_ip_sym(unsigned long ip) { printk("[<%px>] %pS\n", (void *) ip, (void *) ip); diff --git a/kernel/kallsyms.c b/kernel/kallsyms.c index 24f456689f9c..a23e21ada81b 100644 --- a/kernel/kallsyms.c +++ b/kernel/kallsyms.c @@ -429,17 +429,6 @@ int sprint_backtrace(char *buffer, unsigned long address) return __sprint_symbol(buffer, address, -1, 1); } -/* Look up a kernel symbol and print it to the kernel messages. */ -void __print_symbol(const char *fmt, unsigned long address) -{ - char buffer[KSYM_SYMBOL_LEN]; - - sprint_symbol(buffer, address); - - printk(fmt, buffer); -} -EXPORT_SYMBOL(__print_symbol); - /* To avoid using get_symbol_offset for every symbol, we carry prefix along. */ struct kallsym_iter { loff_t pos; -- 2.15.1 From mboxrd@z Thu Jan 1 00:00:00 1970 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751276AbeAEKZr (ORCPT + 1 other); Fri, 5 Jan 2018 05:25:47 -0500 Received: from mail-pl0-f65.google.com ([209.85.160.65]:35040 "EHLO mail-pl0-f65.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750787AbeAEKZo (ORCPT ); Fri, 5 Jan 2018 05:25:44 -0500 X-Google-Smtp-Source: ACJfBovCYZdAfuMjZ9n+i9etn+9qEUk7Pak6lgDcFZD5+5j1bfo+CcgLkJKHIyi/hS2Eq1hfMNHkzA== Date: Fri, 5 Jan 2018 19:25:38 +0900 From: Sergey Senozhatsky To: Sergey Senozhatsky Cc: Petr Mladek , Andrew Morton , Russell King , Catalin Marinas , Mark Salter , Tony Luck , David Howells , Yoshinori Sato , Guan Xuetao , Borislav Petkov , Greg Kroah-Hartman , Thomas Gleixner , Peter Zijlstra , Vineet Gupta , Fengguang Wu , Steven Rostedt , LKML , linux-arm-kernel@lists.infradead.org, linux-c6x-dev@linux-c6x.org, linux-ia64@vger.kernel.org, linux-am33-list@redhat.com, linux-sh@vger.kernel.org, linux-edac@vger.kernel.org, x86@kernel.org, linux-snps-arc@lists.infradead.org, Sergey Senozhatsky Subject: Re: [PATCH 00/13] replace print_symbol() with printk()-s Message-ID: <20180105102538.GC471@jagdpanzerIV> References: <20171211125025.2270-1-sergey.senozhatsky@gmail.com> <20180105100300.j3svmcvvpfe2iows@pathway.suse.cz> <20180105102105.GB471@jagdpanzerIV> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20180105102105.GB471@jagdpanzerIV> User-Agent: Mutt/1.9.2 (2017-12-15) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Return-Path: On (01/05/18 19:21), Sergey Senozhatsky wrote: > On (01/05/18 11:03), Petr Mladek wrote: > [..] > > Anyway, print_symbol() is an old weird API and it would be nice > > to eventually get rid of it. I could take this patches into > > printk.git. > > no objections from my side if the patch set will go through the printk tree. > shall we wait for ACKs or can we move on? do you plan to land it in 4.16? > > > Would you mind if I change the commit messages to something like?: > > > > print_symbol() is an old weird API. It has been > > obsoleted by printk() and %pS format specifier. > > I wouldn't. let's drop the "weird" part. other than that looks > good to me. oh, one more thing. one extra patch, which gets rid of print_symbol()/__print_symbol(). 8< === From: Sergey Senozhatsky Subject: [PATCH] kallsyms: remove print_symbol() function No more print_symbol()/__print_symbol() users left, remove these symbols. Signed-off-by: Sergey Senozhatsky Suggested-by: Joe Perches --- Documentation/filesystems/sysfs.txt | 4 ++-- Documentation/translations/zh_CN/filesystems/sysfs.txt | 4 ++-- include/linux/kallsyms.h | 18 ------------------ kernel/kallsyms.c | 11 ----------- 4 files changed, 4 insertions(+), 33 deletions(-) diff --git a/Documentation/filesystems/sysfs.txt b/Documentation/filesystems/sysfs.txt index 9a3658cc399e..a1426cabcef1 100644 --- a/Documentation/filesystems/sysfs.txt +++ b/Documentation/filesystems/sysfs.txt @@ -154,8 +154,8 @@ static ssize_t dev_attr_show(struct kobject *kobj, struct attribute *attr, if (dev_attr->show) ret = dev_attr->show(dev, dev_attr, buf); if (ret >= (ssize_t)PAGE_SIZE) { - print_symbol("dev_attr_show: %s returned bad count\n", - (unsigned long)dev_attr->show); + printk("dev_attr_show: %pS returned bad count\n", + dev_attr->show); } return ret; } diff --git a/Documentation/translations/zh_CN/filesystems/sysfs.txt b/Documentation/translations/zh_CN/filesystems/sysfs.txt index 7d3b05edb8ce..452271dda141 100644 --- a/Documentation/translations/zh_CN/filesystems/sysfs.txt +++ b/Documentation/translations/zh_CN/filesystems/sysfs.txt @@ -167,8 +167,8 @@ static ssize_t dev_attr_show(struct kobject *kobj, struct attribute *attr, if (dev_attr->show) ret = dev_attr->show(dev, dev_attr, buf); if (ret >= (ssize_t)PAGE_SIZE) { - print_symbol("dev_attr_show: %s returned bad count\n", - (unsigned long)dev_attr->show); + printk("dev_attr_show: %pS returned bad count\n", + dev_attr->show); } return ret; } diff --git a/include/linux/kallsyms.h b/include/linux/kallsyms.h index 23190e5c940b..657a83b943f0 100644 --- a/include/linux/kallsyms.h +++ b/include/linux/kallsyms.h @@ -94,9 +94,6 @@ extern int sprint_symbol(char *buffer, unsigned long address); extern int sprint_symbol_no_offset(char *buffer, unsigned long address); extern int sprint_backtrace(char *buffer, unsigned long address); -/* Look up a kernel symbol and print it to the kernel messages. */ -extern void __print_symbol(const char *fmt, unsigned long address); - int lookup_symbol_name(unsigned long addr, char *symname); int lookup_symbol_attrs(unsigned long addr, unsigned long *size, unsigned long *offset, char *modname, char *name); @@ -166,23 +163,8 @@ static inline int kallsyms_show_value(void) return false; } -/* Stupid that this does nothing, but I didn't create this mess. */ -#define __print_symbol(fmt, addr) #endif /*CONFIG_KALLSYMS*/ -/* This macro allows us to keep printk typechecking */ -static __printf(1, 2) -void __check_printsym_format(const char *fmt, ...) -{ -} - -static inline void print_symbol(const char *fmt, unsigned long addr) -{ - __check_printsym_format(fmt, ""); - __print_symbol(fmt, (unsigned long) - __builtin_extract_return_addr((void *)addr)); -} - static inline void print_ip_sym(unsigned long ip) { printk("[<%px>] %pS\n", (void *) ip, (void *) ip); diff --git a/kernel/kallsyms.c b/kernel/kallsyms.c index 24f456689f9c..a23e21ada81b 100644 --- a/kernel/kallsyms.c +++ b/kernel/kallsyms.c @@ -429,17 +429,6 @@ int sprint_backtrace(char *buffer, unsigned long address) return __sprint_symbol(buffer, address, -1, 1); } -/* Look up a kernel symbol and print it to the kernel messages. */ -void __print_symbol(const char *fmt, unsigned long address) -{ - char buffer[KSYM_SYMBOL_LEN]; - - sprint_symbol(buffer, address); - - printk(fmt, buffer); -} -EXPORT_SYMBOL(__print_symbol); - /* To avoid using get_symbol_offset for every symbol, we carry prefix along. */ struct kallsym_iter { loff_t pos; -- 2.15.1