From 1e05fd6eef9a7ae5e4cd3ab362849501e640d62b Mon Sep 17 00:00:00 2001
From: "Alexandros C. Couloumbis" <alex@ozo.com>
Date: Wed, 28 Jul 2010 08:34:03 +0000
Subject: generic/patches-2.6.34: Make devtmpfs available on (embedded)
 configurations without SHMEM/TMPFS, using ramfs instead. (gone mainline in
 kernel 2.6.35-r3)

SVN-Revision: 22407
---
 .../patches-2.6.34/015-devtmpfs_ramfs.patch        | 76 ++++++++++++++++++++++
 1 file changed, 76 insertions(+)
 create mode 100644 target/linux/generic/patches-2.6.34/015-devtmpfs_ramfs.patch

(limited to 'target/linux/generic/patches-2.6.34/015-devtmpfs_ramfs.patch')

diff --git a/target/linux/generic/patches-2.6.34/015-devtmpfs_ramfs.patch b/target/linux/generic/patches-2.6.34/015-devtmpfs_ramfs.patch
new file mode 100644
index 0000000..8cea56d
--- /dev/null
+++ b/target/linux/generic/patches-2.6.34/015-devtmpfs_ramfs.patch
@@ -0,0 +1,76 @@
+From: Peter Korsgaard <jacmet@sunsite.dk>
+
+Make devtmpfs available on (embedded) configurations without SHMEM/TMPFS,
+using ramfs instead.
+
+Saves ~15KB.
+
+Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
+Acked-by: Kay Sievers <kay.sievers@vrfy.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+--- a/drivers/base/Kconfig
++++ b/drivers/base/Kconfig
+@@ -18,9 +18,9 @@  config UEVENT_HELPER_PATH
+ 
+ config DEVTMPFS
+ 	bool "Maintain a devtmpfs filesystem to mount at /dev"
+-	depends on HOTPLUG && SHMEM && TMPFS
++	depends on HOTPLUG
+ 	help
+-	  This creates a tmpfs filesystem instance early at bootup.
++	  This creates a tmpfs/ramfs filesystem instance early at bootup.
+ 	  In this filesystem, the kernel driver core maintains device
+ 	  nodes with their default names and permissions for all
+ 	  registered devices with an assigned major/minor number.
+@@ -33,6 +33,9 @@  config DEVTMPFS
+ 	  functional /dev without any further help. It also allows simple
+ 	  rescue systems, and reliably handles dynamic major/minor numbers.
+ 
++	  Notice: if CONFIG_TMPFS isn't enabled, the simpler ramfs
++	  file system will be used instead.
++
+ config DEVTMPFS_MOUNT
+ 	bool "Automount devtmpfs at /dev, after the kernel mounted the rootfs"
+ 	depends on DEVTMPFS
+--- a/drivers/base/devtmpfs.c
++++ b/drivers/base/devtmpfs.c
+@@ -20,6 +20,7 @@ 
+ #include <linux/namei.h>
+ #include <linux/fs.h>
+ #include <linux/shmem_fs.h>
++#include <linux/ramfs.h>
+ #include <linux/cred.h>
+ #include <linux/sched.h>
+ #include <linux/init_task.h>
+@@ -45,7 +46,11 @@  __setup("devtmpfs.mount=", mount_param);
+ static int dev_get_sb(struct file_system_type *fs_type, int flags,
+ 		      const char *dev_name, void *data, struct vfsmount *mnt)
+ {
++#ifdef CONFIG_TMPFS
+ 	return get_sb_single(fs_type, flags, data, shmem_fill_super, mnt);
++#else
++	return get_sb_single(fs_type, flags, data, ramfs_fill_super, mnt);
++#endif
+ }
+ 
+ static struct file_system_type dev_fs_type = {
+--- a/fs/ramfs/inode.c
++++ b/fs/ramfs/inode.c
+@@ -214,7 +214,7 @@  static int ramfs_parse_options(char *data, struct ramfs_mount_opts *opts)
+ 	return 0;
+ }
+ 
+-static int ramfs_fill_super(struct super_block * sb, void * data, int silent)
++int ramfs_fill_super(struct super_block *sb, void *data, int silent)
+ {
+ 	struct ramfs_fs_info *fsi;
+ 	struct inode *inode = NULL;
+--- a/include/linux/ramfs.h
++++ b/include/linux/ramfs.h
+@@ -20,4 +20,6 @@  extern const struct file_operations ramfs_file_operations;
+ extern const struct vm_operations_struct generic_file_vm_ops;
+ extern int __init init_rootfs(void);
+ 
++int ramfs_fill_super(struct super_block *sb, void *data, int silent);
++
+ #endif
-- 
cgit v1.1