On Tue, 18 Oct 2011, Ian Campbell wrote: > From 806b74572ad63e2ed3ca69bb5640a55dc4475e73 Mon Sep 17 00:00:00 2001 > From: Ian Campbell <ian.campbell@xxxxxxxxxx> > Date: Mon, 3 Oct 2011 16:46:54 +0100 > Subject: [PATCH] mm: add a "struct page_frag" type containing a page, offset and length > > A few network drivers currently use skb_frag_struct for this purpose but I have > patches which add additional fields and semantics there which these other uses > do not want. > > A structure for reference sub-page regions seems like a generally useful thing > so do so instead of adding a network subsystem specific structure. > > Signed-off-by: Ian Campbell <ian.campbell@xxxxxxxxxx> > Acked-by: Jens Axboe <jaxboe@xxxxxxxxxxxx> > Acked-by: David Rientjes <rientjes@xxxxxxxxxx> > Cc: Christoph Hellwig <hch@xxxxxxxxxxxxx> > Cc: David Miller <davem@xxxxxxxxxxxxx> > Cc: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> > Cc: linux-mm@xxxxxxxxx > Cc: linux-kernel@xxxxxxxxxxxxxxx > [since v1: s/struct subpage/struct page_frag/ on advice from Christoph] > [since v2: s/page_offset/offset/ on advice from Andrew] Looks good, is this going to be going through net-next? > --- > include/linux/mm_types.h | 11 +++++++++++ > 1 files changed, 11 insertions(+), 0 deletions(-) > > diff --git a/include/linux/mm_types.h b/include/linux/mm_types.h > index 774b895..29971a5 100644 > --- a/include/linux/mm_types.h > +++ b/include/linux/mm_types.h > @@ -135,6 +135,17 @@ struct page { > #endif > ; > > +struct page_frag { > + struct page *page; > +#if (BITS_PER_LONG > 32) || (PAGE_SIZE >= 65536) > + __u32 offset; > + __u32 size; > +#else > + __u16 offset; > + __u16 size; > +#endif > +}; > + > typedef unsigned long __nocast vm_flags_t; > > /* -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/ Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>