lkml.org 
[lkml]   [2012]   [Dec]   [11]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
From
Subject[PATCH 2/2] uio: do not expose inode to uio open/release hooks
Date
The inode parameter is unused by in kernel users of UIO. Also the inode
parameter makes it hard to resolve the existing open(), mmap() and close()
difficulty.

Signed-off-by: Benedikt Spranger <b.spranger@linutronix.de>
---
Documentation/DocBook/uio-howto.tmpl | 4 ++--
drivers/uio/uio.c | 4 ++--
include/linux/uio_driver.h | 4 ++--
3 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/Documentation/DocBook/uio-howto.tmpl b/Documentation/DocBook/uio-howto.tmpl
index 59a886d..589992e 100644
--- a/Documentation/DocBook/uio-howto.tmpl
+++ b/Documentation/DocBook/uio-howto.tmpl
@@ -490,14 +490,14 @@ instead of the built-in one.
</para></listitem>

<listitem><para>
-<varname>int (*open)(struct uio_info *info, struct inode *inode)
+<varname>int (*open)(struct uio_info *info)
</varname>: Optional. You might want to have your own
<function>open()</function>, e.g. to enable interrupts only when your
device is actually used.
</para></listitem>

<listitem><para>
-<varname>int (*release)(struct uio_info *info, struct inode *inode)
+<varname>int (*release)(struct uio_info *info)
</varname>: Optional. If you define your own
<function>release()</function>, you will probably also want a custom
<function>release()</function> function.
diff --git a/drivers/uio/uio.c b/drivers/uio/uio.c
index 5110f36..bbffc38 100644
--- a/drivers/uio/uio.c
+++ b/drivers/uio/uio.c
@@ -465,7 +465,7 @@ static int uio_open(struct inode *inode, struct file *filep)
filep->private_data = listener;

if (idev->info->open) {
- ret = idev->info->open(idev->info, inode);
+ ret = idev->info->open(idev->info);
if (ret)
goto err_infoopen;
}
@@ -496,7 +496,7 @@ static int uio_release(struct inode *inode, struct file *filep)
struct uio_device *idev = listener->dev;

if (idev->info->release)
- ret = idev->info->release(idev->info, inode);
+ ret = idev->info->release(idev->info);

module_put(idev->owner);
kfree(listener);
diff --git a/include/linux/uio_driver.h b/include/linux/uio_driver.h
index 1ad4724..ad59ded 100644
--- a/include/linux/uio_driver.h
+++ b/include/linux/uio_driver.h
@@ -92,8 +92,8 @@ struct uio_info {
void *priv;
irqreturn_t (*handler)(int irq, struct uio_info *dev_info);
int (*mmap)(struct uio_info *info, struct vm_area_struct *vma);
- int (*open)(struct uio_info *info, struct inode *inode);
- int (*release)(struct uio_info *info, struct inode *inode);
+ int (*open)(struct uio_info *info);
+ int (*release)(struct uio_info *info);
int (*irqcontrol)(struct uio_info *info, s32 irq_on);
};

--
1.7.10.4


\
 
 \ /
  Last update: 2012-12-12 00:41    [W:0.153 / U:1.560 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site