* [PATCH -next] rfkill: remove BUG_ON() in core.c
@ 2022-10-21 13:01 Yang Yingliang
2022-10-21 13:17 ` Johannes Berg
2022-10-23 8:12 ` Leon Romanovsky
0 siblings, 2 replies; 3+ messages in thread
From: Yang Yingliang @ 2022-10-21 13:01 UTC (permalink / raw)
To: linux-wireless, netdev; +Cc: johannes
Replace BUG_ON() with pointer check to handle fault more gracefully.
Signed-off-by: Yang Yingliang <yangyingliang@huawei.com>
---
net/rfkill/core.c | 29 ++++++++++++++---------------
1 file changed, 14 insertions(+), 15 deletions(-)
diff --git a/net/rfkill/core.c b/net/rfkill/core.c
index dac4fdc7488a..5fc96fa24eda 100644
--- a/net/rfkill/core.c
+++ b/net/rfkill/core.c
@@ -150,9 +150,8 @@ EXPORT_SYMBOL(rfkill_get_led_trigger_name);
void rfkill_set_led_trigger_name(struct rfkill *rfkill, const char *name)
{
- BUG_ON(!rfkill);
-
- rfkill->ledtrigname = name;
+ if (rfkill)
+ rfkill->ledtrigname = name;
}
EXPORT_SYMBOL(rfkill_set_led_trigger_name);
@@ -532,7 +531,8 @@ bool rfkill_set_hw_state_reason(struct rfkill *rfkill,
unsigned long flags;
bool ret, prev;
- BUG_ON(!rfkill);
+ if (!rfkill)
+ return blocked;
if (WARN(reason &
~(RFKILL_HARD_BLOCK_SIGNAL | RFKILL_HARD_BLOCK_NOT_OWNER),
@@ -581,7 +581,8 @@ bool rfkill_set_sw_state(struct rfkill *rfkill, bool blocked)
unsigned long flags;
bool prev, hwblock;
- BUG_ON(!rfkill);
+ if (!rfkill)
+ return blocked;
spin_lock_irqsave(&rfkill->lock, flags);
prev = !!(rfkill->state & RFKILL_BLOCK_SW);
@@ -607,8 +608,8 @@ void rfkill_init_sw_state(struct rfkill *rfkill, bool blocked)
{
unsigned long flags;
- BUG_ON(!rfkill);
- BUG_ON(rfkill->registered);
+ if (!rfkill || rfkill->registered)
+ return;
spin_lock_irqsave(&rfkill->lock, flags);
__rfkill_set_sw_state(rfkill, blocked);
@@ -622,7 +623,8 @@ void rfkill_set_states(struct rfkill *rfkill, bool sw, bool hw)
unsigned long flags;
bool swprev, hwprev;
- BUG_ON(!rfkill);
+ if (!rfkill)
+ return;
spin_lock_irqsave(&rfkill->lock, flags);
@@ -860,9 +862,7 @@ static int rfkill_dev_uevent(struct device *dev, struct kobj_uevent_env *env)
void rfkill_pause_polling(struct rfkill *rfkill)
{
- BUG_ON(!rfkill);
-
- if (!rfkill->ops->poll)
+ if (!rfkill || !rfkill->ops->poll)
return;
rfkill->polling_paused = true;
@@ -872,9 +872,7 @@ EXPORT_SYMBOL(rfkill_pause_polling);
void rfkill_resume_polling(struct rfkill *rfkill)
{
- BUG_ON(!rfkill);
-
- if (!rfkill->ops->poll)
+ if (!rfkill || !rfkill->ops->poll)
return;
rfkill->polling_paused = false;
@@ -1115,7 +1113,8 @@ EXPORT_SYMBOL(rfkill_register);
void rfkill_unregister(struct rfkill *rfkill)
{
- BUG_ON(!rfkill);
+ if (!rfkill)
+ return;
if (rfkill->ops->poll)
cancel_delayed_work_sync(&rfkill->poll_work);
--
2.25.1
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [PATCH -next] rfkill: remove BUG_ON() in core.c
2022-10-21 13:01 [PATCH -next] rfkill: remove BUG_ON() in core.c Yang Yingliang
@ 2022-10-21 13:17 ` Johannes Berg
2022-10-23 8:12 ` Leon Romanovsky
1 sibling, 0 replies; 3+ messages in thread
From: Johannes Berg @ 2022-10-21 13:17 UTC (permalink / raw)
To: Yang Yingliang, linux-wireless, netdev
On Fri, 2022-10-21 at 21:01 +0800, Yang Yingliang wrote:
> Replace BUG_ON() with pointer check to handle fault more gracefully.
>
That's basically (static) user errors though, so at least WARN_ON or
something?
johannes
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH -next] rfkill: remove BUG_ON() in core.c
2022-10-21 13:01 [PATCH -next] rfkill: remove BUG_ON() in core.c Yang Yingliang
2022-10-21 13:17 ` Johannes Berg
@ 2022-10-23 8:12 ` Leon Romanovsky
1 sibling, 0 replies; 3+ messages in thread
From: Leon Romanovsky @ 2022-10-23 8:12 UTC (permalink / raw)
To: Yang Yingliang; +Cc: linux-wireless, netdev, johannes
On Fri, Oct 21, 2022 at 09:01:04PM +0800, Yang Yingliang wrote:
> Replace BUG_ON() with pointer check to handle fault more gracefully.
>
> Signed-off-by: Yang Yingliang <yangyingliang@huawei.com>
> ---
> net/rfkill/core.c | 29 ++++++++++++++---------------
> 1 file changed, 14 insertions(+), 15 deletions(-)
>
> diff --git a/net/rfkill/core.c b/net/rfkill/core.c
> index dac4fdc7488a..5fc96fa24eda 100644
> --- a/net/rfkill/core.c
> +++ b/net/rfkill/core.c
> @@ -150,9 +150,8 @@ EXPORT_SYMBOL(rfkill_get_led_trigger_name);
>
> void rfkill_set_led_trigger_name(struct rfkill *rfkill, const char *name)
> {
> - BUG_ON(!rfkill);
> -
> - rfkill->ledtrigname = name;
> + if (rfkill)
In all these places, rfkill shouldn't be NULL from the beginning. By
adding these if (rfkill), you are saying to reviewers and code authors
that it is correct thing to do something like this
rfkill_set_led_trigger_name(NULL, "new_name"), which is of course not
true.
Thanks
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2022-10-23 8:12 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-10-21 13:01 [PATCH -next] rfkill: remove BUG_ON() in core.c Yang Yingliang
2022-10-21 13:17 ` Johannes Berg
2022-10-23 8:12 ` Leon Romanovsky
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).