diff options
author | David Daney <ddaney@caviumnetworks.com> | 2010-02-15 12:13:17 -0800 |
---|---|---|
committer | Ralf Baechle <ralf@linux-mips.org> | 2010-02-27 12:53:29 +0100 |
commit | f8c2648666b5a1b5ba9bbb662ae569bafd3cc830 (patch) | |
tree | 5c4e9806d2e05c3327a731e0bdf5651929d799b1 /drivers/staging/octeon/octeon-ethernet.h | |
parent | 1d08f00d576c62f1c7a96900a14648df33b3939a (diff) |
Staging: Octeon: Run phy bus accesses on a workqueue.
When directly accessing a phy, we must acquire the mdio bus lock. To
do that we cannot be in interrupt context, so we need to move these
operations to a workqueue.
Signed-off-by: David Daney <ddaney@caviumnetworks.com>
To: linux-mips@linux-mips.org
To: netdev@vger.kernel.org
To: gregkh@suse.de
Patchwork: http://patchwork.linux-mips.org/patch/965/
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Diffstat (limited to 'drivers/staging/octeon/octeon-ethernet.h')
-rw-r--r-- | drivers/staging/octeon/octeon-ethernet.h | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/staging/octeon/octeon-ethernet.h b/drivers/staging/octeon/octeon-ethernet.h index 40b69561543..8d0921061da 100644 --- a/drivers/staging/octeon/octeon-ethernet.h +++ b/drivers/staging/octeon/octeon-ethernet.h @@ -61,6 +61,8 @@ struct octeon_ethernet { void (*poll) (struct net_device *dev); struct hrtimer tx_restart_timer; ktime_t tx_restart_interval; + struct delayed_work tx_clean_work; + struct work_struct port_work; /* may be unused. */ }; /** @@ -97,6 +99,8 @@ extern int pow_send_group; extern int pow_receive_group; extern char pow_send_list[]; extern struct net_device *cvm_oct_device[]; +extern struct workqueue_struct *cvm_oct_poll_queue; +extern atomic_t cvm_oct_poll_queue_stopping; extern int max_rx_cpus; extern int rx_napi_weight; |