Re: [PATCH 09/10] Change table chaining layout

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, Oct 23 2007, Boaz Harrosh wrote:
> On Mon, Oct 22 2007 at 20:11 +0200, Jens Axboe <[email protected]> wrote:
> > Change the page member of the scatterlist structure to be an unsigned
> > long, and encode more stuff in the lower bits:
> > 
> > - Bits 0 and 1 zero: this is a normal sg entry. Next sg entry is located
> >   at sg + 1.
> > - Bit 0 set: this is a chain entry, the next real entry is at ->page_link
> >   with the two low bits masked off.
> > - Bit 1 set: this is the final entry in the sg entry. sg_next() will return
> >   NULL when passed such an entry.
> > 
> > It's thus important that sg table users use the proper accessors to get
> > and set the page member.
> > 
> > Signed-off-by: Jens Axboe <[email protected]>
> > ---
> <snip>
> >  
> >  /**
> >   * sg_set_page - Set sg entry to point at given page
> > @@ -20,11 +37,20 @@
> >   **/
> >  static inline void sg_set_page(struct scatterlist *sg, struct page *page)
> >  {
> > -	sg->page = page;
> > +	unsigned long page_link = sg->page_link & 0x3;
> > +
> You might want to put a BUG_ON(page & 0x3); Make sure
> you're not loosing information. (The m68k problem)

That's a really good idea, thanks Boaz! I'll add that.

-- 
Jens Axboe

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Stuff]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]     [Linux Resources]
  Powered by Linux