Message ID | 20250221-rmv_return-v1-0-cc8dff275827@quicinc.com |
---|---|
Headers | show |
Series | Remove weird and needless 'return' for void APIs | expand |
On Fri, Feb 21, 2025 at 2:02 PM Zijun Hu <quic_zijuhu@quicinc.com> wrote: > > Remove needless 'return' in the following void APIs: > > gpio_set_value_cansleep() > gpio_set_value() > > Since both the API and callee involved are void functions. > > Signed-off-by: Zijun Hu <quic_zijuhu@quicinc.com> > --- That would normally make sense but we're getting that reworked[1] in this very cycle so please drop this patch from your series. Bart [1] https://lore.kernel.org/linux-gpio/20250220-gpio-set-retval-v2-0-bc4cfd38dae3@linaro.org/
On 2/21/2025 9:06 PM, Bartosz Golaszewski wrote: > On Fri, Feb 21, 2025 at 2:02 PM Zijun Hu <quic_zijuhu@quicinc.com> wrote: >> >> Remove needless 'return' in the following void APIs: >> >> gpio_set_value_cansleep() >> gpio_set_value() >> >> Since both the API and callee involved are void functions. >> >> Signed-off-by: Zijun Hu <quic_zijuhu@quicinc.com> >> --- > > That would normally make sense but we're getting that reworked[1] in > this very cycle so please drop this patch from your series. > sure, will drop it in next revision. > Bart > > [1] https://lore.kernel.org/linux-gpio/20250220-gpio-set-retval-v2-0-bc4cfd38dae3@linaro.org/
On Fri, 21 Feb 2025 05:02:05 -0800 Zijun Hu <quic_zijuhu@quicinc.com> wrote: > This patch series is to remove weird and needless 'return' for > void APIs under include/ with the following pattern: > > api_header.h: > > void api_func_a(...); > > static inline void api_func_b(...) > { > return api_func_a(...); > } > > Remove the needless 'return' in api_func_b(). > > Signed-off-by: Zijun Hu <quic_zijuhu@quicinc.com> > --- > Zijun Hu (18): > mm/mmu_gather: Remove needless return in void API tlb_remove_page() > cpu: Remove needless return in void API suspend_enable_secondary_cpus() > crypto: api - Remove needless return in void API crypto_free_tfm() > crypto: scomp - Remove needless return in void API crypto_scomp_free_ctx() > sysfs: Remove needless return in void API sysfs_enable_ns() > skbuff: Remove needless return in void API consume_skb() > wifi: mac80211: Remove needless return in void API _ieee80211_hw_set() > net: sched: Remove needless return in void API qdisc_watchdog_schedule_ns() > ipv4/igmp: Remove needless return in void API ip_mc_dec_group() > IB/rdmavt: Remove needless return in void API rvt_mod_retry_timer() > ratelimit: Remove needless return in void API ratelimit_default_init() > siox: Remove needless return in void API siox_driver_unregister() > gpiolib: Remove needless return in two void APIs > PM: wakeup: Remove needless return in three void APIs > mfd: db8500-prcmu: Remove needless return in three void APIs > rhashtable: Remove needless return in three void APIs > dma-mapping: Remove needless return in five void APIs > mtd: nand: Do not return void function in void function > > include/asm-generic/tlb.h | 2 +- > include/crypto/internal/scompress.h | 2 +- > include/linux/cpu.h | 2 +- > include/linux/crypto.h | 2 +- > include/linux/dma-mapping.h | 12 ++++++------ > include/linux/gpio.h | 4 ++-- > include/linux/igmp.h | 2 +- > include/linux/mfd/dbx500-prcmu.h | 6 +++--- > include/linux/mtd/nand.h | 18 ++++++++++++------ > include/linux/pm_wakeup.h | 6 +++--- > include/linux/ratelimit.h | 4 ++-- > include/linux/rhashtable.h | 6 +++--- > include/linux/siox.h | 2 +- > include/linux/skbuff.h | 2 +- > include/linux/sysfs.h | 2 +- > include/net/mac80211.h | 2 +- > include/net/pkt_sched.h | 2 +- > include/rdma/rdmavt_qp.h | 2 +- > 18 files changed, 42 insertions(+), 36 deletions(-) > --- > base-commit: 2014c95afecee3e76ca4a56956a936e23283f05b > change-id: 20250221-rmv_return-f1dc82d492f0 > > Best regards, Is this something that could be done with a coccinelle script?
On 2025/2/22 03:36, Johannes Berg wrote: > On Fri, 2025-02-21 at 11:00 -0800, Stephen Hemminger wrote: >> Is this something that could be done with a coccinelle script? >> > Almost enough to do this: > > @@ > identifier fn; > expression E; > @@ > void fn(...) > { > ... > -return > E; > } > > > It takes a long time to run though, and does some wrong things as well: > if the return is in the middle of the function, it still matches and > removes it erroneously. if return is in the middle, we may need to convert the return statement in to two statement as [PATCH 18/18] does: https://lore.kernel.org/all/20250221-rmv_return-v1-18-cc8dff275827@quicinc.com/ namely, Convert "return func(...);" to "func(...); return;" C spec such as C17 have this description about return statement: 6.8.6.4: A return statement with an expression shall not appear in a function whose return type is void. A return statement without an expression shall only appear in a function whose return type is void. so, do we need to treat "return void function in void function" as bad code style and make coccinelle script check this bad usage?
This patch series is to remove weird and needless 'return' for void APIs under include/ with the following pattern: api_header.h: void api_func_a(...); static inline void api_func_b(...) { return api_func_a(...); } Remove the needless 'return' in api_func_b(). Signed-off-by: Zijun Hu <quic_zijuhu@quicinc.com> --- Zijun Hu (18): mm/mmu_gather: Remove needless return in void API tlb_remove_page() cpu: Remove needless return in void API suspend_enable_secondary_cpus() crypto: api - Remove needless return in void API crypto_free_tfm() crypto: scomp - Remove needless return in void API crypto_scomp_free_ctx() sysfs: Remove needless return in void API sysfs_enable_ns() skbuff: Remove needless return in void API consume_skb() wifi: mac80211: Remove needless return in void API _ieee80211_hw_set() net: sched: Remove needless return in void API qdisc_watchdog_schedule_ns() ipv4/igmp: Remove needless return in void API ip_mc_dec_group() IB/rdmavt: Remove needless return in void API rvt_mod_retry_timer() ratelimit: Remove needless return in void API ratelimit_default_init() siox: Remove needless return in void API siox_driver_unregister() gpiolib: Remove needless return in two void APIs PM: wakeup: Remove needless return in three void APIs mfd: db8500-prcmu: Remove needless return in three void APIs rhashtable: Remove needless return in three void APIs dma-mapping: Remove needless return in five void APIs mtd: nand: Do not return void function in void function include/asm-generic/tlb.h | 2 +- include/crypto/internal/scompress.h | 2 +- include/linux/cpu.h | 2 +- include/linux/crypto.h | 2 +- include/linux/dma-mapping.h | 12 ++++++------ include/linux/gpio.h | 4 ++-- include/linux/igmp.h | 2 +- include/linux/mfd/dbx500-prcmu.h | 6 +++--- include/linux/mtd/nand.h | 18 ++++++++++++------ include/linux/pm_wakeup.h | 6 +++--- include/linux/ratelimit.h | 4 ++-- include/linux/rhashtable.h | 6 +++--- include/linux/siox.h | 2 +- include/linux/skbuff.h | 2 +- include/linux/sysfs.h | 2 +- include/net/mac80211.h | 2 +- include/net/pkt_sched.h | 2 +- include/rdma/rdmavt_qp.h | 2 +- 18 files changed, 42 insertions(+), 36 deletions(-) --- base-commit: 2014c95afecee3e76ca4a56956a936e23283f05b change-id: 20250221-rmv_return-f1dc82d492f0 Best regards,