Skip to content

Commit

Permalink
staging: make new character devices nonseekable
Browse files Browse the repository at this point in the history
As a preparation for changing the default behaviour of llseek to no_llseek,
every file_operations structure should have a .llseek operation.

There are three new instances in staging now, which can all be changed
into no_llseek explicitly since the devices do not need to seek.

Add nonseekable_open where appropriate, to prevent pread/pwrite as well.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
  • Loading branch information
Arnd Bergmann authored and Greg Kroah-Hartman committed Oct 5, 2010
1 parent cff55f5 commit d16044c
Show file tree
Hide file tree
Showing 3 changed files with 12 additions and 4 deletions.
5 changes: 5 additions & 0 deletions drivers/staging/bcm/Bcmchar.c
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
#include <linux/fs.h>

#include "headers.h"
/***************************************************************
* Function - bcm_char_open()
Expand Down Expand Up @@ -35,6 +37,8 @@ static int bcm_char_open(struct inode *inode, struct file * filp)

/*Start Queuing the control response Packets*/
atomic_inc(&Adapter->ApplicationRunning);

nonseekable_open(inode, filp);
return 0;
}
static int bcm_char_release(struct inode *inode, struct file *filp)
Expand Down Expand Up @@ -2360,6 +2364,7 @@ static struct file_operations bcm_fops = {
.release = bcm_char_release,
.read = bcm_char_read,
.unlocked_ioctl = bcm_char_ioctl,
.llseek = no_llseek,
};


Expand Down
1 change: 1 addition & 0 deletions drivers/staging/bcm/InterfaceInit.c
Original file line number Diff line number Diff line change
Expand Up @@ -163,6 +163,7 @@ static struct file_operations usbbcm_fops = {
.read = usbbcm_read,
.write = usbbcm_write,
.owner = THIS_MODULE,
.llseek = no_llseek,
};

static struct usb_class_driver usbbcm_class = {
Expand Down
10 changes: 6 additions & 4 deletions drivers/staging/ft1000/ft1000-usb/ft1000_chdev.c
Original file line number Diff line number Diff line change
Expand Up @@ -81,10 +81,11 @@ int numofmsgbuf = 0;
//
static struct file_operations ft1000fops =
{
unlocked_ioctl: ft1000_ChIoctl,
poll: ft1000_ChPoll,
open: ft1000_ChOpen,
release: ft1000_ChRelease
.unlocked_ioctl = ft1000_ChIoctl,
.poll = ft1000_ChPoll,
.open = ft1000_ChOpen,
.release = ft1000_ChRelease,
.llseek = no_llseek,
};


Expand Down Expand Up @@ -470,6 +471,7 @@ static int ft1000_ChOpen (struct inode *Inode, struct file *File)

File->private_data = pdevobj[num]->net;

nonseekable_open(Inode, File);
return 0;
}

Expand Down

0 comments on commit d16044c

Please sign in to comment.