summaryrefslogtreecommitdiff
path: root/libdde_linux26/lib/src/net
diff options
context:
space:
mode:
authorZheng Da <zhengda1936@gmail.com>2010-02-27 15:46:25 +0100
committerZheng Da <zhengda1936@gmail.com>2010-02-27 15:46:25 +0100
commita4bb3955579991dfb1ef5b8ffcc498b54671351e (patch)
tree158bb092ba98c1e29c100eab7229a7d7ca65c6e6 /libdde_linux26/lib/src/net
parent5980bdb21ee1c39455ed319b8390800d9cd7de14 (diff)
Use lock to protect pending softirq variable.
This is a temporary solution. I should implement a correct mechanism to simulate cli/sti.
Diffstat (limited to 'libdde_linux26/lib/src/net')
-rw-r--r--libdde_linux26/lib/src/net/core/dev.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/libdde_linux26/lib/src/net/core/dev.c b/libdde_linux26/lib/src/net/core/dev.c
index 64917332..128f4d73 100644
--- a/libdde_linux26/lib/src/net/core/dev.c
+++ b/libdde_linux26/lib/src/net/core/dev.c
@@ -2611,11 +2611,16 @@ out:
void __napi_schedule(struct napi_struct *n)
{
unsigned long flags;
+ extern ddekit_lock_t cli_lock;
- local_irq_save(flags);
+ if (cli_lock == NULL)
+ ddekit_lock_init_unlocked(&cli_lock);
+ ddekit_lock_lock(&cli_lock);
+// 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);
+// local_irq_restore(flags);
+ ddekit_lock_unlock(&cli_lock);
}
EXPORT_SYMBOL(__napi_schedule);