Message ID | 20150828070520.GB32596@gmail.com |
---|---|
State | Accepted, archived |
Delegated to: | David Miller |
Headers | show |
From: Ken-ichirou MATSUZAWA <chamaken@gmail.com> Date: Fri, 28 Aug 2015 16:05:20 +0900 > __netlink_lookup_frame() was always called with the same "pos" > value in netlink_forward_ring(). It will look at the same ring entry > header over and over again, every time through this loop. Then cycle > through the whole ring, advancing ring->head, not "pos" until it > equals the "ring->head != head" loop test fails. > > Signed-off-by: Ken-ichirou MATSUZAWA <chamas@h4.dion.ne.jp> Applied. -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/net/netlink/af_netlink.c b/net/netlink/af_netlink.c index a774985..39fa91f 100644 --- a/net/netlink/af_netlink.c +++ b/net/netlink/af_netlink.c @@ -610,11 +610,11 @@ static void netlink_increment_head(struct netlink_ring *ring) static void netlink_forward_ring(struct netlink_ring *ring) { - unsigned int head = ring->head, pos = head; + unsigned int head = ring->head; const struct nl_mmap_hdr *hdr; do { - hdr = __netlink_lookup_frame(ring, pos); + hdr = __netlink_lookup_frame(ring, ring->head); if (hdr->nm_status == NL_MMAP_STATUS_UNUSED) break; if (hdr->nm_status != NL_MMAP_STATUS_SKIP)
__netlink_lookup_frame() was always called with the same "pos" value in netlink_forward_ring(). It will look at the same ring entry header over and over again, every time through this loop. Then cycle through the whole ring, advancing ring->head, not "pos" until it equals the "ring->head != head" loop test fails. Signed-off-by: Ken-ichirou MATSUZAWA <chamas@h4.dion.ne.jp> --- net/netlink/af_netlink.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)