mbox series

[*-next,00/18] Remove weird and needless 'return' for void APIs

Message ID 20250221-rmv_return-v1-0-cc8dff275827@quicinc.com
Headers show
Series Remove weird and needless 'return' for void APIs | expand

Message

Zijun Hu Feb. 21, 2025, 1:02 p.m. UTC
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,

Comments

Zijun Hu Feb. 22, 2025, 10:38 a.m. UTC | #1
On 2025/2/21 23:40, Arnd Bergmann 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>
> I have no objection to the changes, but I think you should
> describe the motivation for them beyond them being 'weird'.
> 

yes. 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.

do we need to treat below return statement as bad code style ?

void api_func_a(...);
void api_func_b(...) {
...
	return api_func_a(...); // return void function in void func
...
}

> Do these 'return' statements get in the way of some other
> work you are doing? Is there a compiler warning you want
> to enable to ensure they don't come back? Is this all of
> the instances in the kernel or just the ones you found by
> inspection?

actually, i find this weird return usage by reading code by accident
in driver core firstly:
https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core.git/commit/?h=driver-core-testing&id=a44073c28bc6d4118891d61e31c9fa9dc4333dc0

then i check folder include/ and work out this patch series.

not sure if there are still such instances in current kernel tree.