From: Olaf Kirch <redacted>
Date: Tue, 19 Jun 2007 09:56:24 +0200
From: Olaf Kirch <redacted>
Make skb_seq_read unmap the last fragment
Having walked through the entire skbuff, skb_seq_read would leave the
last fragment mapped. As a consequence, the unwary caller would leak
kmaps, and proceed with preempt_count off by one. The only (kind of
non-intuitive) workaround is to use skb_seq_read_abort.
This patch makes sure skb_seq_read always unmaps frag_data after having
cycled through the skb's paged part.
Signed-off-by: olaf.kirch@oracle.com
Thanks for finding and fixing this bug.
Patch applied, thanks again Olaf.