]> bbs.cooldavid.org Git - net-next-2.6.git/blobdiff - net/core/net-sysfs.c
net: zero kobject in rx_queue_release
[net-next-2.6.git] / net / core / net-sysfs.c
index 3ba526b56fe39834d6e001bf4b28602d1fb85ac4..7abeb7ceaa4c8d73bfa326090323cee654491fab 100644 (file)
@@ -711,13 +711,18 @@ static void rx_queue_release(struct kobject *kobj)
 
 
        map = rcu_dereference_raw(queue->rps_map);
-       if (map)
+       if (map) {
+               RCU_INIT_POINTER(queue->rps_map, NULL);
                call_rcu(&map->rcu, rps_map_release);
+       }
 
        flow_table = rcu_dereference_raw(queue->rps_flow_table);
-       if (flow_table)
+       if (flow_table) {
+               RCU_INIT_POINTER(queue->rps_flow_table, NULL);
                call_rcu(&flow_table->rcu, rps_dev_flow_table_release);
+       }
 
+       memset(kobj, 0, sizeof(*kobj));
        dev_put(queue->dev);
 }