]> rtime.felk.cvut.cz Git - socketcan-devel.git/commitdiff
Fix rcu handling by removing nested rcu locks.
authorhartkopp <hartkopp@030b6a49-0b11-0410-94ab-b0dab22257f2>
Sat, 23 Jan 2010 11:20:23 +0000 (11:20 +0000)
committerhartkopp <hartkopp@030b6a49-0b11-0410-94ab-b0dab22257f2>
Sat, 23 Jan 2010 11:20:23 +0000 (11:20 +0000)
This problem was also solved in upstream commit
http://git.kernel.org/?p=linux/kernel/git/davem/net-next-2.6.git;a=commitdiff;h=20dd3850bcf860561496827b711fa10fecf6e787

git-svn-id: svn://svn.berlios.de//socketcan/trunk@1116 030b6a49-0b11-0410-94ab-b0dab22257f2

kernel/2.6/net/can/proc.c

index c0910d54e83be1d490091f8046b11b4546e51bec..752f496676c79e72f40e5d5a6d57955fb18ea561 100644 (file)
@@ -210,7 +210,6 @@ static void can_print_rcvlist(struct seq_file *m, struct hlist_head *rx_list,
        struct receiver *r;
        struct hlist_node *n;
 
-       rcu_read_lock();
        hlist_for_each_entry_rcu(r, n, rx_list, list) {
                char *fmt = (r->can_id & CAN_EFF_FLAG)?
                        "   %-5s  %08X  %08x  %08x  %08x  %8ld  %s\n" :
@@ -220,7 +219,6 @@ static void can_print_rcvlist(struct seq_file *m, struct hlist_head *rx_list,
                                (unsigned long)r->func, (unsigned long)r->data,
                                r->matches, r->ident);
        }
-       rcu_read_unlock();
 }
 
 static void can_print_recv_banner(struct seq_file *m)
@@ -444,7 +442,6 @@ static int can_print_rcvlist(char *page, int len, struct hlist_head *rx_list,
        struct receiver *r;
        struct hlist_node *n;
 
-       rcu_read_lock();
        hlist_for_each_entry_rcu(r, n, rx_list, list) {
                char *fmt = (r->can_id & CAN_EFF_FLAG)?
                        "   %-5s  %08X  %08x  %08x  %08x  %8ld  %s\n" :
@@ -465,7 +462,6 @@ static int can_print_rcvlist(char *page, int len, struct hlist_head *rx_list,
                        break;
                }
        }
-       rcu_read_unlock();
 
        return len;
 }