Module: xenomai-3 Branch: arm64 Commit: add91aef0fd5d45356ccb3223b3ca4d6230e8068 URL: http://git.xenomai.org/?p=xenomai-3.git;a=commit;h=add91aef0fd5d45356ccb3223b3ca4d6230e8068
Author: Gilles Chanteperdrix <gilles.chanteperd...@xenomai.org> Date: Tue Oct 13 21:08:03 2015 +0200 rtnet/e1000e: use rtdm schedule work in order to avoid calling schedule_work from head domain. --- kernel/drivers/net/drivers/e1000e/netdev.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/kernel/drivers/net/drivers/e1000e/netdev.c b/kernel/drivers/net/drivers/e1000e/netdev.c index 775ee08..d83d228 100644 --- a/kernel/drivers/net/drivers/e1000e/netdev.c +++ b/kernel/drivers/net/drivers/e1000e/netdev.c @@ -581,7 +581,7 @@ static void e1000e_update_rdt_wa(struct e1000_adapter *adapter, unsigned int i) u32 rctl = er32(RCTL); ew32(RCTL, rctl & ~E1000_RCTL_EN); e_err("ME firmware caused invalid RDT - resetting\n"); - schedule_work(&adapter->reset_task); + rtdm_schedule_nrt_work(&adapter->reset_task); } } @@ -594,7 +594,7 @@ static void e1000e_update_tdt_wa(struct e1000_adapter *adapter, unsigned int i) u32 tctl = er32(TCTL); ew32(TCTL, tctl & ~E1000_TCTL_EN); e_err("ME firmware caused invalid TDT - resetting\n"); - schedule_work(&adapter->reset_task); + rtdm_schedule_nrt_work(&adapter->reset_task); } } @@ -949,7 +949,7 @@ static int e1000_intr_msi(rtdm_irq_t *irq_handle) */ if ((adapter->flags & FLAG_LSC_GIG_SPEED_DROP) && (!(er32(STATUS) & E1000_STATUS_LU))) - schedule_work(&adapter->downshift_task); + rtdm_schedule_nrt_work(&adapter->downshift_task); /* * 80003ES2LAN workaround-- For packet buffer work-around on @@ -2885,7 +2885,7 @@ static void e1000_update_phy_info(unsigned long data) if (test_bit(__E1000_DOWN, &adapter->state)) return; - schedule_work(&adapter->update_phy_task); + rtdm_schedule_nrt_work(&adapter->update_phy_task); } /** @@ -3018,7 +3018,7 @@ static void e1000e_check_82574_phy_workaround(struct e1000_adapter *adapter) if (adapter->phy_hang_count > 1) { adapter->phy_hang_count = 0; - schedule_work(&adapter->reset_task); + rtdm_schedule_nrt_work(&adapter->reset_task); } } @@ -3031,7 +3031,7 @@ static void e1000_watchdog(unsigned long data) struct e1000_adapter *adapter = (struct e1000_adapter *) data; /* Do the rest outside of interrupt context */ - schedule_work(&adapter->watchdog_task); + rtdm_schedule_nrt_work(&adapter->watchdog_task); /* TODO: make this use queue_delayed_work() */ } @@ -3172,7 +3172,7 @@ static void e1000_watchdog_task(struct work_struct *work) round_jiffies(jiffies + 2 * HZ)); if (adapter->flags & FLAG_RX_NEEDS_RESTART) - schedule_work(&adapter->reset_task); + rtdm_schedule_nrt_work(&adapter->reset_task); } } @@ -3200,7 +3200,7 @@ link_up: * to get done, so reset controller to flush Tx. * (Do the reset outside of interrupt context). */ - schedule_work(&adapter->reset_task); + rtdm_schedule_nrt_work(&adapter->reset_task); /* return immediately since reset is imminent */ return; } _______________________________________________ Xenomai-git mailing list Xenomai-git@xenomai.org http://xenomai.org/mailman/listinfo/xenomai-git