aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wimax/i2400m/i2400m.h
diff options
context:
space:
mode:
authorTejun Heo <tj@kernel.org>2010-12-12 10:45:14 -0500
committerTejun Heo <tj@kernel.org>2010-12-12 10:45:14 -0500
commit781ba4567698be9db7ca94d827c4b38d8583c168 (patch)
treea1083df1054b48078e311fc80d6e135201bc10c1 /drivers/net/wimax/i2400m/i2400m.h
parentfe8998c5e3b173f3d5c450bbde6173e7fbe5158d (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.h19
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 */
906struct i2400m_work {
907 struct work_struct ws;
908 struct i2400m *i2400m;
909 size_t pl_size;
910 u8 pl[0];
911};
912
913extern int i2400m_msg_check_status(const struct i2400m_l3l4_hdr *, 904extern int i2400m_msg_check_status(const struct i2400m_l3l4_hdr *,
914 char *, size_t); 905 char *, size_t);
915extern int i2400m_msg_size_check(struct i2400m *, 906extern int i2400m_msg_size_check(struct i2400m *,