Commit 77fba13c authored by Henrique de Moraes Holschuh's avatar Henrique de Moraes Holschuh Committed by John W. Linville

rfkill: add __must_check annotations

rfkill is not a small, mere detail in wireless support.  Once it starts
supporting rfkill and users start counting on that support, a wireless
device is at risk of operating in dangerous conditions should rfkill
support fail to properly activate.

Therefore, add the required __must_check annotations on some key functions
of the rfkill API, for which the wireless drivers absolutely MUST handle
the failure mode safely in order to avoid a potentially dangerous situation
where the wireless transmitter is left enabled when the user don't want it
to.
Signed-off-by: default avatarHenrique de Moraes Holschuh <hmh@hmh.eng.br>
Acked-by: default avatarIvo van Doorn <IvDoorn@gmail.com>
Cc: Matthew Garrett <mjg@redhat.com>
Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
parent 99619201
...@@ -110,9 +110,10 @@ struct rfkill { ...@@ -110,9 +110,10 @@ struct rfkill {
}; };
#define to_rfkill(d) container_of(d, struct rfkill, dev) #define to_rfkill(d) container_of(d, struct rfkill, dev)
struct rfkill *rfkill_allocate(struct device *parent, enum rfkill_type type); struct rfkill * __must_check rfkill_allocate(struct device *parent,
enum rfkill_type type);
void rfkill_free(struct rfkill *rfkill); void rfkill_free(struct rfkill *rfkill);
int rfkill_register(struct rfkill *rfkill); int __must_check rfkill_register(struct rfkill *rfkill);
void rfkill_unregister(struct rfkill *rfkill); void rfkill_unregister(struct rfkill *rfkill);
int rfkill_force_state(struct rfkill *rfkill, enum rfkill_state state); int rfkill_force_state(struct rfkill *rfkill, enum rfkill_state state);
......
...@@ -645,7 +645,8 @@ static void rfkill_remove_switch(struct rfkill *rfkill) ...@@ -645,7 +645,8 @@ static void rfkill_remove_switch(struct rfkill *rfkill)
* NOTE: If registration fails the structure shoudl be freed by calling * NOTE: If registration fails the structure shoudl be freed by calling
* rfkill_free() otherwise rfkill_unregister() should be used. * rfkill_free() otherwise rfkill_unregister() should be used.
*/ */
struct rfkill *rfkill_allocate(struct device *parent, enum rfkill_type type) struct rfkill * __must_check rfkill_allocate(struct device *parent,
enum rfkill_type type)
{ {
struct rfkill *rfkill; struct rfkill *rfkill;
struct device *dev; struct device *dev;
...@@ -716,7 +717,7 @@ static void rfkill_led_trigger_unregister(struct rfkill *rfkill) ...@@ -716,7 +717,7 @@ static void rfkill_led_trigger_unregister(struct rfkill *rfkill)
* structure needs to be registered. Immediately from registration the * structure needs to be registered. Immediately from registration the
* switch driver should be able to service calls to toggle_radio. * switch driver should be able to service calls to toggle_radio.
*/ */
int rfkill_register(struct rfkill *rfkill) int __must_check rfkill_register(struct rfkill *rfkill)
{ {
static atomic_t rfkill_no = ATOMIC_INIT(0); static atomic_t rfkill_no = ATOMIC_INIT(0);
struct device *dev = &rfkill->dev; struct device *dev = &rfkill->dev;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment