Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge branch 'rcu/urgent' of git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu

Pull fix for hlist_entry_safe() regression from Paul McKenney:
"This contains a single commit that fixes a regression in
hlist_entry_safe(). This macro references its argument twice, which
can cause NULL-pointer errors. This commit applies a gcc statement
expression, creating a temporary variable to avoid the double
reference. This has been posted to LKML at

https://lkml.org/lkml/2013/3/9/75.

Kudos to CAI Qian, whose testing uncovered this, to Eric Dumazet, who
spotted root cause, and to Li Zefan, who tested this commit."

* 'rcu/urgent' of git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu:
list: Fix double fetch of pointer in hlist_entry_safe()

+3 -1
+3 -1
include/linux/list.h
··· 667 667 pos = n) 668 668 669 669 #define hlist_entry_safe(ptr, type, member) \ 670 - (ptr) ? hlist_entry(ptr, type, member) : NULL 670 + ({ typeof(ptr) ____ptr = (ptr); \ 671 + ____ptr ? hlist_entry(____ptr, type, member) : NULL; \ 672 + }) 671 673 672 674 /** 673 675 * hlist_for_each_entry - iterate over list of given type