lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:	Tue, 23 Oct 2007 19:08:38 +0200
From:	Boaz Harrosh <bharrosh@...asas.com>
To:	Jens Axboe <jens.axboe@...cle.com>
CC:	torvalds@...ux-foundation.org, linux-kernel@...r.kernel.org,
	mingo@...e.hu
Subject: Re: [PATCH 09/10] Change table chaining layout

On Mon, Oct 22 2007 at 20:11 +0200, Jens Axboe <jens.axboe@...cle.com> 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 <jens.axboe@...cle.com>
> ---
<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)

> +	sg->page_link = page_link | (unsigned long) page;
>  }
>  
> -#define sg_page(sg)	((sg)->page)
> +#define sg_page(sg)	((struct page *) ((sg)->page_link & ~0x3))
>  
<snip>

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

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ