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:	Wed, 24 Sep 2008 20:29:39 +0100 (BST)
From:	Hugh Dickins <hugh@...itas.com>
To:	Nick Piggin <npiggin@...e.de>
cc:	David Howells <dhowells@...hat.com>,
	Dave Hansen <dave@...ux.vnet.ibm.com>,
	Matt Mackall <mpm@...enic.com>,
	Jeremy Fitzhardinge <jeremy@...p.org>,
	Ingo Molnar <mingo@...e.hu>,
	Andrew Morton <akpm@...ux-foundation.org>,
	a.p.zijlstra@...llo.nl, linux-kernel@...r.kernel.org,
	Dave Hansen <haveblue@...ibm.com>
Subject: Re: [patch] mm: tiny-shmem fix lor, mmap_sem vs i_mutex

On Tue, 23 Sep 2008, Nick Piggin wrote:
> 
> RFC Quick patch to fix nommu anonymous shared memory without breaking
> locking...

Looks good to me, thanks Nick.
And I see David's Ack that it works, so
Acked-by: Hugh Dickins <hugh@...itas.com>

Please push to Andrew and/or Linus now git is broken for !MMU.

Hugh

> ---
> 
> Index: linux-2.6/include/linux/ramfs.h
> ===================================================================
> --- linux-2.6.orig/include/linux/ramfs.h
> +++ linux-2.6/include/linux/ramfs.h
> @@ -6,6 +6,7 @@ extern int ramfs_get_sb(struct file_syst
>  	 int flags, const char *dev_name, void *data, struct vfsmount *mnt);
>  
>  #ifndef CONFIG_MMU
> +extern int ramfs_nommu_expand_for_mapping(struct inode *inode, size_t newsize);
>  extern unsigned long ramfs_nommu_get_unmapped_area(struct file *file,
>  						   unsigned long addr,
>  						   unsigned long len,
> Index: linux-2.6/mm/tiny-shmem.c
> ===================================================================
> --- linux-2.6.orig/mm/tiny-shmem.c
> +++ linux-2.6/mm/tiny-shmem.c
> @@ -80,6 +80,12 @@ struct file *shmem_file_setup(char *name
>          inode->i_nlink = 0;     /* It is unlinked */
>          init_file(file, shm_mnt, dentry, FMODE_WRITE | FMODE_READ,
>                          &ramfs_file_operations);
> +
> +#ifndef CONFIG_MMU
> +	error = ramfs_nommu_expand_for_mapping(inode, size);
> +	if (error)
> +		goto close_file;
> +#endif
>  	return file;
>  
>  close_file:
> Index: linux-2.6/fs/ramfs/file-nommu.c
> ===================================================================
> --- linux-2.6.orig/fs/ramfs/file-nommu.c
> +++ linux-2.6/fs/ramfs/file-nommu.c
> @@ -58,7 +58,7 @@ const struct inode_operations ramfs_file
>   * size 0 on the assumption that it's going to be used for an mmap of shared
>   * memory
>   */
> -static int ramfs_nommu_expand_for_mapping(struct inode *inode, size_t newsize)
> +int ramfs_nommu_expand_for_mapping(struct inode *inode, size_t newsize)
>  {
>  	struct pagevec lru_pvec;
>  	unsigned long npages, xpages, loop, limit;
--
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