From: Eric Anholt <eric@anholt.net>
To: linux-kernel@vger.kernel.org
Cc: keithp@keithp.com, Eric Anholt <eric@anholt.net>
Subject: [PATCH] Export shmem_file_setup and shmem_getpage for DRM-GEM
Date: Thu, 31 Jul 2008 23:58:38 -0700 [thread overview]
Message-ID: <1217573919-7496-2-git-send-email-eric@anholt.net> (raw)
In-Reply-To: <1217573919-7496-1-git-send-email-eric@anholt.net>
From: Keith Packard <keithp@keithp.com>
GEM needs to create shmem files and get pages related to a shmem file, and
using this pair of functions is the easiest way to do that.
Signed-off-by: Eric Anholt <eric@anholt.net>
---
include/linux/mm.h | 11 +++++++++++
mm/shmem.c | 17 ++++-------------
2 files changed, 15 insertions(+), 13 deletions(-)
diff --git a/include/linux/mm.h b/include/linux/mm.h
index 866a3db..6e54210 100644
--- a/include/linux/mm.h
+++ b/include/linux/mm.h
@@ -715,6 +715,17 @@ static inline int shmem_lock(struct file *file, int lock,
#endif
struct file *shmem_file_setup(char *name, loff_t size, unsigned long flags);
+/* Flag allocation requirements to shmem_getpage and shmem_swp_alloc */
+enum sgp_type {
+ SGP_READ, /* don't exceed i_size, don't allocate page */
+ SGP_CACHE, /* don't exceed i_size, may allocate page */
+ SGP_DIRTY, /* like SGP_CACHE, but set new page dirty */
+ SGP_WRITE, /* may exceed i_size, may allocate page */
+};
+
+int shmem_getpage(struct inode *inode, unsigned long idx,
+ struct page **pagep, enum sgp_type sgp, int *type);
+
int shmem_zero_setup(struct vm_area_struct *);
#ifndef CONFIG_MMU
diff --git a/mm/shmem.c b/mm/shmem.c
index c1e5a3b..7166ff3 100644
--- a/mm/shmem.c
+++ b/mm/shmem.c
@@ -77,14 +77,6 @@
/* Pretend that each entry is of this size in directory's i_size */
#define BOGO_DIRENT_SIZE 20
-/* Flag allocation requirements to shmem_getpage and shmem_swp_alloc */
-enum sgp_type {
- SGP_READ, /* don't exceed i_size, don't allocate page */
- SGP_CACHE, /* don't exceed i_size, may allocate page */
- SGP_DIRTY, /* like SGP_CACHE, but set new page dirty */
- SGP_WRITE, /* may exceed i_size, may allocate page */
-};
-
#ifdef CONFIG_TMPFS
static unsigned long shmem_default_max_blocks(void)
{
@@ -97,9 +89,6 @@ static unsigned long shmem_default_max_inodes(void)
}
#endif
-static int shmem_getpage(struct inode *inode, unsigned long idx,
- struct page **pagep, enum sgp_type sgp, int *type);
-
static inline struct page *shmem_dir_alloc(gfp_t gfp_mask)
{
/*
@@ -1177,8 +1166,8 @@ static inline struct mempolicy *shmem_get_sbmpol(struct shmem_sb_info *sbinfo)
* vm. If we swap it in we mark it dirty since we also free the swap
* entry since a page cannot live in both the swap and page cache
*/
-static int shmem_getpage(struct inode *inode, unsigned long idx,
- struct page **pagep, enum sgp_type sgp, int *type)
+int shmem_getpage(struct inode *inode, unsigned long idx,
+ struct page **pagep, enum sgp_type sgp, int *type)
{
struct address_space *mapping = inode->i_mapping;
struct shmem_inode_info *info = SHMEM_I(inode);
@@ -1431,6 +1420,7 @@ failed:
}
return error;
}
+EXPORT_SYMBOL(shmem_getpage);
static int shmem_fault(struct vm_area_struct *vma, struct vm_fault *vmf)
{
@@ -2582,6 +2572,7 @@ put_memory:
shmem_unacct_size(flags, size);
return ERR_PTR(error);
}
+EXPORT_SYMBOL(shmem_file_setup);
/**
* shmem_zero_setup - setup a shared anonymous mapping
--
1.5.6.3
next prev parent reply other threads:[~2008-08-01 7:06 UTC|newest]
Thread overview: 60+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-08-01 6:58 [PATCH] PCI: Add pci_read_base() API Eric Anholt
2008-08-01 6:58 ` Eric Anholt [this message]
2008-08-01 6:58 ` [PATCH] drm: Add GEM ("graphics execution manager") to i915 driver Eric Anholt
2008-08-01 15:44 ` Randy Dunlap
2008-08-01 18:11 ` Keith Packard
2008-08-06 1:11 ` Eric Anholt
2008-08-01 7:10 ` [PATCH] Export shmem_file_setup and shmem_getpage for DRM-GEM Eric Anholt
2008-08-01 10:57 ` Hugh Dickins
2008-08-01 18:06 ` Keith Packard
2008-08-01 20:50 ` Christoph Hellwig
2008-08-01 23:01 ` Keith Packard
2008-08-03 12:49 ` John Stoffel
2008-08-03 17:52 ` Keith Packard
2008-08-03 23:35 ` files/process scaling problem? (was: [PATCH] Export shmem_file_setup and shmem_getpage for DRM-GEM) Ingo Oeser
2008-08-04 0:19 ` Keith Packard
2008-08-04 8:19 ` Alan Cox
2008-08-04 13:51 ` Arjan van de Ven
2008-08-04 14:11 ` Alan Cox
2008-08-04 16:38 ` Arjan van de Ven
2008-08-04 16:58 ` Keith Packard
2008-08-04 21:46 ` Ingo Oeser
2008-08-04 22:20 ` Dave Airlie
2008-08-05 0:34 ` Keith Packard
2008-08-11 1:23 ` [PATCH] Export shmem_file_setup and shmem_getpage for DRM-GEM Christoph Hellwig
2008-08-11 3:03 ` [PATCH] Export shmem_file_setup " Keith Packard
2008-08-04 1:54 ` [PATCH] Export shmem_file_setup and shmem_getpage " Keith Packard
2008-08-04 9:02 ` Nick Piggin
2008-08-04 10:26 ` Keith Packard
2008-08-04 10:43 ` Nick Piggin
2008-08-04 11:45 ` Keith Packard
2008-08-04 17:09 ` Hugh Dickins
2008-08-04 17:25 ` Keith Packard
2008-08-04 18:39 ` Hugh Dickins
2008-08-04 19:20 ` Keith Packard
2008-08-04 19:55 ` Hugh Dickins
2008-08-04 21:37 ` Keith Packard
2008-08-05 2:25 ` John Stoffel
2008-08-05 4:28 ` Keith Packard
2008-08-06 16:20 ` Stephane Marchesin
2008-08-06 17:24 ` Arjan van de Ven
2008-08-06 17:32 ` Stephane Marchesin
2008-08-06 17:56 ` Keith Packard
2008-08-06 18:09 ` Stephane Marchesin
2008-08-06 21:22 ` Keith Packard
2008-08-07 2:16 ` Stephane Marchesin
2008-08-07 2:57 ` Keith Packard
2008-08-11 1:34 ` Christoph Hellwig
2008-08-05 4:28 ` Nick Piggin
2008-08-11 1:30 ` Christoph Hellwig
2008-08-04 21:58 ` Keith Packard
2008-08-04 22:22 ` Dave Airlie
2008-08-05 4:43 ` Nick Piggin
2008-08-05 5:19 ` Keith Packard
2008-08-07 0:45 ` Jesse Barnes
2008-08-19 1:17 ` Dave Airlie
2008-08-19 10:00 ` Nick Piggin
2008-08-19 16:46 ` Keith Packard
2008-08-19 18:50 ` Jesse Barnes
2008-08-21 13:42 ` Jerome Glisse
2008-08-21 16:15 ` Jesse Barnes
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1217573919-7496-2-git-send-email-eric@anholt.net \
--to=eric@anholt.net \
--cc=keithp@keithp.com \
--cc=linux-kernel@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®