On 01/05/2009 09:32 PM, Dave wrote:--- a/drivers/net/wireless/orinoco/orinoco.c
+++ b/drivers/net/wireless/orinoco/orinoco.c
@@ -1616,9 +1616,15 @@ static void orinoco_rx_isr_tasklet(unsigned long
data)
/* extract desc and skb from queue */
list_for_each_entry_safe(rx_data, temp, &priv->rx_list, list) {
+ unsigned long flags;
+
desc = rx_data->desc;
skb = rx_data->skb;
+
+ local_irq_save(flags);
list_del(&rx_data->list);
+ local_irq_restore(flags);
+
Hi,
another processor still can see inconsistent state, spinlock should be taken.
Or, am I missing something?