diff options
author | Tejun Heo <tj@kernel.org> | 2010-12-12 10:45:14 -0500 |
---|---|---|
committer | Tejun Heo <tj@kernel.org> | 2010-12-12 10:45:14 -0500 |
commit | 781ba4567698be9db7ca94d827c4b38d8583c168 (patch) | |
tree | a1083df1054b48078e311fc80d6e135201bc10c1 /drivers/net/wimax/i2400m/i2400m.h | |
parent | fe8998c5e3b173f3d5c450bbde6173e7fbe5158d (diff) |
i2400m: drop i2400m_schedule_work()
i2400m implements dynamic work allocation and queueing mechanism in
i2400_schedule_work(); however, this is only used for reset and
recovery which can be served equally well with preallocated per device
works.
Replace i2400m_schedule_work() with two work structs in struct i2400m.
These works are explicitly canceled when the device is released making
calls to flush_scheduled_work(), which is being deprecated,
unnecessary.
Signed-off-by: Tejun Heo <tj@kernel.org>
Cc: "David S. Miller" <davem@davemloft.net>
Cc: Inaky Perez-Gonzalez <inaky.perez-gonzalez@intel.com>
Cc: linux-wimax@intel.com
Cc: netdev@vger.kernel.org
Diffstat (limited to 'drivers/net/wimax/i2400m/i2400m.h')
-rw-r--r-- | drivers/net/wimax/i2400m/i2400m.h | 19 |
1 files changed, 5 insertions, 14 deletions
diff --git a/drivers/net/wimax/i2400m/i2400m.h b/drivers/net/wimax/i2400m/i2400m.h index 59ac7705e76e..17ecaa41a807 100644 --- a/drivers/net/wimax/i2400m/i2400m.h +++ b/drivers/net/wimax/i2400m/i2400m.h | |||
@@ -632,6 +632,11 @@ struct i2400m { | |||
632 | struct work_struct wake_tx_ws; | 632 | struct work_struct wake_tx_ws; |
633 | struct sk_buff *wake_tx_skb; | 633 | struct sk_buff *wake_tx_skb; |
634 | 634 | ||
635 | struct work_struct reset_ws; | ||
636 | const char *reset_reason; | ||
637 | |||
638 | struct work_struct recovery_ws; | ||
639 | |||
635 | struct dentry *debugfs_dentry; | 640 | struct dentry *debugfs_dentry; |
636 | const char *fw_name; /* name of the current firmware image */ | 641 | const char *fw_name; /* name of the current firmware image */ |
637 | unsigned long fw_version; /* version of the firmware interface */ | 642 | unsigned long fw_version; /* version of the firmware interface */ |
@@ -896,20 +901,6 @@ struct device *i2400m_dev(struct i2400m *i2400m) | |||
896 | return i2400m->wimax_dev.net_dev->dev.parent; | 901 | return i2400m->wimax_dev.net_dev->dev.parent; |
897 | } | 902 | } |
898 | 903 | ||
899 | /* | ||
900 | * Helper for scheduling simple work functions | ||
901 | * | ||
902 | * This struct can get any kind of payload attached (normally in the | ||
903 | * form of a struct where you pack the stuff you want to pass to the | ||
904 | * _work function). | ||
905 | */ | ||
906 | struct i2400m_work { | ||
907 | struct work_struct ws; | ||
908 | struct i2400m *i2400m; | ||
909 | size_t pl_size; | ||
910 | u8 pl[0]; | ||
911 | }; | ||
912 | |||
913 | extern int i2400m_msg_check_status(const struct i2400m_l3l4_hdr *, | 904 | extern int i2400m_msg_check_status(const struct i2400m_l3l4_hdr *, |
914 | char *, size_t); | 905 | char *, size_t); |
915 | extern int i2400m_msg_size_check(struct i2400m *, | 906 | extern int i2400m_msg_size_check(struct i2400m *, |