diff options
| author | Zheng Da <zhengda1936@gmail.com> | 2010-02-28 05:24:57 +0100 |
|---|---|---|
| committer | Zheng Da <zhengda1936@gmail.com> | 2010-02-28 05:24:57 +0100 |
| commit | fbb1c9f5d35a8b89bbebb55a4a49c3da2f189c05 (patch) | |
| tree | 478fb31c2121ff8b509f1d0b4ccce6c6f047ba58 /libdde_linux26/lib/src/net | |
| parent | f36fe67a1ec4914bef96f0bc8003a5ee0dd08c8c (diff) | |
implement cli/sti with a lock.
In order to avoid dead lock caused by spin_lock_irq or
spin_lock_irqsave, I remove irq disabling in them. It's really
unnecessary to do spin_lock_irq and spin_lock_irqsave any more because
interrupt isn't handled in a real interrupt context.
Diffstat (limited to 'libdde_linux26/lib/src/net')
| -rw-r--r-- | libdde_linux26/lib/src/net/core/dev.c | 9 |
1 files changed, 2 insertions, 7 deletions
diff --git a/libdde_linux26/lib/src/net/core/dev.c b/libdde_linux26/lib/src/net/core/dev.c index 128f4d73..64917332 100644 --- a/libdde_linux26/lib/src/net/core/dev.c +++ b/libdde_linux26/lib/src/net/core/dev.c @@ -2611,16 +2611,11 @@ out: void __napi_schedule(struct napi_struct *n) { unsigned long flags; - extern ddekit_lock_t cli_lock; - if (cli_lock == NULL) - ddekit_lock_init_unlocked(&cli_lock); - ddekit_lock_lock(&cli_lock); -// local_irq_save(flags); + local_irq_save(flags); list_add_tail(&n->poll_list, &__get_cpu_var(softnet_data).poll_list); __raise_softirq_irqoff(NET_RX_SOFTIRQ); -// local_irq_restore(flags); - ddekit_lock_unlock(&cli_lock); + local_irq_restore(flags); } EXPORT_SYMBOL(__napi_schedule); |
