From: Joe Perches <joe@perches.com>
To: Andrew Morton <akpm@linux-foundation.org>,
linux-arm-kernel@lists.infradead.org, linux-s390@vger.kernel.org,
linux-pm@vger.kernel.org,
openipmi-developer@lists.sourceforge.net,
linux-parisc@vger.kernel.org, linux-kernel@vger.kernel.org,
rtc-linux@googlegroups.com, linux-tegra@vger.kernel.org,
linux-watchdog@vger.kernel.org, cgroups@vger.kernel.org,
drbd-user@lists.linbit.com
Cc: linux-cris-kernel@axis.com, nios2-dev@lists.rocketboards.org,
linux@lists.openrisc.net, devel@driverdev.osuosl.org,
HPDD-discuss@ml01.01.org, linux-usb@vger.kernel.org
Subject: [PATCH 00/27] Convert seq_<foo> output calls to return void
Date: Sat, 21 Feb 2015 18:53:27 -0800 [thread overview]
Message-ID: <cover.1424573328.git.joe@perches.com> (raw)
As Al Viro said:
we are getting well-meaning folks who try to check that return value,
again and again, getting it wrong every time. Typical idiocies:
* return some kind of error out of ->show() on overflows. Pointless
*and* wrong - only hard errors (== fail read(2) with that) should be
reported that way; the caller does detect overflow and retires with bigger
buffer just fine.
* keep checking it after every sodding call of seq_...(), screwing
the cleanups up more often than not. Pointless, unless you are doing some
seriously expensive calculations to produce something you are going to print.
seq_...() are no-ops in case when overflow has already happened.
seq_has_overflowed() is only for situations when you really want to skip
a serious amount of work generating the data that would end up being
discarded and recalculated again when the caller grabs a bigger buffer and
calls you again. And more often than not it's an indication of ->show()
trying to do the work of iterator - e.g. when you have single_open() with
->show() printing the entire hash table of some sort all in one record.
Most of the time checking return value of seq_...() is better replaced with
not doing that. And "must check return value and Do Something(tm)" is too
strong habit for enough people to cause recurring trouble.
Joe Perches (27):
staging: lustre: Convert "return seq_printf(...)" uses
staging: lustre: Convert seq_ hash functions to return void
staging: lustre: Convert uses of "int rc = seq_printf(...)"
staging: lustre: Convert remaining uses of "= seq_printf(...)"
x86: mtrr: if: Remove use of seq_printf return value
power: wakeup: Remove use of seq_printf return value
ipmi: Remove use of seq_printf return value
rtc: Remove use of seq_printf return value
ipc: Remove use of seq_printf return value
pxa27x_udc: Remove use of seq_printf return value
microblaze: mb: Remove use of seq_printf return value
nios2: cpuinfo: Remove use of seq_printf return value
ARM: plat-pxa: Remove use of seq_printf return value
openrisc: Remove use of seq_printf return value
cris: Remove use of seq_printf return value
mfd: ab8500-debugfs: Remove use of seq_printf return value
staging: i2o: Remove use of seq_printf return value
staging: rtl8192x: Remove use of seq_printf return value
s390: Remove use of seq_printf return value
i8k: Remove use of seq_printf return value
watchdog: bcm281xx: Remove use of seq_printf return value
proc: Remove use of seq_printf return value
cgroup: Remove use of seq_printf return value
tracing: Remove use of seq_printf return value
lru_cache: Remove use of seq_printf return value
parisc: Remove use of seq_printf return value
regulator: dbx500: Remove use of seq_puts/seq_printf return value
arch/arm/plat-pxa/dma.c | 111 ++++++------
arch/cris/arch-v10/kernel/setup.c | 58 +++---
arch/cris/arch-v32/kernel/setup.c | 62 +++----
arch/microblaze/kernel/cpu/mb.c | 149 ++++++++--------
arch/nios2/kernel/cpuinfo.c | 77 ++++----
arch/openrisc/kernel/setup.c | 50 +++---
arch/s390/pci/pci_debug.c | 6 +-
arch/x86/kernel/cpu/mtrr/if.c | 12 +-
drivers/base/power/wakeup.c | 16 +-
drivers/char/i8k.c | 16 +-
drivers/char/ipmi/ipmi_msghandler.c | 12 +-
drivers/char/ipmi/ipmi_si_intf.c | 26 +--
drivers/char/ipmi/ipmi_ssif.c | 4 +-
drivers/mfd/ab8500-debugfs.c | 196 +++++++++++++--------
drivers/parisc/ccio-dma.c | 54 +++---
drivers/parisc/sba_iommu.c | 86 +++++----
drivers/regulator/dbx500-prcmu.c | 32 +---
drivers/rtc/rtc-cmos.c | 36 ++--
drivers/rtc/rtc-ds1305.c | 6 +-
drivers/rtc/rtc-mrst.c | 16 +-
drivers/rtc/rtc-tegra.c | 4 +-
drivers/s390/cio/blacklist.c | 12 +-
drivers/staging/i2o/i2o_proc.c | 18 +-
.../lustre/include/linux/libcfs/libcfs_hash.h | 4 +-
drivers/staging/lustre/lustre/fid/lproc_fid.c | 23 ++-
drivers/staging/lustre/lustre/libcfs/hash.c | 13 +-
drivers/staging/lustre/lustre/llite/lproc_llite.c | 117 ++++++------
drivers/staging/lustre/lustre/lmv/lproc_lmv.c | 18 +-
drivers/staging/lustre/lustre/lov/lproc_lov.c | 30 ++--
drivers/staging/lustre/lustre/mdc/lproc_mdc.c | 6 +-
.../lustre/lustre/obdclass/linux/linux-module.c | 38 ++--
.../lustre/lustre/obdclass/lprocfs_status.c | 108 ++++++------
drivers/staging/lustre/lustre/obdclass/lu_object.c | 25 +--
drivers/staging/lustre/lustre/osc/lproc_osc.c | 67 +++----
.../staging/lustre/lustre/ptlrpc/lproc_ptlrpc.c | 25 +--
drivers/staging/lustre/lustre/ptlrpc/sec_bulk.c | 82 +++++----
drivers/staging/rtl8192e/rtllib_module.c | 4 +-
.../staging/rtl8192u/ieee80211/ieee80211_module.c | 4 +-
drivers/usb/gadget/udc/pxa27x_udc.c | 132 +++++++-------
drivers/watchdog/bcm_kona_wdt.c | 27 +--
fs/proc/array.c | 4 +-
fs/proc/base.c | 82 +++++----
ipc/msg.c | 34 ++--
ipc/sem.c | 26 +--
ipc/shm.c | 42 ++---
ipc/util.c | 6 +-
kernel/cgroup.c | 4 +-
kernel/trace/trace_stack.c | 4 +-
lib/lru_cache.c | 9 +-
49 files changed, 1050 insertions(+), 943 deletions(-)
--
2.1.2
next reply other threads:[~2015-02-22 2:54 UTC|newest]
Thread overview: 55+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-02-22 2:53 Joe Perches [this message]
2015-02-22 2:53 ` [PATCH 01/27] staging: lustre: Convert "return seq_printf(...)" uses Joe Perches
2015-02-22 2:53 ` [PATCH 02/27] staging: lustre: Convert seq_ hash functions to return void Joe Perches
2015-02-22 2:53 ` [PATCH 03/27] staging: lustre: Convert uses of "int rc = seq_printf(...)" Joe Perches
2015-03-02 1:22 ` Greg Kroah-Hartman
2015-03-02 3:58 ` [PATCH 03/27 V2] " Joe Perches
2015-02-22 2:53 ` [PATCH 04/27] staging: lustre: Convert remaining uses of "= seq_printf(...)" Joe Perches
2015-02-22 2:53 ` [PATCH 05/27] x86: mtrr: if: Remove use of seq_printf return value Joe Perches
2015-02-22 2:53 ` [PATCH 06/27] power: wakeup: " Joe Perches
2015-02-22 21:38 ` Pavel Machek
2015-02-22 21:52 ` Joe Perches
2015-02-23 11:54 ` Pavel Machek
2015-02-22 2:53 ` [PATCH 07/27] ipmi: " Joe Perches
2015-02-23 23:50 ` Andrew Morton
2015-02-24 1:23 ` Joe Perches
2015-02-22 2:53 ` [PATCH 08/27] rtc: " Joe Perches
2015-02-22 2:53 ` [PATCH 09/27] ipc: " Joe Perches
2015-02-22 2:53 ` [PATCH 10/27] pxa27x_udc: " Joe Perches
2015-02-22 10:22 ` Robert Jarzmik
2015-02-22 2:53 ` [PATCH 11/27] microblaze: mb: " Joe Perches
2015-02-23 11:39 ` Michal Simek
2015-02-22 2:53 ` [PATCH 12/27] nios2: cpuinfo: " Joe Perches
2015-02-22 2:53 ` [PATCH 13/27] ARM: plat-pxa: " Joe Perches
2015-02-22 2:53 ` [PATCH 14/27] openrisc: " Joe Perches
2015-02-22 2:53 ` [PATCH 15/27] cris: " Joe Perches
2015-02-22 2:53 ` [PATCH 16/27] mfd: ab8500-debugfs: " Joe Perches
2015-03-06 10:54 ` Lee Jones
2015-02-22 2:53 ` [PATCH 17/27] staging: i2o: " Joe Perches
2015-02-22 2:53 ` [PATCH 18/27] staging: rtl8192x: " Joe Perches
2015-02-22 2:53 ` [PATCH 19/27] s390: " Joe Perches
2015-02-22 12:53 ` Sebastian Ott
2015-02-22 2:53 ` [PATCH 20/27] i8k: " Joe Perches
2015-02-22 4:55 ` Guenter Roeck
2015-02-22 2:53 ` [PATCH 21/27] watchdog: bcm281xx: " Joe Perches
2015-02-23 19:29 ` [21/27] " Guenter Roeck
2015-03-27 7:57 ` [PATCH 21/27] " Wim Van Sebroeck
2015-02-22 2:53 ` [PATCH 22/27] proc: " Joe Perches
2015-02-22 2:53 ` [PATCH 23/27] cgroup: " Joe Perches
2015-02-22 13:41 ` Tejun Heo
2015-02-22 2:53 ` [PATCH 24/27] tracing: " Joe Perches
2015-02-22 3:54 ` Steven Rostedt
2015-02-22 4:41 ` Al Viro
2015-02-22 10:39 ` Joe Perches
2015-02-23 17:20 ` Steven Rostedt
2015-02-23 17:36 ` Joe Perches
2015-02-22 2:53 ` [PATCH 25/27] lru_cache: " Joe Perches
2015-02-22 2:53 ` [PATCH 26/27] parisc: " Joe Perches
2015-02-22 2:53 ` [PATCH 27/27] regulator: dbx500: Remove use of seq_puts/seq_printf " Joe Perches
2015-02-23 13:55 ` Mark Brown
2015-02-23 14:52 ` Joe Perches
2015-02-24 8:18 ` Mark Brown
2015-02-22 4:00 ` [PATCH V2 - 15/27] cris: Remove use of seq_printf " Joe Perches
2015-02-23 7:18 ` Jesper Nilsson
2015-02-22 4:02 ` [PATCH V2 - 08/27] rtc: " Joe Perches
2015-02-26 12:10 ` [PATCH 11/27 v2] microblaze: mb: " Joe Perches
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=cover.1424573328.git.joe@perches.com \
--to=joe@perches.com \
--cc=HPDD-discuss@ml01.01.org \
--cc=akpm@linux-foundation.org \
--cc=cgroups@vger.kernel.org \
--cc=devel@driverdev.osuosl.org \
--cc=drbd-user@lists.linbit.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-cris-kernel@axis.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-parisc@vger.kernel.org \
--cc=linux-pm@vger.kernel.org \
--cc=linux-s390@vger.kernel.org \
--cc=linux-tegra@vger.kernel.org \
--cc=linux-usb@vger.kernel.org \
--cc=linux-watchdog@vger.kernel.org \
--cc=linux@lists.openrisc.net \
--cc=nios2-dev@lists.rocketboards.org \
--cc=openipmi-developer@lists.sourceforge.net \
--cc=rtc-linux@googlegroups.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox