mirror of
https://github.com/torvalds/linux.git
synced 2024-11-10 22:21:40 +00:00
Merge branch 'akpm' (Andrew's patch-bomb)
Merge batch of fixes from Andrew Morton: "The simple_open() cleanup was held back while I wanted for laggards to merge things. I still need to send a few checkpoint/restore patches. I've been wobbly about merging them because I'm wobbly about the overall prospects for success of the project. But after speaking with Pavel at the LSF conference, it sounds like they're further toward completion than I feared - apparently davem is at the "has stopped complaining" stage regarding the net changes. So I need to go back and re-review those patchs and their (lengthy) discussion." * emailed from Andrew Morton <akpm@linux-foundation.org>: (16 patches) memcg swap: use mem_cgroup_uncharge_swap fix backlight: add driver for DA9052/53 PMIC v1 C6X: use set_current_blocked() and block_sigmask() MAINTAINERS: add entry for sparse checker MAINTAINERS: fix REMOTEPROC F: typo alpha: use set_current_blocked() and block_sigmask() simple_open: automatically convert to simple_open() scripts/coccinelle/api/simple_open.cocci: semantic patch for simple_open() libfs: add simple_open() hugetlbfs: remove unregister_filesystem() when initializing module drivers/rtc/rtc-88pm860x.c: fix rtc irq enable callback fs/xattr.c:setxattr(): improve handling of allocation failures fs/xattr.c:listxattr(): fall back to vmalloc() if kmalloc() failed fs/xattr.c: suppress page allocation failure warnings from sys_listxattr() sysrq: use SEND_SIG_FORCED instead of force_sig() proc: fix mount -t proc -o AAA
This commit is contained in:
commit
5d32c88f0b
11
MAINTAINERS
11
MAINTAINERS
@ -5637,7 +5637,7 @@ M: Ohad Ben-Cohen <ohad@wizery.com>
|
||||
S: Maintained
|
||||
F: drivers/remoteproc/
|
||||
F: Documentation/remoteproc.txt
|
||||
F: include/linux/remoteproc.txt
|
||||
F: include/linux/remoteproc.h
|
||||
|
||||
RFKILL
|
||||
M: Johannes Berg <johannes@sipsolutions.net>
|
||||
@ -6287,6 +6287,15 @@ F: drivers/tty/serial/sunsu.c
|
||||
F: drivers/tty/serial/sunzilog.c
|
||||
F: drivers/tty/serial/sunzilog.h
|
||||
|
||||
SPARSE CHECKER
|
||||
M: "Christopher Li" <sparse@chrisli.org>
|
||||
L: linux-sparse@vger.kernel.org
|
||||
W: https://sparse.wiki.kernel.org/
|
||||
T: git git://git.kernel.org/pub/scm/devel/sparse/sparse.git
|
||||
T: git git://git.kernel.org/pub/scm/devel/sparse/chrisl/sparse.git
|
||||
S: Maintained
|
||||
F: include/linux/compiler.h
|
||||
|
||||
SPEAR PLATFORM SUPPORT
|
||||
M: Viresh Kumar <viresh.kumar@st.com>
|
||||
L: spear-devel@list.st.com
|
||||
|
@ -120,12 +120,13 @@ SYSCALL_DEFINE5(rt_sigaction, int, sig, const struct sigaction __user *, act,
|
||||
*/
|
||||
SYSCALL_DEFINE1(sigsuspend, old_sigset_t, mask)
|
||||
{
|
||||
mask &= _BLOCKABLE;
|
||||
spin_lock_irq(¤t->sighand->siglock);
|
||||
sigset_t blocked;
|
||||
|
||||
current->saved_sigmask = current->blocked;
|
||||
siginitset(¤t->blocked, mask);
|
||||
recalc_sigpending();
|
||||
spin_unlock_irq(¤t->sighand->siglock);
|
||||
|
||||
mask &= _BLOCKABLE;
|
||||
siginitset(&blocked, mask);
|
||||
set_current_blocked(&blocked);
|
||||
|
||||
current->state = TASK_INTERRUPTIBLE;
|
||||
schedule();
|
||||
@ -238,10 +239,7 @@ do_sigreturn(struct sigcontext __user *sc, struct pt_regs *regs,
|
||||
goto give_sigsegv;
|
||||
|
||||
sigdelsetmask(&set, ~_BLOCKABLE);
|
||||
spin_lock_irq(¤t->sighand->siglock);
|
||||
current->blocked = set;
|
||||
recalc_sigpending();
|
||||
spin_unlock_irq(¤t->sighand->siglock);
|
||||
set_current_blocked(&set);
|
||||
|
||||
if (restore_sigcontext(sc, regs, sw))
|
||||
goto give_sigsegv;
|
||||
@ -276,10 +274,7 @@ do_rt_sigreturn(struct rt_sigframe __user *frame, struct pt_regs *regs,
|
||||
goto give_sigsegv;
|
||||
|
||||
sigdelsetmask(&set, ~_BLOCKABLE);
|
||||
spin_lock_irq(¤t->sighand->siglock);
|
||||
current->blocked = set;
|
||||
recalc_sigpending();
|
||||
spin_unlock_irq(¤t->sighand->siglock);
|
||||
set_current_blocked(&set);
|
||||
|
||||
if (restore_sigcontext(&frame->uc.uc_mcontext, regs, sw))
|
||||
goto give_sigsegv;
|
||||
@ -501,14 +496,8 @@ handle_signal(int sig, struct k_sigaction *ka, siginfo_t *info,
|
||||
else
|
||||
ret = setup_frame(sig, ka, oldset, regs, sw);
|
||||
|
||||
if (ret == 0) {
|
||||
spin_lock_irq(¤t->sighand->siglock);
|
||||
sigorsets(¤t->blocked,¤t->blocked,&ka->sa.sa_mask);
|
||||
if (!(ka->sa.sa_flags & SA_NODEFER))
|
||||
sigaddset(¤t->blocked,sig);
|
||||
recalc_sigpending();
|
||||
spin_unlock_irq(¤t->sighand->siglock);
|
||||
}
|
||||
if (ret == 0)
|
||||
block_sigmask(ka, sig);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
@ -203,15 +203,9 @@ static ssize_t debug_read(struct file *file, char __user *buf,
|
||||
return simple_read_from_buffer(buf, count, ppos, debug_buffer, bsize);
|
||||
}
|
||||
|
||||
static int debug_open(struct inode *inode, struct file *file)
|
||||
{
|
||||
file->private_data = inode->i_private;
|
||||
return 0;
|
||||
}
|
||||
|
||||
static const struct file_operations debug_ops = {
|
||||
.read = debug_read,
|
||||
.open = debug_open,
|
||||
.open = simple_open,
|
||||
.llseek = default_llseek,
|
||||
};
|
||||
|
||||
|
@ -85,10 +85,7 @@ asmlinkage int do_rt_sigreturn(struct pt_regs *regs)
|
||||
goto badframe;
|
||||
|
||||
sigdelsetmask(&set, ~_BLOCKABLE);
|
||||
spin_lock_irq(¤t->sighand->siglock);
|
||||
current->blocked = set;
|
||||
recalc_sigpending();
|
||||
spin_unlock_irq(¤t->sighand->siglock);
|
||||
set_current_blocked(&set);
|
||||
|
||||
if (restore_sigcontext(regs, &frame->uc.uc_mcontext))
|
||||
goto badframe;
|
||||
@ -279,15 +276,8 @@ static int handle_signal(int sig,
|
||||
|
||||
/* Set up the stack frame */
|
||||
ret = setup_rt_frame(sig, ka, info, oldset, regs);
|
||||
if (ret == 0) {
|
||||
spin_lock_irq(¤t->sighand->siglock);
|
||||
sigorsets(¤t->blocked, ¤t->blocked,
|
||||
&ka->sa.sa_mask);
|
||||
if (!(ka->sa.sa_flags & SA_NODEFER))
|
||||
sigaddset(¤t->blocked, sig);
|
||||
recalc_sigpending();
|
||||
spin_unlock_irq(¤t->sighand->siglock);
|
||||
}
|
||||
if (ret == 0)
|
||||
block_sigmask(ka, sig);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
@ -68,16 +68,9 @@ static ssize_t setup_data_read(struct file *file, char __user *user_buf,
|
||||
return count;
|
||||
}
|
||||
|
||||
static int setup_data_open(struct inode *inode, struct file *file)
|
||||
{
|
||||
file->private_data = inode->i_private;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static const struct file_operations fops_setup_data = {
|
||||
.read = setup_data_read,
|
||||
.open = setup_data_open,
|
||||
.open = simple_open,
|
||||
.llseek = default_llseek,
|
||||
};
|
||||
|
||||
|
@ -27,12 +27,6 @@ MODULE_PARM_DESC(write_support, "Dangerous, reboot and removal of battery may "
|
||||
|
||||
static struct dentry *acpi_ec_debugfs_dir;
|
||||
|
||||
static int acpi_ec_open_io(struct inode *i, struct file *f)
|
||||
{
|
||||
f->private_data = i->i_private;
|
||||
return 0;
|
||||
}
|
||||
|
||||
static ssize_t acpi_ec_read_io(struct file *f, char __user *buf,
|
||||
size_t count, loff_t *off)
|
||||
{
|
||||
@ -95,7 +89,7 @@ static ssize_t acpi_ec_write_io(struct file *f, const char __user *buf,
|
||||
|
||||
static const struct file_operations acpi_ec_io_ops = {
|
||||
.owner = THIS_MODULE,
|
||||
.open = acpi_ec_open_io,
|
||||
.open = simple_open,
|
||||
.read = acpi_ec_read_io,
|
||||
.write = acpi_ec_write_io,
|
||||
.llseek = default_llseek,
|
||||
|
@ -27,12 +27,6 @@ static size_t regmap_calc_reg_len(int max_val, char *buf, size_t buf_size)
|
||||
return strlen(buf);
|
||||
}
|
||||
|
||||
static int regmap_open_file(struct inode *inode, struct file *file)
|
||||
{
|
||||
file->private_data = inode->i_private;
|
||||
return 0;
|
||||
}
|
||||
|
||||
static ssize_t regmap_name_read_file(struct file *file,
|
||||
char __user *user_buf, size_t count,
|
||||
loff_t *ppos)
|
||||
@ -57,7 +51,7 @@ static ssize_t regmap_name_read_file(struct file *file,
|
||||
}
|
||||
|
||||
static const struct file_operations regmap_name_fops = {
|
||||
.open = regmap_open_file,
|
||||
.open = simple_open,
|
||||
.read = regmap_name_read_file,
|
||||
.llseek = default_llseek,
|
||||
};
|
||||
@ -174,7 +168,7 @@ static ssize_t regmap_map_write_file(struct file *file,
|
||||
#endif
|
||||
|
||||
static const struct file_operations regmap_map_fops = {
|
||||
.open = regmap_open_file,
|
||||
.open = simple_open,
|
||||
.read = regmap_map_read_file,
|
||||
.write = regmap_map_write_file,
|
||||
.llseek = default_llseek,
|
||||
@ -243,7 +237,7 @@ out:
|
||||
}
|
||||
|
||||
static const struct file_operations regmap_access_fops = {
|
||||
.open = regmap_open_file,
|
||||
.open = simple_open,
|
||||
.read = regmap_access_read_file,
|
||||
.llseek = default_llseek,
|
||||
};
|
||||
|
@ -45,12 +45,6 @@ struct btmrvl_debugfs_data {
|
||||
struct dentry *txdnldready;
|
||||
};
|
||||
|
||||
static int btmrvl_open_generic(struct inode *inode, struct file *file)
|
||||
{
|
||||
file->private_data = inode->i_private;
|
||||
return 0;
|
||||
}
|
||||
|
||||
static ssize_t btmrvl_hscfgcmd_write(struct file *file,
|
||||
const char __user *ubuf, size_t count, loff_t *ppos)
|
||||
{
|
||||
@ -93,7 +87,7 @@ static ssize_t btmrvl_hscfgcmd_read(struct file *file, char __user *userbuf,
|
||||
static const struct file_operations btmrvl_hscfgcmd_fops = {
|
||||
.read = btmrvl_hscfgcmd_read,
|
||||
.write = btmrvl_hscfgcmd_write,
|
||||
.open = btmrvl_open_generic,
|
||||
.open = simple_open,
|
||||
.llseek = default_llseek,
|
||||
};
|
||||
|
||||
@ -134,7 +128,7 @@ static ssize_t btmrvl_psmode_read(struct file *file, char __user *userbuf,
|
||||
static const struct file_operations btmrvl_psmode_fops = {
|
||||
.read = btmrvl_psmode_read,
|
||||
.write = btmrvl_psmode_write,
|
||||
.open = btmrvl_open_generic,
|
||||
.open = simple_open,
|
||||
.llseek = default_llseek,
|
||||
};
|
||||
|
||||
@ -180,7 +174,7 @@ static ssize_t btmrvl_pscmd_read(struct file *file, char __user *userbuf,
|
||||
static const struct file_operations btmrvl_pscmd_fops = {
|
||||
.read = btmrvl_pscmd_read,
|
||||
.write = btmrvl_pscmd_write,
|
||||
.open = btmrvl_open_generic,
|
||||
.open = simple_open,
|
||||
.llseek = default_llseek,
|
||||
};
|
||||
|
||||
@ -221,7 +215,7 @@ static ssize_t btmrvl_gpiogap_read(struct file *file, char __user *userbuf,
|
||||
static const struct file_operations btmrvl_gpiogap_fops = {
|
||||
.read = btmrvl_gpiogap_read,
|
||||
.write = btmrvl_gpiogap_write,
|
||||
.open = btmrvl_open_generic,
|
||||
.open = simple_open,
|
||||
.llseek = default_llseek,
|
||||
};
|
||||
|
||||
@ -265,7 +259,7 @@ static ssize_t btmrvl_hscmd_read(struct file *file, char __user *userbuf,
|
||||
static const struct file_operations btmrvl_hscmd_fops = {
|
||||
.read = btmrvl_hscmd_read,
|
||||
.write = btmrvl_hscmd_write,
|
||||
.open = btmrvl_open_generic,
|
||||
.open = simple_open,
|
||||
.llseek = default_llseek,
|
||||
};
|
||||
|
||||
@ -305,7 +299,7 @@ static ssize_t btmrvl_hsmode_read(struct file *file, char __user * userbuf,
|
||||
static const struct file_operations btmrvl_hsmode_fops = {
|
||||
.read = btmrvl_hsmode_read,
|
||||
.write = btmrvl_hsmode_write,
|
||||
.open = btmrvl_open_generic,
|
||||
.open = simple_open,
|
||||
.llseek = default_llseek,
|
||||
};
|
||||
|
||||
@ -323,7 +317,7 @@ static ssize_t btmrvl_curpsmode_read(struct file *file, char __user *userbuf,
|
||||
|
||||
static const struct file_operations btmrvl_curpsmode_fops = {
|
||||
.read = btmrvl_curpsmode_read,
|
||||
.open = btmrvl_open_generic,
|
||||
.open = simple_open,
|
||||
.llseek = default_llseek,
|
||||
};
|
||||
|
||||
@ -341,7 +335,7 @@ static ssize_t btmrvl_psstate_read(struct file *file, char __user * userbuf,
|
||||
|
||||
static const struct file_operations btmrvl_psstate_fops = {
|
||||
.read = btmrvl_psstate_read,
|
||||
.open = btmrvl_open_generic,
|
||||
.open = simple_open,
|
||||
.llseek = default_llseek,
|
||||
};
|
||||
|
||||
@ -359,7 +353,7 @@ static ssize_t btmrvl_hsstate_read(struct file *file, char __user *userbuf,
|
||||
|
||||
static const struct file_operations btmrvl_hsstate_fops = {
|
||||
.read = btmrvl_hsstate_read,
|
||||
.open = btmrvl_open_generic,
|
||||
.open = simple_open,
|
||||
.llseek = default_llseek,
|
||||
};
|
||||
|
||||
@ -378,7 +372,7 @@ static ssize_t btmrvl_txdnldready_read(struct file *file, char __user *userbuf,
|
||||
|
||||
static const struct file_operations btmrvl_txdnldready_fops = {
|
||||
.read = btmrvl_txdnldready_read,
|
||||
.open = btmrvl_open_generic,
|
||||
.open = simple_open,
|
||||
.llseek = default_llseek,
|
||||
};
|
||||
|
||||
|
@ -1038,12 +1038,6 @@ static struct attribute_group port_attribute_group = {
|
||||
.attrs = port_sysfs_entries,
|
||||
};
|
||||
|
||||
static int debugfs_open(struct inode *inode, struct file *filp)
|
||||
{
|
||||
filp->private_data = inode->i_private;
|
||||
return 0;
|
||||
}
|
||||
|
||||
static ssize_t debugfs_read(struct file *filp, char __user *ubuf,
|
||||
size_t count, loff_t *offp)
|
||||
{
|
||||
@ -1087,7 +1081,7 @@ static ssize_t debugfs_read(struct file *filp, char __user *ubuf,
|
||||
|
||||
static const struct file_operations port_debugfs_ops = {
|
||||
.owner = THIS_MODULE,
|
||||
.open = debugfs_open,
|
||||
.open = simple_open,
|
||||
.read = debugfs_read,
|
||||
};
|
||||
|
||||
|
@ -104,13 +104,6 @@ static void coh901318_list_print(struct coh901318_chan *cohc,
|
||||
static struct coh901318_base *debugfs_dma_base;
|
||||
static struct dentry *dma_dentry;
|
||||
|
||||
static int coh901318_debugfs_open(struct inode *inode, struct file *file)
|
||||
{
|
||||
|
||||
file->private_data = inode->i_private;
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int coh901318_debugfs_read(struct file *file, char __user *buf,
|
||||
size_t count, loff_t *f_pos)
|
||||
{
|
||||
@ -158,7 +151,7 @@ static int coh901318_debugfs_read(struct file *file, char __user *buf,
|
||||
|
||||
static const struct file_operations coh901318_debugfs_status_operations = {
|
||||
.owner = THIS_MODULE,
|
||||
.open = coh901318_debugfs_open,
|
||||
.open = simple_open,
|
||||
.read = coh901318_debugfs_read,
|
||||
.llseek = default_llseek,
|
||||
};
|
||||
|
@ -1502,14 +1502,6 @@ static int i915_ppgtt_info(struct seq_file *m, void *data)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int
|
||||
i915_debugfs_common_open(struct inode *inode,
|
||||
struct file *filp)
|
||||
{
|
||||
filp->private_data = inode->i_private;
|
||||
return 0;
|
||||
}
|
||||
|
||||
static ssize_t
|
||||
i915_wedged_read(struct file *filp,
|
||||
char __user *ubuf,
|
||||
@ -1560,7 +1552,7 @@ i915_wedged_write(struct file *filp,
|
||||
|
||||
static const struct file_operations i915_wedged_fops = {
|
||||
.owner = THIS_MODULE,
|
||||
.open = i915_debugfs_common_open,
|
||||
.open = simple_open,
|
||||
.read = i915_wedged_read,
|
||||
.write = i915_wedged_write,
|
||||
.llseek = default_llseek,
|
||||
@ -1622,7 +1614,7 @@ i915_max_freq_write(struct file *filp,
|
||||
|
||||
static const struct file_operations i915_max_freq_fops = {
|
||||
.owner = THIS_MODULE,
|
||||
.open = i915_debugfs_common_open,
|
||||
.open = simple_open,
|
||||
.read = i915_max_freq_read,
|
||||
.write = i915_max_freq_write,
|
||||
.llseek = default_llseek,
|
||||
@ -1693,7 +1685,7 @@ i915_cache_sharing_write(struct file *filp,
|
||||
|
||||
static const struct file_operations i915_cache_sharing_fops = {
|
||||
.owner = THIS_MODULE,
|
||||
.open = i915_debugfs_common_open,
|
||||
.open = simple_open,
|
||||
.read = i915_cache_sharing_read,
|
||||
.write = i915_cache_sharing_write,
|
||||
.llseek = default_llseek,
|
||||
|
@ -1525,12 +1525,6 @@ static const struct file_operations picolcd_debug_reset_fops = {
|
||||
/*
|
||||
* The "eeprom" file
|
||||
*/
|
||||
static int picolcd_debug_eeprom_open(struct inode *i, struct file *f)
|
||||
{
|
||||
f->private_data = i->i_private;
|
||||
return 0;
|
||||
}
|
||||
|
||||
static ssize_t picolcd_debug_eeprom_read(struct file *f, char __user *u,
|
||||
size_t s, loff_t *off)
|
||||
{
|
||||
@ -1618,7 +1612,7 @@ static ssize_t picolcd_debug_eeprom_write(struct file *f, const char __user *u,
|
||||
*/
|
||||
static const struct file_operations picolcd_debug_eeprom_fops = {
|
||||
.owner = THIS_MODULE,
|
||||
.open = picolcd_debug_eeprom_open,
|
||||
.open = simple_open,
|
||||
.read = picolcd_debug_eeprom_read,
|
||||
.write = picolcd_debug_eeprom_write,
|
||||
.llseek = generic_file_llseek,
|
||||
@ -1627,12 +1621,6 @@ static const struct file_operations picolcd_debug_eeprom_fops = {
|
||||
/*
|
||||
* The "flash" file
|
||||
*/
|
||||
static int picolcd_debug_flash_open(struct inode *i, struct file *f)
|
||||
{
|
||||
f->private_data = i->i_private;
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* record a flash address to buf (bounds check to be done by caller) */
|
||||
static int _picolcd_flash_setaddr(struct picolcd_data *data, u8 *buf, long off)
|
||||
{
|
||||
@ -1817,7 +1805,7 @@ static ssize_t picolcd_debug_flash_write(struct file *f, const char __user *u,
|
||||
*/
|
||||
static const struct file_operations picolcd_debug_flash_fops = {
|
||||
.owner = THIS_MODULE,
|
||||
.open = picolcd_debug_flash_open,
|
||||
.open = simple_open,
|
||||
.read = picolcd_debug_flash_read,
|
||||
.write = picolcd_debug_flash_write,
|
||||
.llseek = generic_file_llseek,
|
||||
|
@ -23,12 +23,6 @@ struct wiimote_debug {
|
||||
struct dentry *drm;
|
||||
};
|
||||
|
||||
static int wiidebug_eeprom_open(struct inode *i, struct file *f)
|
||||
{
|
||||
f->private_data = i->i_private;
|
||||
return 0;
|
||||
}
|
||||
|
||||
static ssize_t wiidebug_eeprom_read(struct file *f, char __user *u, size_t s,
|
||||
loff_t *off)
|
||||
{
|
||||
@ -83,7 +77,7 @@ static ssize_t wiidebug_eeprom_read(struct file *f, char __user *u, size_t s,
|
||||
|
||||
static const struct file_operations wiidebug_eeprom_fops = {
|
||||
.owner = THIS_MODULE,
|
||||
.open = wiidebug_eeprom_open,
|
||||
.open = simple_open,
|
||||
.read = wiidebug_eeprom_read,
|
||||
.llseek = generic_file_llseek,
|
||||
};
|
||||
|
@ -516,12 +516,6 @@ static struct notifier_block i7300_idle_nb = {
|
||||
|
||||
MODULE_DEVICE_TABLE(pci, pci_tbl);
|
||||
|
||||
int stats_open_generic(struct inode *inode, struct file *fp)
|
||||
{
|
||||
fp->private_data = inode->i_private;
|
||||
return 0;
|
||||
}
|
||||
|
||||
static ssize_t stats_read_ul(struct file *fp, char __user *ubuf, size_t count,
|
||||
loff_t *off)
|
||||
{
|
||||
@ -534,7 +528,7 @@ static ssize_t stats_read_ul(struct file *fp, char __user *ubuf, size_t count,
|
||||
}
|
||||
|
||||
static const struct file_operations idle_fops = {
|
||||
.open = stats_open_generic,
|
||||
.open = simple_open,
|
||||
.read = stats_read_ul,
|
||||
.llseek = default_llseek,
|
||||
};
|
||||
|
@ -323,15 +323,9 @@ err_out:
|
||||
return count;
|
||||
}
|
||||
|
||||
static int debug_open_generic(struct inode *inode, struct file *file)
|
||||
{
|
||||
file->private_data = inode->i_private;
|
||||
return 0;
|
||||
}
|
||||
|
||||
#define DEBUG_FOPS(name) \
|
||||
static const struct file_operations debug_##name##_fops = { \
|
||||
.open = debug_open_generic, \
|
||||
.open = simple_open, \
|
||||
.read = debug_read_##name, \
|
||||
.write = debug_write_##name, \
|
||||
.llseek = generic_file_llseek, \
|
||||
@ -339,7 +333,7 @@ static int debug_open_generic(struct inode *inode, struct file *file)
|
||||
|
||||
#define DEBUG_FOPS_RO(name) \
|
||||
static const struct file_operations debug_##name##_fops = { \
|
||||
.open = debug_open_generic, \
|
||||
.open = simple_open, \
|
||||
.read = debug_read_##name, \
|
||||
.llseek = generic_file_llseek, \
|
||||
};
|
||||
|
@ -262,13 +262,6 @@ static ssize_t aat2870_dump_reg(struct aat2870_data *aat2870, char *buf)
|
||||
return count;
|
||||
}
|
||||
|
||||
static int aat2870_reg_open_file(struct inode *inode, struct file *file)
|
||||
{
|
||||
file->private_data = inode->i_private;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static ssize_t aat2870_reg_read_file(struct file *file, char __user *user_buf,
|
||||
size_t count, loff_t *ppos)
|
||||
{
|
||||
@ -330,7 +323,7 @@ static ssize_t aat2870_reg_write_file(struct file *file,
|
||||
}
|
||||
|
||||
static const struct file_operations aat2870_reg_fops = {
|
||||
.open = aat2870_reg_open_file,
|
||||
.open = simple_open,
|
||||
.read = aat2870_reg_read_file,
|
||||
.write = aat2870_reg_write_file,
|
||||
};
|
||||
|
@ -483,12 +483,6 @@ struct ab3100_get_set_reg_priv {
|
||||
bool mode;
|
||||
};
|
||||
|
||||
static int ab3100_get_set_reg_open_file(struct inode *inode, struct file *file)
|
||||
{
|
||||
file->private_data = inode->i_private;
|
||||
return 0;
|
||||
}
|
||||
|
||||
static ssize_t ab3100_get_set_reg(struct file *file,
|
||||
const char __user *user_buf,
|
||||
size_t count, loff_t *ppos)
|
||||
@ -583,7 +577,7 @@ static ssize_t ab3100_get_set_reg(struct file *file,
|
||||
}
|
||||
|
||||
static const struct file_operations ab3100_get_set_reg_fops = {
|
||||
.open = ab3100_get_set_reg_open_file,
|
||||
.open = simple_open,
|
||||
.write = ab3100_get_set_reg,
|
||||
.llseek = noop_llseek,
|
||||
};
|
||||
|
@ -500,12 +500,6 @@ static ssize_t r_heartbeat_file_write(struct file *file, const char __user *buf,
|
||||
return 1;
|
||||
}
|
||||
|
||||
static int remote_settings_file_open(struct inode *inode, struct file *file)
|
||||
{
|
||||
file->private_data = inode->i_private;
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int remote_settings_file_close(struct inode *inode, struct file *file)
|
||||
{
|
||||
return 0;
|
||||
@ -600,7 +594,7 @@ static const struct file_operations r_heartbeat_fops = {
|
||||
};
|
||||
|
||||
static const struct file_operations remote_settings_fops = {
|
||||
.open = remote_settings_file_open,
|
||||
.open = simple_open,
|
||||
.release = remote_settings_file_close,
|
||||
.read = remote_settings_file_read,
|
||||
.write = remote_settings_file_write,
|
||||
|
@ -386,19 +386,11 @@ out:
|
||||
return count;
|
||||
}
|
||||
|
||||
static int default_open(struct inode *inode, struct file *file)
|
||||
{
|
||||
if (inode->i_private)
|
||||
file->private_data = inode->i_private;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* File operations for all UBI debugfs files */
|
||||
static const struct file_operations dfs_fops = {
|
||||
.read = dfs_file_read,
|
||||
.write = dfs_file_write,
|
||||
.open = default_open,
|
||||
.open = simple_open,
|
||||
.llseek = no_llseek,
|
||||
.owner = THIS_MODULE,
|
||||
};
|
||||
|
@ -127,12 +127,6 @@ static inline void dev_debugfs_rem(struct cfspi *cfspi)
|
||||
debugfs_remove(cfspi->dbgfs_dir);
|
||||
}
|
||||
|
||||
static int dbgfs_open(struct inode *inode, struct file *file)
|
||||
{
|
||||
file->private_data = inode->i_private;
|
||||
return 0;
|
||||
}
|
||||
|
||||
static ssize_t dbgfs_state(struct file *file, char __user *user_buf,
|
||||
size_t count, loff_t *ppos)
|
||||
{
|
||||
@ -243,13 +237,13 @@ static ssize_t dbgfs_frame(struct file *file, char __user *user_buf,
|
||||
}
|
||||
|
||||
static const struct file_operations dbgfs_state_fops = {
|
||||
.open = dbgfs_open,
|
||||
.open = simple_open,
|
||||
.read = dbgfs_state,
|
||||
.owner = THIS_MODULE
|
||||
};
|
||||
|
||||
static const struct file_operations dbgfs_frame_fops = {
|
||||
.open = dbgfs_open,
|
||||
.open = simple_open,
|
||||
.read = dbgfs_frame,
|
||||
.owner = THIS_MODULE
|
||||
};
|
||||
|
@ -2000,13 +2000,6 @@ static const struct ethtool_ops cxgb_ethtool_ops = {
|
||||
/*
|
||||
* debugfs support
|
||||
*/
|
||||
|
||||
static int mem_open(struct inode *inode, struct file *file)
|
||||
{
|
||||
file->private_data = inode->i_private;
|
||||
return 0;
|
||||
}
|
||||
|
||||
static ssize_t mem_read(struct file *file, char __user *buf, size_t count,
|
||||
loff_t *ppos)
|
||||
{
|
||||
@ -2050,7 +2043,7 @@ static ssize_t mem_read(struct file *file, char __user *buf, size_t count,
|
||||
|
||||
static const struct file_operations mem_debugfs_fops = {
|
||||
.owner = THIS_MODULE,
|
||||
.open = mem_open,
|
||||
.open = simple_open,
|
||||
.read = mem_read,
|
||||
.llseek = default_llseek,
|
||||
};
|
||||
|
@ -53,17 +53,6 @@ struct dentry *debugfs_create_netdev_queue_stopped(
|
||||
&fops_netdev_queue_stopped);
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* inode->i_private has the @data argument to debugfs_create_file()
|
||||
*/
|
||||
static
|
||||
int i2400m_stats_open(struct inode *inode, struct file *filp)
|
||||
{
|
||||
filp->private_data = inode->i_private;
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
* We don't allow partial reads of this file, as then the reader would
|
||||
* get weirdly confused data as it is updated.
|
||||
@ -117,7 +106,7 @@ ssize_t i2400m_rx_stats_write(struct file *filp, const char __user *buffer,
|
||||
static
|
||||
const struct file_operations i2400m_rx_stats_fops = {
|
||||
.owner = THIS_MODULE,
|
||||
.open = i2400m_stats_open,
|
||||
.open = simple_open,
|
||||
.read = i2400m_rx_stats_read,
|
||||
.write = i2400m_rx_stats_write,
|
||||
.llseek = default_llseek,
|
||||
@ -170,7 +159,7 @@ ssize_t i2400m_tx_stats_write(struct file *filp, const char __user *buffer,
|
||||
static
|
||||
const struct file_operations i2400m_tx_stats_fops = {
|
||||
.owner = THIS_MODULE,
|
||||
.open = i2400m_stats_open,
|
||||
.open = simple_open,
|
||||
.read = i2400m_tx_stats_read,
|
||||
.write = i2400m_tx_stats_write,
|
||||
.llseek = default_llseek,
|
||||
|
@ -71,13 +71,6 @@ static unsigned int ath5k_debug;
|
||||
module_param_named(debug, ath5k_debug, uint, 0);
|
||||
|
||||
|
||||
static int ath5k_debugfs_open(struct inode *inode, struct file *file)
|
||||
{
|
||||
file->private_data = inode->i_private;
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
/* debugfs: registers */
|
||||
|
||||
struct reg {
|
||||
@ -265,7 +258,7 @@ static ssize_t write_file_beacon(struct file *file,
|
||||
static const struct file_operations fops_beacon = {
|
||||
.read = read_file_beacon,
|
||||
.write = write_file_beacon,
|
||||
.open = ath5k_debugfs_open,
|
||||
.open = simple_open,
|
||||
.owner = THIS_MODULE,
|
||||
.llseek = default_llseek,
|
||||
};
|
||||
@ -285,7 +278,7 @@ static ssize_t write_file_reset(struct file *file,
|
||||
|
||||
static const struct file_operations fops_reset = {
|
||||
.write = write_file_reset,
|
||||
.open = ath5k_debugfs_open,
|
||||
.open = simple_open,
|
||||
.owner = THIS_MODULE,
|
||||
.llseek = noop_llseek,
|
||||
};
|
||||
@ -365,7 +358,7 @@ static ssize_t write_file_debug(struct file *file,
|
||||
static const struct file_operations fops_debug = {
|
||||
.read = read_file_debug,
|
||||
.write = write_file_debug,
|
||||
.open = ath5k_debugfs_open,
|
||||
.open = simple_open,
|
||||
.owner = THIS_MODULE,
|
||||
.llseek = default_llseek,
|
||||
};
|
||||
@ -477,7 +470,7 @@ static ssize_t write_file_antenna(struct file *file,
|
||||
static const struct file_operations fops_antenna = {
|
||||
.read = read_file_antenna,
|
||||
.write = write_file_antenna,
|
||||
.open = ath5k_debugfs_open,
|
||||
.open = simple_open,
|
||||
.owner = THIS_MODULE,
|
||||
.llseek = default_llseek,
|
||||
};
|
||||
@ -532,7 +525,7 @@ static ssize_t read_file_misc(struct file *file, char __user *user_buf,
|
||||
|
||||
static const struct file_operations fops_misc = {
|
||||
.read = read_file_misc,
|
||||
.open = ath5k_debugfs_open,
|
||||
.open = simple_open,
|
||||
.owner = THIS_MODULE,
|
||||
};
|
||||
|
||||
@ -647,7 +640,7 @@ static ssize_t write_file_frameerrors(struct file *file,
|
||||
static const struct file_operations fops_frameerrors = {
|
||||
.read = read_file_frameerrors,
|
||||
.write = write_file_frameerrors,
|
||||
.open = ath5k_debugfs_open,
|
||||
.open = simple_open,
|
||||
.owner = THIS_MODULE,
|
||||
.llseek = default_llseek,
|
||||
};
|
||||
@ -810,7 +803,7 @@ static ssize_t write_file_ani(struct file *file,
|
||||
static const struct file_operations fops_ani = {
|
||||
.read = read_file_ani,
|
||||
.write = write_file_ani,
|
||||
.open = ath5k_debugfs_open,
|
||||
.open = simple_open,
|
||||
.owner = THIS_MODULE,
|
||||
.llseek = default_llseek,
|
||||
};
|
||||
@ -881,7 +874,7 @@ static ssize_t write_file_queue(struct file *file,
|
||||
static const struct file_operations fops_queue = {
|
||||
.read = read_file_queue,
|
||||
.write = write_file_queue,
|
||||
.open = ath5k_debugfs_open,
|
||||
.open = simple_open,
|
||||
.owner = THIS_MODULE,
|
||||
.llseek = default_llseek,
|
||||
};
|
||||
|
@ -217,12 +217,6 @@ void dump_cred_dist_stats(struct htc_target *target)
|
||||
target->credit_info->cur_free_credits);
|
||||
}
|
||||
|
||||
static int ath6kl_debugfs_open(struct inode *inode, struct file *file)
|
||||
{
|
||||
file->private_data = inode->i_private;
|
||||
return 0;
|
||||
}
|
||||
|
||||
void ath6kl_debug_war(struct ath6kl *ar, enum ath6kl_war war)
|
||||
{
|
||||
switch (war) {
|
||||
@ -263,7 +257,7 @@ static ssize_t read_file_war_stats(struct file *file, char __user *user_buf,
|
||||
|
||||
static const struct file_operations fops_war_stats = {
|
||||
.read = read_file_war_stats,
|
||||
.open = ath6kl_debugfs_open,
|
||||
.open = simple_open,
|
||||
.owner = THIS_MODULE,
|
||||
.llseek = default_llseek,
|
||||
};
|
||||
@ -488,7 +482,7 @@ static ssize_t ath6kl_fwlog_mask_write(struct file *file,
|
||||
}
|
||||
|
||||
static const struct file_operations fops_fwlog_mask = {
|
||||
.open = ath6kl_debugfs_open,
|
||||
.open = simple_open,
|
||||
.read = ath6kl_fwlog_mask_read,
|
||||
.write = ath6kl_fwlog_mask_write,
|
||||
.owner = THIS_MODULE,
|
||||
@ -634,7 +628,7 @@ static ssize_t read_file_tgt_stats(struct file *file, char __user *user_buf,
|
||||
|
||||
static const struct file_operations fops_tgt_stats = {
|
||||
.read = read_file_tgt_stats,
|
||||
.open = ath6kl_debugfs_open,
|
||||
.open = simple_open,
|
||||
.owner = THIS_MODULE,
|
||||
.llseek = default_llseek,
|
||||
};
|
||||
@ -699,7 +693,7 @@ static ssize_t read_file_credit_dist_stats(struct file *file,
|
||||
|
||||
static const struct file_operations fops_credit_dist_stats = {
|
||||
.read = read_file_credit_dist_stats,
|
||||
.open = ath6kl_debugfs_open,
|
||||
.open = simple_open,
|
||||
.owner = THIS_MODULE,
|
||||
.llseek = default_llseek,
|
||||
};
|
||||
@ -802,7 +796,7 @@ static ssize_t ath6kl_endpoint_stats_write(struct file *file,
|
||||
}
|
||||
|
||||
static const struct file_operations fops_endpoint_stats = {
|
||||
.open = ath6kl_debugfs_open,
|
||||
.open = simple_open,
|
||||
.read = ath6kl_endpoint_stats_read,
|
||||
.write = ath6kl_endpoint_stats_write,
|
||||
.owner = THIS_MODULE,
|
||||
@ -875,7 +869,7 @@ static ssize_t ath6kl_regread_write(struct file *file,
|
||||
static const struct file_operations fops_diag_reg_read = {
|
||||
.read = ath6kl_regread_read,
|
||||
.write = ath6kl_regread_write,
|
||||
.open = ath6kl_debugfs_open,
|
||||
.open = simple_open,
|
||||
.owner = THIS_MODULE,
|
||||
.llseek = default_llseek,
|
||||
};
|
||||
@ -999,7 +993,7 @@ static ssize_t ath6kl_lrssi_roam_read(struct file *file,
|
||||
static const struct file_operations fops_lrssi_roam_threshold = {
|
||||
.read = ath6kl_lrssi_roam_read,
|
||||
.write = ath6kl_lrssi_roam_write,
|
||||
.open = ath6kl_debugfs_open,
|
||||
.open = simple_open,
|
||||
.owner = THIS_MODULE,
|
||||
.llseek = default_llseek,
|
||||
};
|
||||
@ -1061,7 +1055,7 @@ static ssize_t ath6kl_regwrite_write(struct file *file,
|
||||
static const struct file_operations fops_diag_reg_write = {
|
||||
.read = ath6kl_regwrite_read,
|
||||
.write = ath6kl_regwrite_write,
|
||||
.open = ath6kl_debugfs_open,
|
||||
.open = simple_open,
|
||||
.owner = THIS_MODULE,
|
||||
.llseek = default_llseek,
|
||||
};
|
||||
@ -1166,7 +1160,7 @@ static ssize_t ath6kl_roam_table_read(struct file *file, char __user *user_buf,
|
||||
|
||||
static const struct file_operations fops_roam_table = {
|
||||
.read = ath6kl_roam_table_read,
|
||||
.open = ath6kl_debugfs_open,
|
||||
.open = simple_open,
|
||||
.owner = THIS_MODULE,
|
||||
.llseek = default_llseek,
|
||||
};
|
||||
@ -1204,7 +1198,7 @@ static ssize_t ath6kl_force_roam_write(struct file *file,
|
||||
|
||||
static const struct file_operations fops_force_roam = {
|
||||
.write = ath6kl_force_roam_write,
|
||||
.open = ath6kl_debugfs_open,
|
||||
.open = simple_open,
|
||||
.owner = THIS_MODULE,
|
||||
.llseek = default_llseek,
|
||||
};
|
||||
@ -1244,7 +1238,7 @@ static ssize_t ath6kl_roam_mode_write(struct file *file,
|
||||
|
||||
static const struct file_operations fops_roam_mode = {
|
||||
.write = ath6kl_roam_mode_write,
|
||||
.open = ath6kl_debugfs_open,
|
||||
.open = simple_open,
|
||||
.owner = THIS_MODULE,
|
||||
.llseek = default_llseek,
|
||||
};
|
||||
@ -1286,7 +1280,7 @@ static ssize_t ath6kl_keepalive_write(struct file *file,
|
||||
}
|
||||
|
||||
static const struct file_operations fops_keepalive = {
|
||||
.open = ath6kl_debugfs_open,
|
||||
.open = simple_open,
|
||||
.read = ath6kl_keepalive_read,
|
||||
.write = ath6kl_keepalive_write,
|
||||
.owner = THIS_MODULE,
|
||||
@ -1331,7 +1325,7 @@ static ssize_t ath6kl_disconnect_timeout_write(struct file *file,
|
||||
}
|
||||
|
||||
static const struct file_operations fops_disconnect_timeout = {
|
||||
.open = ath6kl_debugfs_open,
|
||||
.open = simple_open,
|
||||
.read = ath6kl_disconnect_timeout_read,
|
||||
.write = ath6kl_disconnect_timeout_write,
|
||||
.owner = THIS_MODULE,
|
||||
@ -1512,7 +1506,7 @@ static ssize_t ath6kl_create_qos_write(struct file *file,
|
||||
|
||||
static const struct file_operations fops_create_qos = {
|
||||
.write = ath6kl_create_qos_write,
|
||||
.open = ath6kl_debugfs_open,
|
||||
.open = simple_open,
|
||||
.owner = THIS_MODULE,
|
||||
.llseek = default_llseek,
|
||||
};
|
||||
@ -1560,7 +1554,7 @@ static ssize_t ath6kl_delete_qos_write(struct file *file,
|
||||
|
||||
static const struct file_operations fops_delete_qos = {
|
||||
.write = ath6kl_delete_qos_write,
|
||||
.open = ath6kl_debugfs_open,
|
||||
.open = simple_open,
|
||||
.owner = THIS_MODULE,
|
||||
.llseek = default_llseek,
|
||||
};
|
||||
@ -1593,7 +1587,7 @@ static ssize_t ath6kl_bgscan_int_write(struct file *file,
|
||||
|
||||
static const struct file_operations fops_bgscan_int = {
|
||||
.write = ath6kl_bgscan_int_write,
|
||||
.open = ath6kl_debugfs_open,
|
||||
.open = simple_open,
|
||||
.owner = THIS_MODULE,
|
||||
.llseek = default_llseek,
|
||||
};
|
||||
@ -1651,7 +1645,7 @@ static ssize_t ath6kl_listen_int_read(struct file *file,
|
||||
static const struct file_operations fops_listen_int = {
|
||||
.read = ath6kl_listen_int_read,
|
||||
.write = ath6kl_listen_int_write,
|
||||
.open = ath6kl_debugfs_open,
|
||||
.open = simple_open,
|
||||
.owner = THIS_MODULE,
|
||||
.llseek = default_llseek,
|
||||
};
|
||||
@ -1711,7 +1705,7 @@ static ssize_t ath6kl_power_params_write(struct file *file,
|
||||
|
||||
static const struct file_operations fops_power_params = {
|
||||
.write = ath6kl_power_params_write,
|
||||
.open = ath6kl_debugfs_open,
|
||||
.open = simple_open,
|
||||
.owner = THIS_MODULE,
|
||||
.llseek = default_llseek,
|
||||
};
|
||||
|
@ -26,11 +26,6 @@
|
||||
#define REG_READ_D(_ah, _reg) \
|
||||
ath9k_hw_common(_ah)->ops->read((_ah), (_reg))
|
||||
|
||||
static int ath9k_debugfs_open(struct inode *inode, struct file *file)
|
||||
{
|
||||
file->private_data = inode->i_private;
|
||||
return 0;
|
||||
}
|
||||
|
||||
static ssize_t ath9k_debugfs_read_buf(struct file *file, char __user *user_buf,
|
||||
size_t count, loff_t *ppos)
|
||||
@ -83,7 +78,7 @@ static ssize_t write_file_debug(struct file *file, const char __user *user_buf,
|
||||
static const struct file_operations fops_debug = {
|
||||
.read = read_file_debug,
|
||||
.write = write_file_debug,
|
||||
.open = ath9k_debugfs_open,
|
||||
.open = simple_open,
|
||||
.owner = THIS_MODULE,
|
||||
.llseek = default_llseek,
|
||||
};
|
||||
@ -129,7 +124,7 @@ static ssize_t write_file_tx_chainmask(struct file *file, const char __user *use
|
||||
static const struct file_operations fops_tx_chainmask = {
|
||||
.read = read_file_tx_chainmask,
|
||||
.write = write_file_tx_chainmask,
|
||||
.open = ath9k_debugfs_open,
|
||||
.open = simple_open,
|
||||
.owner = THIS_MODULE,
|
||||
.llseek = default_llseek,
|
||||
};
|
||||
@ -172,7 +167,7 @@ static ssize_t write_file_rx_chainmask(struct file *file, const char __user *use
|
||||
static const struct file_operations fops_rx_chainmask = {
|
||||
.read = read_file_rx_chainmask,
|
||||
.write = write_file_rx_chainmask,
|
||||
.open = ath9k_debugfs_open,
|
||||
.open = simple_open,
|
||||
.owner = THIS_MODULE,
|
||||
.llseek = default_llseek,
|
||||
};
|
||||
@ -223,7 +218,7 @@ static ssize_t write_file_disable_ani(struct file *file,
|
||||
static const struct file_operations fops_disable_ani = {
|
||||
.read = read_file_disable_ani,
|
||||
.write = write_file_disable_ani,
|
||||
.open = ath9k_debugfs_open,
|
||||
.open = simple_open,
|
||||
.owner = THIS_MODULE,
|
||||
.llseek = default_llseek,
|
||||
};
|
||||
@ -324,7 +319,7 @@ static ssize_t read_file_dma(struct file *file, char __user *user_buf,
|
||||
|
||||
static const struct file_operations fops_dma = {
|
||||
.read = read_file_dma,
|
||||
.open = ath9k_debugfs_open,
|
||||
.open = simple_open,
|
||||
.owner = THIS_MODULE,
|
||||
.llseek = default_llseek,
|
||||
};
|
||||
@ -446,7 +441,7 @@ static ssize_t read_file_interrupt(struct file *file, char __user *user_buf,
|
||||
|
||||
static const struct file_operations fops_interrupt = {
|
||||
.read = read_file_interrupt,
|
||||
.open = ath9k_debugfs_open,
|
||||
.open = simple_open,
|
||||
.owner = THIS_MODULE,
|
||||
.llseek = default_llseek,
|
||||
};
|
||||
@ -852,28 +847,28 @@ void ath_debug_stat_tx(struct ath_softc *sc, struct ath_buf *bf,
|
||||
|
||||
static const struct file_operations fops_xmit = {
|
||||
.read = read_file_xmit,
|
||||
.open = ath9k_debugfs_open,
|
||||
.open = simple_open,
|
||||
.owner = THIS_MODULE,
|
||||
.llseek = default_llseek,
|
||||
};
|
||||
|
||||
static const struct file_operations fops_stations = {
|
||||
.read = read_file_stations,
|
||||
.open = ath9k_debugfs_open,
|
||||
.open = simple_open,
|
||||
.owner = THIS_MODULE,
|
||||
.llseek = default_llseek,
|
||||
};
|
||||
|
||||
static const struct file_operations fops_misc = {
|
||||
.read = read_file_misc,
|
||||
.open = ath9k_debugfs_open,
|
||||
.open = simple_open,
|
||||
.owner = THIS_MODULE,
|
||||
.llseek = default_llseek,
|
||||
};
|
||||
|
||||
static const struct file_operations fops_reset = {
|
||||
.read = read_file_reset,
|
||||
.open = ath9k_debugfs_open,
|
||||
.open = simple_open,
|
||||
.owner = THIS_MODULE,
|
||||
.llseek = default_llseek,
|
||||
};
|
||||
@ -1016,7 +1011,7 @@ void ath_debug_stat_rx(struct ath_softc *sc, struct ath_rx_status *rs)
|
||||
|
||||
static const struct file_operations fops_recv = {
|
||||
.read = read_file_recv,
|
||||
.open = ath9k_debugfs_open,
|
||||
.open = simple_open,
|
||||
.owner = THIS_MODULE,
|
||||
.llseek = default_llseek,
|
||||
};
|
||||
@ -1055,7 +1050,7 @@ static ssize_t write_file_regidx(struct file *file, const char __user *user_buf,
|
||||
static const struct file_operations fops_regidx = {
|
||||
.read = read_file_regidx,
|
||||
.write = write_file_regidx,
|
||||
.open = ath9k_debugfs_open,
|
||||
.open = simple_open,
|
||||
.owner = THIS_MODULE,
|
||||
.llseek = default_llseek,
|
||||
};
|
||||
@ -1102,7 +1097,7 @@ static ssize_t write_file_regval(struct file *file, const char __user *user_buf,
|
||||
static const struct file_operations fops_regval = {
|
||||
.read = read_file_regval,
|
||||
.write = write_file_regval,
|
||||
.open = ath9k_debugfs_open,
|
||||
.open = simple_open,
|
||||
.owner = THIS_MODULE,
|
||||
.llseek = default_llseek,
|
||||
};
|
||||
@ -1191,7 +1186,7 @@ static ssize_t read_file_dump_nfcal(struct file *file, char __user *user_buf,
|
||||
|
||||
static const struct file_operations fops_dump_nfcal = {
|
||||
.read = read_file_dump_nfcal,
|
||||
.open = ath9k_debugfs_open,
|
||||
.open = simple_open,
|
||||
.owner = THIS_MODULE,
|
||||
.llseek = default_llseek,
|
||||
};
|
||||
@ -1219,7 +1214,7 @@ static ssize_t read_file_base_eeprom(struct file *file, char __user *user_buf,
|
||||
|
||||
static const struct file_operations fops_base_eeprom = {
|
||||
.read = read_file_base_eeprom,
|
||||
.open = ath9k_debugfs_open,
|
||||
.open = simple_open,
|
||||
.owner = THIS_MODULE,
|
||||
.llseek = default_llseek,
|
||||
};
|
||||
@ -1247,7 +1242,7 @@ static ssize_t read_file_modal_eeprom(struct file *file, char __user *user_buf,
|
||||
|
||||
static const struct file_operations fops_modal_eeprom = {
|
||||
.read = read_file_modal_eeprom,
|
||||
.open = ath9k_debugfs_open,
|
||||
.open = simple_open,
|
||||
.owner = THIS_MODULE,
|
||||
.llseek = default_llseek,
|
||||
};
|
||||
|
@ -60,16 +60,9 @@ static ssize_t read_file_dfs(struct file *file, char __user *user_buf,
|
||||
return retval;
|
||||
}
|
||||
|
||||
static int ath9k_dfs_debugfs_open(struct inode *inode, struct file *file)
|
||||
{
|
||||
file->private_data = inode->i_private;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static const struct file_operations fops_dfs_stats = {
|
||||
.read = read_file_dfs,
|
||||
.open = ath9k_dfs_debugfs_open,
|
||||
.open = simple_open,
|
||||
.owner = THIS_MODULE,
|
||||
.llseek = default_llseek,
|
||||
};
|
||||
|
@ -16,12 +16,6 @@
|
||||
|
||||
#include "htc.h"
|
||||
|
||||
static int ath9k_debugfs_open(struct inode *inode, struct file *file)
|
||||
{
|
||||
file->private_data = inode->i_private;
|
||||
return 0;
|
||||
}
|
||||
|
||||
static ssize_t read_file_tgt_int_stats(struct file *file, char __user *user_buf,
|
||||
size_t count, loff_t *ppos)
|
||||
{
|
||||
@ -75,7 +69,7 @@ static ssize_t read_file_tgt_int_stats(struct file *file, char __user *user_buf,
|
||||
|
||||
static const struct file_operations fops_tgt_int_stats = {
|
||||
.read = read_file_tgt_int_stats,
|
||||
.open = ath9k_debugfs_open,
|
||||
.open = simple_open,
|
||||
.owner = THIS_MODULE,
|
||||
.llseek = default_llseek,
|
||||
};
|
||||
@ -145,7 +139,7 @@ static ssize_t read_file_tgt_tx_stats(struct file *file, char __user *user_buf,
|
||||
|
||||
static const struct file_operations fops_tgt_tx_stats = {
|
||||
.read = read_file_tgt_tx_stats,
|
||||
.open = ath9k_debugfs_open,
|
||||
.open = simple_open,
|
||||
.owner = THIS_MODULE,
|
||||
.llseek = default_llseek,
|
||||
};
|
||||
@ -191,7 +185,7 @@ static ssize_t read_file_tgt_rx_stats(struct file *file, char __user *user_buf,
|
||||
|
||||
static const struct file_operations fops_tgt_rx_stats = {
|
||||
.read = read_file_tgt_rx_stats,
|
||||
.open = ath9k_debugfs_open,
|
||||
.open = simple_open,
|
||||
.owner = THIS_MODULE,
|
||||
.llseek = default_llseek,
|
||||
};
|
||||
@ -243,7 +237,7 @@ static ssize_t read_file_xmit(struct file *file, char __user *user_buf,
|
||||
|
||||
static const struct file_operations fops_xmit = {
|
||||
.read = read_file_xmit,
|
||||
.open = ath9k_debugfs_open,
|
||||
.open = simple_open,
|
||||
.owner = THIS_MODULE,
|
||||
.llseek = default_llseek,
|
||||
};
|
||||
@ -364,7 +358,7 @@ static ssize_t read_file_recv(struct file *file, char __user *user_buf,
|
||||
|
||||
static const struct file_operations fops_recv = {
|
||||
.read = read_file_recv,
|
||||
.open = ath9k_debugfs_open,
|
||||
.open = simple_open,
|
||||
.owner = THIS_MODULE,
|
||||
.llseek = default_llseek,
|
||||
};
|
||||
@ -399,7 +393,7 @@ static ssize_t read_file_slot(struct file *file, char __user *user_buf,
|
||||
|
||||
static const struct file_operations fops_slot = {
|
||||
.read = read_file_slot,
|
||||
.open = ath9k_debugfs_open,
|
||||
.open = simple_open,
|
||||
.owner = THIS_MODULE,
|
||||
.llseek = default_llseek,
|
||||
};
|
||||
@ -446,7 +440,7 @@ static ssize_t read_file_queue(struct file *file, char __user *user_buf,
|
||||
|
||||
static const struct file_operations fops_queue = {
|
||||
.read = read_file_queue,
|
||||
.open = ath9k_debugfs_open,
|
||||
.open = simple_open,
|
||||
.owner = THIS_MODULE,
|
||||
.llseek = default_llseek,
|
||||
};
|
||||
@ -487,7 +481,7 @@ static ssize_t write_file_debug(struct file *file, const char __user *user_buf,
|
||||
static const struct file_operations fops_debug = {
|
||||
.read = read_file_debug,
|
||||
.write = write_file_debug,
|
||||
.open = ath9k_debugfs_open,
|
||||
.open = simple_open,
|
||||
.owner = THIS_MODULE,
|
||||
.llseek = default_llseek,
|
||||
};
|
||||
@ -636,7 +630,7 @@ static ssize_t read_file_base_eeprom(struct file *file, char __user *user_buf,
|
||||
|
||||
static const struct file_operations fops_base_eeprom = {
|
||||
.read = read_file_base_eeprom,
|
||||
.open = ath9k_debugfs_open,
|
||||
.open = simple_open,
|
||||
.owner = THIS_MODULE,
|
||||
.llseek = default_llseek,
|
||||
};
|
||||
@ -917,7 +911,7 @@ static ssize_t read_file_modal_eeprom(struct file *file, char __user *user_buf,
|
||||
|
||||
static const struct file_operations fops_modal_eeprom = {
|
||||
.read = read_file_modal_eeprom,
|
||||
.open = ath9k_debugfs_open,
|
||||
.open = simple_open,
|
||||
.owner = THIS_MODULE,
|
||||
.llseek = default_llseek,
|
||||
};
|
||||
|
@ -1480,12 +1480,6 @@ static void ath_rate_update(void *priv, struct ieee80211_supported_band *sband,
|
||||
|
||||
#ifdef CONFIG_ATH9K_DEBUGFS
|
||||
|
||||
static int ath9k_debugfs_open(struct inode *inode, struct file *file)
|
||||
{
|
||||
file->private_data = inode->i_private;
|
||||
return 0;
|
||||
}
|
||||
|
||||
static ssize_t read_file_rcstat(struct file *file, char __user *user_buf,
|
||||
size_t count, loff_t *ppos)
|
||||
{
|
||||
@ -1553,7 +1547,7 @@ static ssize_t read_file_rcstat(struct file *file, char __user *user_buf,
|
||||
|
||||
static const struct file_operations fops_rcstat = {
|
||||
.read = read_file_rcstat,
|
||||
.open = ath9k_debugfs_open,
|
||||
.open = simple_open,
|
||||
.owner = THIS_MODULE
|
||||
};
|
||||
|
||||
|
@ -48,11 +48,6 @@
|
||||
#define ADD(buf, off, max, fmt, args...) \
|
||||
off += snprintf(&buf[off], max - off, fmt, ##args);
|
||||
|
||||
static int carl9170_debugfs_open(struct inode *inode, struct file *file)
|
||||
{
|
||||
file->private_data = inode->i_private;
|
||||
return 0;
|
||||
}
|
||||
|
||||
struct carl9170_debugfs_fops {
|
||||
unsigned int read_bufsize;
|
||||
@ -178,7 +173,7 @@ static const struct carl9170_debugfs_fops carl_debugfs_##name ##_ops = {\
|
||||
.attr = _attr, \
|
||||
.req_dev_state = _dstate, \
|
||||
.fops = { \
|
||||
.open = carl9170_debugfs_open, \
|
||||
.open = simple_open, \
|
||||
.read = carl9170_debugfs_read, \
|
||||
.write = carl9170_debugfs_write, \
|
||||
.owner = THIS_MODULE \
|
||||
|
@ -500,12 +500,6 @@ out:
|
||||
|
||||
#undef fappend
|
||||
|
||||
static int b43_debugfs_open(struct inode *inode, struct file *file)
|
||||
{
|
||||
file->private_data = inode->i_private;
|
||||
return 0;
|
||||
}
|
||||
|
||||
static ssize_t b43_debugfs_read(struct file *file, char __user *userbuf,
|
||||
size_t count, loff_t *ppos)
|
||||
{
|
||||
@ -624,7 +618,7 @@ out_unlock:
|
||||
.read = _read, \
|
||||
.write = _write, \
|
||||
.fops = { \
|
||||
.open = b43_debugfs_open, \
|
||||
.open = simple_open, \
|
||||
.read = b43_debugfs_read, \
|
||||
.write = b43_debugfs_write, \
|
||||
.llseek = generic_file_llseek, \
|
||||
|
@ -197,12 +197,6 @@ static int restart_write_file(struct b43legacy_wldev *dev, const char *buf, size
|
||||
|
||||
#undef fappend
|
||||
|
||||
static int b43legacy_debugfs_open(struct inode *inode, struct file *file)
|
||||
{
|
||||
file->private_data = inode->i_private;
|
||||
return 0;
|
||||
}
|
||||
|
||||
static ssize_t b43legacy_debugfs_read(struct file *file, char __user *userbuf,
|
||||
size_t count, loff_t *ppos)
|
||||
{
|
||||
@ -331,7 +325,7 @@ out_unlock:
|
||||
.read = _read, \
|
||||
.write = _write, \
|
||||
.fops = { \
|
||||
.open = b43legacy_debugfs_open, \
|
||||
.open = simple_open, \
|
||||
.read = b43legacy_debugfs_read, \
|
||||
.write = b43legacy_debugfs_write, \
|
||||
.llseek = generic_file_llseek, \
|
||||
|
@ -821,12 +821,6 @@ out:
|
||||
}
|
||||
|
||||
#ifdef CONFIG_MAC80211_DEBUGFS
|
||||
static int
|
||||
il3945_open_file_generic(struct inode *inode, struct file *file)
|
||||
{
|
||||
file->private_data = inode->i_private;
|
||||
return 0;
|
||||
}
|
||||
|
||||
static ssize_t
|
||||
il3945_sta_dbgfs_stats_table_read(struct file *file, char __user *user_buf,
|
||||
@ -862,7 +856,7 @@ il3945_sta_dbgfs_stats_table_read(struct file *file, char __user *user_buf,
|
||||
|
||||
static const struct file_operations rs_sta_dbgfs_stats_table_ops = {
|
||||
.read = il3945_sta_dbgfs_stats_table_read,
|
||||
.open = il3945_open_file_generic,
|
||||
.open = simple_open,
|
||||
.llseek = default_llseek,
|
||||
};
|
||||
|
||||
|
@ -2518,12 +2518,6 @@ il4965_rs_free_sta(void *il_r, struct ieee80211_sta *sta, void *il_sta)
|
||||
}
|
||||
|
||||
#ifdef CONFIG_MAC80211_DEBUGFS
|
||||
static int
|
||||
il4965_open_file_generic(struct inode *inode, struct file *file)
|
||||
{
|
||||
file->private_data = inode->i_private;
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void
|
||||
il4965_rs_dbgfs_set_mcs(struct il_lq_sta *lq_sta, u32 * rate_n_flags, int idx)
|
||||
@ -2695,7 +2689,7 @@ il4965_rs_sta_dbgfs_scale_table_read(struct file *file, char __user *user_buf,
|
||||
static const struct file_operations rs_sta_dbgfs_scale_table_ops = {
|
||||
.write = il4965_rs_sta_dbgfs_scale_table_write,
|
||||
.read = il4965_rs_sta_dbgfs_scale_table_read,
|
||||
.open = il4965_open_file_generic,
|
||||
.open = simple_open,
|
||||
.llseek = default_llseek,
|
||||
};
|
||||
|
||||
@ -2740,7 +2734,7 @@ il4965_rs_sta_dbgfs_stats_table_read(struct file *file, char __user *user_buf,
|
||||
|
||||
static const struct file_operations rs_sta_dbgfs_stats_table_ops = {
|
||||
.read = il4965_rs_sta_dbgfs_stats_table_read,
|
||||
.open = il4965_open_file_generic,
|
||||
.open = simple_open,
|
||||
.llseek = default_llseek,
|
||||
};
|
||||
|
||||
@ -2768,7 +2762,7 @@ il4965_rs_sta_dbgfs_rate_scale_data_read(struct file *file,
|
||||
|
||||
static const struct file_operations rs_sta_dbgfs_rate_scale_data_ops = {
|
||||
.read = il4965_rs_sta_dbgfs_rate_scale_data_read,
|
||||
.open = il4965_open_file_generic,
|
||||
.open = simple_open,
|
||||
.llseek = default_llseek,
|
||||
};
|
||||
|
||||
|
@ -160,18 +160,12 @@ static ssize_t il_dbgfs_##name##_write(struct file *file, \
|
||||
const char __user *user_buf, \
|
||||
size_t count, loff_t *ppos);
|
||||
|
||||
static int
|
||||
il_dbgfs_open_file_generic(struct inode *inode, struct file *file)
|
||||
{
|
||||
file->private_data = inode->i_private;
|
||||
return 0;
|
||||
}
|
||||
|
||||
#define DEBUGFS_READ_FILE_OPS(name) \
|
||||
DEBUGFS_READ_FUNC(name); \
|
||||
static const struct file_operations il_dbgfs_##name##_ops = { \
|
||||
.read = il_dbgfs_##name##_read, \
|
||||
.open = il_dbgfs_open_file_generic, \
|
||||
.open = simple_open, \
|
||||
.llseek = generic_file_llseek, \
|
||||
};
|
||||
|
||||
@ -179,7 +173,7 @@ static const struct file_operations il_dbgfs_##name##_ops = { \
|
||||
DEBUGFS_WRITE_FUNC(name); \
|
||||
static const struct file_operations il_dbgfs_##name##_ops = { \
|
||||
.write = il_dbgfs_##name##_write, \
|
||||
.open = il_dbgfs_open_file_generic, \
|
||||
.open = simple_open, \
|
||||
.llseek = generic_file_llseek, \
|
||||
};
|
||||
|
||||
@ -189,7 +183,7 @@ static const struct file_operations il_dbgfs_##name##_ops = { \
|
||||
static const struct file_operations il_dbgfs_##name##_ops = { \
|
||||
.write = il_dbgfs_##name##_write, \
|
||||
.read = il_dbgfs_##name##_read, \
|
||||
.open = il_dbgfs_open_file_generic, \
|
||||
.open = simple_open, \
|
||||
.llseek = generic_file_llseek, \
|
||||
};
|
||||
|
||||
|
@ -3083,11 +3083,6 @@ static void rs_free_sta(void *priv_r, struct ieee80211_sta *sta,
|
||||
}
|
||||
|
||||
#ifdef CONFIG_MAC80211_DEBUGFS
|
||||
static int open_file_generic(struct inode *inode, struct file *file)
|
||||
{
|
||||
file->private_data = inode->i_private;
|
||||
return 0;
|
||||
}
|
||||
static void rs_dbgfs_set_mcs(struct iwl_lq_sta *lq_sta,
|
||||
u32 *rate_n_flags, int index)
|
||||
{
|
||||
@ -3226,7 +3221,7 @@ static ssize_t rs_sta_dbgfs_scale_table_read(struct file *file,
|
||||
static const struct file_operations rs_sta_dbgfs_scale_table_ops = {
|
||||
.write = rs_sta_dbgfs_scale_table_write,
|
||||
.read = rs_sta_dbgfs_scale_table_read,
|
||||
.open = open_file_generic,
|
||||
.open = simple_open,
|
||||
.llseek = default_llseek,
|
||||
};
|
||||
static ssize_t rs_sta_dbgfs_stats_table_read(struct file *file,
|
||||
@ -3269,7 +3264,7 @@ static ssize_t rs_sta_dbgfs_stats_table_read(struct file *file,
|
||||
|
||||
static const struct file_operations rs_sta_dbgfs_stats_table_ops = {
|
||||
.read = rs_sta_dbgfs_stats_table_read,
|
||||
.open = open_file_generic,
|
||||
.open = simple_open,
|
||||
.llseek = default_llseek,
|
||||
};
|
||||
|
||||
@ -3295,7 +3290,7 @@ static ssize_t rs_sta_dbgfs_rate_scale_data_read(struct file *file,
|
||||
|
||||
static const struct file_operations rs_sta_dbgfs_rate_scale_data_ops = {
|
||||
.read = rs_sta_dbgfs_rate_scale_data_read,
|
||||
.open = open_file_generic,
|
||||
.open = simple_open,
|
||||
.llseek = default_llseek,
|
||||
};
|
||||
|
||||
|
@ -84,17 +84,11 @@ static ssize_t iwl_dbgfs_##name##_write(struct file *file, \
|
||||
size_t count, loff_t *ppos);
|
||||
|
||||
|
||||
static int iwl_dbgfs_open_file_generic(struct inode *inode, struct file *file)
|
||||
{
|
||||
file->private_data = inode->i_private;
|
||||
return 0;
|
||||
}
|
||||
|
||||
#define DEBUGFS_READ_FILE_OPS(name) \
|
||||
DEBUGFS_READ_FUNC(name); \
|
||||
static const struct file_operations iwl_dbgfs_##name##_ops = { \
|
||||
.read = iwl_dbgfs_##name##_read, \
|
||||
.open = iwl_dbgfs_open_file_generic, \
|
||||
.open = simple_open, \
|
||||
.llseek = generic_file_llseek, \
|
||||
};
|
||||
|
||||
@ -102,7 +96,7 @@ static const struct file_operations iwl_dbgfs_##name##_ops = { \
|
||||
DEBUGFS_WRITE_FUNC(name); \
|
||||
static const struct file_operations iwl_dbgfs_##name##_ops = { \
|
||||
.write = iwl_dbgfs_##name##_write, \
|
||||
.open = iwl_dbgfs_open_file_generic, \
|
||||
.open = simple_open, \
|
||||
.llseek = generic_file_llseek, \
|
||||
};
|
||||
|
||||
@ -113,7 +107,7 @@ static const struct file_operations iwl_dbgfs_##name##_ops = { \
|
||||
static const struct file_operations iwl_dbgfs_##name##_ops = { \
|
||||
.write = iwl_dbgfs_##name##_write, \
|
||||
.read = iwl_dbgfs_##name##_read, \
|
||||
.open = iwl_dbgfs_open_file_generic, \
|
||||
.open = simple_open, \
|
||||
.llseek = generic_file_llseek, \
|
||||
};
|
||||
|
||||
|
@ -1898,17 +1898,11 @@ static ssize_t iwl_dbgfs_##name##_write(struct file *file, \
|
||||
size_t count, loff_t *ppos);
|
||||
|
||||
|
||||
static int iwl_dbgfs_open_file_generic(struct inode *inode, struct file *file)
|
||||
{
|
||||
file->private_data = inode->i_private;
|
||||
return 0;
|
||||
}
|
||||
|
||||
#define DEBUGFS_READ_FILE_OPS(name) \
|
||||
DEBUGFS_READ_FUNC(name); \
|
||||
static const struct file_operations iwl_dbgfs_##name##_ops = { \
|
||||
.read = iwl_dbgfs_##name##_read, \
|
||||
.open = iwl_dbgfs_open_file_generic, \
|
||||
.open = simple_open, \
|
||||
.llseek = generic_file_llseek, \
|
||||
};
|
||||
|
||||
@ -1916,7 +1910,7 @@ static const struct file_operations iwl_dbgfs_##name##_ops = { \
|
||||
DEBUGFS_WRITE_FUNC(name); \
|
||||
static const struct file_operations iwl_dbgfs_##name##_ops = { \
|
||||
.write = iwl_dbgfs_##name##_write, \
|
||||
.open = iwl_dbgfs_open_file_generic, \
|
||||
.open = simple_open, \
|
||||
.llseek = generic_file_llseek, \
|
||||
};
|
||||
|
||||
@ -1926,7 +1920,7 @@ static const struct file_operations iwl_dbgfs_##name##_ops = { \
|
||||
static const struct file_operations iwl_dbgfs_##name##_ops = { \
|
||||
.write = iwl_dbgfs_##name##_write, \
|
||||
.read = iwl_dbgfs_##name##_read, \
|
||||
.open = iwl_dbgfs_open_file_generic, \
|
||||
.open = simple_open, \
|
||||
.llseek = generic_file_llseek, \
|
||||
};
|
||||
|
||||
|
@ -99,12 +99,6 @@ DEFINE_SIMPLE_ATTRIBUTE(fops_iwm_dbg_modules,
|
||||
iwm_debugfs_u32_read, iwm_debugfs_dbg_modules_write,
|
||||
"%llu\n");
|
||||
|
||||
static int iwm_generic_open(struct inode *inode, struct file *filp)
|
||||
{
|
||||
filp->private_data = inode->i_private;
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
static ssize_t iwm_debugfs_txq_read(struct file *filp, char __user *buffer,
|
||||
size_t count, loff_t *ppos)
|
||||
@ -401,28 +395,28 @@ out:
|
||||
|
||||
static const struct file_operations iwm_debugfs_txq_fops = {
|
||||
.owner = THIS_MODULE,
|
||||
.open = iwm_generic_open,
|
||||
.open = simple_open,
|
||||
.read = iwm_debugfs_txq_read,
|
||||
.llseek = default_llseek,
|
||||
};
|
||||
|
||||
static const struct file_operations iwm_debugfs_tx_credit_fops = {
|
||||
.owner = THIS_MODULE,
|
||||
.open = iwm_generic_open,
|
||||
.open = simple_open,
|
||||
.read = iwm_debugfs_tx_credit_read,
|
||||
.llseek = default_llseek,
|
||||
};
|
||||
|
||||
static const struct file_operations iwm_debugfs_rx_ticket_fops = {
|
||||
.owner = THIS_MODULE,
|
||||
.open = iwm_generic_open,
|
||||
.open = simple_open,
|
||||
.read = iwm_debugfs_rx_ticket_read,
|
||||
.llseek = default_llseek,
|
||||
};
|
||||
|
||||
static const struct file_operations iwm_debugfs_fw_err_fops = {
|
||||
.owner = THIS_MODULE,
|
||||
.open = iwm_generic_open,
|
||||
.open = simple_open,
|
||||
.read = iwm_debugfs_fw_err_read,
|
||||
.llseek = default_llseek,
|
||||
};
|
||||
|
@ -264,13 +264,6 @@ static int if_sdio_send_chunk(struct iwm_priv *iwm, u8 *buf, int count)
|
||||
return ret;
|
||||
}
|
||||
|
||||
/* debugfs hooks */
|
||||
static int iwm_debugfs_sdio_open(struct inode *inode, struct file *filp)
|
||||
{
|
||||
filp->private_data = inode->i_private;
|
||||
return 0;
|
||||
}
|
||||
|
||||
static ssize_t iwm_debugfs_sdio_read(struct file *filp, char __user *buffer,
|
||||
size_t count, loff_t *ppos)
|
||||
{
|
||||
@ -363,7 +356,7 @@ err:
|
||||
|
||||
static const struct file_operations iwm_debugfs_sdio_fops = {
|
||||
.owner = THIS_MODULE,
|
||||
.open = iwm_debugfs_sdio_open,
|
||||
.open = simple_open,
|
||||
.read = iwm_debugfs_sdio_read,
|
||||
.llseek = default_llseek,
|
||||
};
|
||||
|
@ -21,12 +21,6 @@ static char *szStates[] = {
|
||||
static void lbs_debug_init(struct lbs_private *priv);
|
||||
#endif
|
||||
|
||||
static int open_file_generic(struct inode *inode, struct file *file)
|
||||
{
|
||||
file->private_data = inode->i_private;
|
||||
return 0;
|
||||
}
|
||||
|
||||
static ssize_t write_file_dummy(struct file *file, const char __user *buf,
|
||||
size_t count, loff_t *ppos)
|
||||
{
|
||||
@ -696,7 +690,7 @@ out_unlock:
|
||||
|
||||
#define FOPS(fread, fwrite) { \
|
||||
.owner = THIS_MODULE, \
|
||||
.open = open_file_generic, \
|
||||
.open = simple_open, \
|
||||
.read = (fread), \
|
||||
.write = (fwrite), \
|
||||
.llseek = generic_file_llseek, \
|
||||
@ -962,7 +956,7 @@ static ssize_t lbs_debugfs_write(struct file *f, const char __user *buf,
|
||||
|
||||
static const struct file_operations lbs_debug_fops = {
|
||||
.owner = THIS_MODULE,
|
||||
.open = open_file_generic,
|
||||
.open = simple_open,
|
||||
.write = lbs_debugfs_write,
|
||||
.read = lbs_debugfs_read,
|
||||
.llseek = default_llseek,
|
||||
|
@ -139,18 +139,6 @@ static struct mwifiex_debug_data items[] = {
|
||||
|
||||
static int num_of_items = ARRAY_SIZE(items);
|
||||
|
||||
/*
|
||||
* Generic proc file open handler.
|
||||
*
|
||||
* This function is called every time a file is accessed for read or write.
|
||||
*/
|
||||
static int
|
||||
mwifiex_open_generic(struct inode *inode, struct file *file)
|
||||
{
|
||||
file->private_data = inode->i_private;
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
* Proc info file read handler.
|
||||
*
|
||||
@ -676,19 +664,19 @@ done:
|
||||
static const struct file_operations mwifiex_dfs_##name##_fops = { \
|
||||
.read = mwifiex_##name##_read, \
|
||||
.write = mwifiex_##name##_write, \
|
||||
.open = mwifiex_open_generic, \
|
||||
.open = simple_open, \
|
||||
};
|
||||
|
||||
#define MWIFIEX_DFS_FILE_READ_OPS(name) \
|
||||
static const struct file_operations mwifiex_dfs_##name##_fops = { \
|
||||
.read = mwifiex_##name##_read, \
|
||||
.open = mwifiex_open_generic, \
|
||||
.open = simple_open, \
|
||||
};
|
||||
|
||||
#define MWIFIEX_DFS_FILE_WRITE_OPS(name) \
|
||||
static const struct file_operations mwifiex_dfs_##name##_fops = { \
|
||||
.write = mwifiex_##name##_write, \
|
||||
.open = mwifiex_open_generic, \
|
||||
.open = simple_open, \
|
||||
};
|
||||
|
||||
|
||||
|
@ -47,7 +47,7 @@ static ssize_t name## _read(struct file *file, char __user *userbuf, \
|
||||
\
|
||||
static const struct file_operations name## _ops = { \
|
||||
.read = name## _read, \
|
||||
.open = wl1251_open_file_generic, \
|
||||
.open = simple_open, \
|
||||
.llseek = generic_file_llseek, \
|
||||
};
|
||||
|
||||
@ -84,7 +84,7 @@ static ssize_t sub## _ ##name## _read(struct file *file, \
|
||||
\
|
||||
static const struct file_operations sub## _ ##name## _ops = { \
|
||||
.read = sub## _ ##name## _read, \
|
||||
.open = wl1251_open_file_generic, \
|
||||
.open = simple_open, \
|
||||
.llseek = generic_file_llseek, \
|
||||
};
|
||||
|
||||
@ -117,12 +117,6 @@ out:
|
||||
mutex_unlock(&wl->mutex);
|
||||
}
|
||||
|
||||
static int wl1251_open_file_generic(struct inode *inode, struct file *file)
|
||||
{
|
||||
file->private_data = inode->i_private;
|
||||
return 0;
|
||||
}
|
||||
|
||||
DEBUGFS_FWSTATS_FILE(tx, internal_desc_overflow, 20, "%u");
|
||||
|
||||
DEBUGFS_FWSTATS_FILE(rx, out_of_mem, 20, "%u");
|
||||
@ -235,7 +229,7 @@ static ssize_t tx_queue_len_read(struct file *file, char __user *userbuf,
|
||||
|
||||
static const struct file_operations tx_queue_len_ops = {
|
||||
.read = tx_queue_len_read,
|
||||
.open = wl1251_open_file_generic,
|
||||
.open = simple_open,
|
||||
.llseek = generic_file_llseek,
|
||||
};
|
||||
|
||||
@ -257,7 +251,7 @@ static ssize_t tx_queue_status_read(struct file *file, char __user *userbuf,
|
||||
|
||||
static const struct file_operations tx_queue_status_ops = {
|
||||
.read = tx_queue_status_read,
|
||||
.open = wl1251_open_file_generic,
|
||||
.open = simple_open,
|
||||
.llseek = generic_file_llseek,
|
||||
};
|
||||
|
||||
|
@ -63,7 +63,7 @@ static ssize_t name## _read(struct file *file, char __user *userbuf, \
|
||||
\
|
||||
static const struct file_operations name## _ops = { \
|
||||
.read = name## _read, \
|
||||
.open = wl1271_open_file_generic, \
|
||||
.open = simple_open, \
|
||||
.llseek = generic_file_llseek, \
|
||||
};
|
||||
|
||||
@ -96,7 +96,7 @@ static ssize_t sub## _ ##name## _read(struct file *file, \
|
||||
\
|
||||
static const struct file_operations sub## _ ##name## _ops = { \
|
||||
.read = sub## _ ##name## _read, \
|
||||
.open = wl1271_open_file_generic, \
|
||||
.open = simple_open, \
|
||||
.llseek = generic_file_llseek, \
|
||||
};
|
||||
|
||||
@ -126,12 +126,6 @@ out:
|
||||
mutex_unlock(&wl->mutex);
|
||||
}
|
||||
|
||||
static int wl1271_open_file_generic(struct inode *inode, struct file *file)
|
||||
{
|
||||
file->private_data = inode->i_private;
|
||||
return 0;
|
||||
}
|
||||
|
||||
DEBUGFS_FWSTATS_FILE(tx, internal_desc_overflow, "%u");
|
||||
|
||||
DEBUGFS_FWSTATS_FILE(rx, out_of_mem, "%u");
|
||||
@ -243,7 +237,7 @@ static ssize_t tx_queue_len_read(struct file *file, char __user *userbuf,
|
||||
|
||||
static const struct file_operations tx_queue_len_ops = {
|
||||
.read = tx_queue_len_read,
|
||||
.open = wl1271_open_file_generic,
|
||||
.open = simple_open,
|
||||
.llseek = default_llseek,
|
||||
};
|
||||
|
||||
@ -289,7 +283,7 @@ static ssize_t gpio_power_write(struct file *file,
|
||||
static const struct file_operations gpio_power_ops = {
|
||||
.read = gpio_power_read,
|
||||
.write = gpio_power_write,
|
||||
.open = wl1271_open_file_generic,
|
||||
.open = simple_open,
|
||||
.llseek = default_llseek,
|
||||
};
|
||||
|
||||
@ -308,7 +302,7 @@ static ssize_t start_recovery_write(struct file *file,
|
||||
|
||||
static const struct file_operations start_recovery_ops = {
|
||||
.write = start_recovery_write,
|
||||
.open = wl1271_open_file_generic,
|
||||
.open = simple_open,
|
||||
.llseek = default_llseek,
|
||||
};
|
||||
|
||||
@ -372,7 +366,7 @@ out:
|
||||
static const struct file_operations dynamic_ps_timeout_ops = {
|
||||
.read = dynamic_ps_timeout_read,
|
||||
.write = dynamic_ps_timeout_write,
|
||||
.open = wl1271_open_file_generic,
|
||||
.open = simple_open,
|
||||
.llseek = default_llseek,
|
||||
};
|
||||
|
||||
@ -441,7 +435,7 @@ out:
|
||||
static const struct file_operations forced_ps_ops = {
|
||||
.read = forced_ps_read,
|
||||
.write = forced_ps_write,
|
||||
.open = wl1271_open_file_generic,
|
||||
.open = simple_open,
|
||||
.llseek = default_llseek,
|
||||
};
|
||||
|
||||
@ -483,7 +477,7 @@ static ssize_t split_scan_timeout_write(struct file *file,
|
||||
static const struct file_operations split_scan_timeout_ops = {
|
||||
.read = split_scan_timeout_read,
|
||||
.write = split_scan_timeout_write,
|
||||
.open = wl1271_open_file_generic,
|
||||
.open = simple_open,
|
||||
.llseek = default_llseek,
|
||||
};
|
||||
|
||||
@ -566,7 +560,7 @@ static ssize_t driver_state_read(struct file *file, char __user *user_buf,
|
||||
|
||||
static const struct file_operations driver_state_ops = {
|
||||
.read = driver_state_read,
|
||||
.open = wl1271_open_file_generic,
|
||||
.open = simple_open,
|
||||
.llseek = default_llseek,
|
||||
};
|
||||
|
||||
@ -675,7 +669,7 @@ static ssize_t vifs_state_read(struct file *file, char __user *user_buf,
|
||||
|
||||
static const struct file_operations vifs_state_ops = {
|
||||
.read = vifs_state_read,
|
||||
.open = wl1271_open_file_generic,
|
||||
.open = simple_open,
|
||||
.llseek = default_llseek,
|
||||
};
|
||||
|
||||
@ -733,7 +727,7 @@ static ssize_t dtim_interval_write(struct file *file,
|
||||
static const struct file_operations dtim_interval_ops = {
|
||||
.read = dtim_interval_read,
|
||||
.write = dtim_interval_write,
|
||||
.open = wl1271_open_file_generic,
|
||||
.open = simple_open,
|
||||
.llseek = default_llseek,
|
||||
};
|
||||
|
||||
@ -791,7 +785,7 @@ static ssize_t suspend_dtim_interval_write(struct file *file,
|
||||
static const struct file_operations suspend_dtim_interval_ops = {
|
||||
.read = suspend_dtim_interval_read,
|
||||
.write = suspend_dtim_interval_write,
|
||||
.open = wl1271_open_file_generic,
|
||||
.open = simple_open,
|
||||
.llseek = default_llseek,
|
||||
};
|
||||
|
||||
@ -849,7 +843,7 @@ static ssize_t beacon_interval_write(struct file *file,
|
||||
static const struct file_operations beacon_interval_ops = {
|
||||
.read = beacon_interval_read,
|
||||
.write = beacon_interval_write,
|
||||
.open = wl1271_open_file_generic,
|
||||
.open = simple_open,
|
||||
.llseek = default_llseek,
|
||||
};
|
||||
|
||||
@ -904,7 +898,7 @@ static ssize_t rx_streaming_interval_read(struct file *file,
|
||||
static const struct file_operations rx_streaming_interval_ops = {
|
||||
.read = rx_streaming_interval_read,
|
||||
.write = rx_streaming_interval_write,
|
||||
.open = wl1271_open_file_generic,
|
||||
.open = simple_open,
|
||||
.llseek = default_llseek,
|
||||
};
|
||||
|
||||
@ -959,7 +953,7 @@ static ssize_t rx_streaming_always_read(struct file *file,
|
||||
static const struct file_operations rx_streaming_always_ops = {
|
||||
.read = rx_streaming_always_read,
|
||||
.write = rx_streaming_always_write,
|
||||
.open = wl1271_open_file_generic,
|
||||
.open = simple_open,
|
||||
.llseek = default_llseek,
|
||||
};
|
||||
|
||||
@ -1003,7 +997,7 @@ out:
|
||||
|
||||
static const struct file_operations beacon_filtering_ops = {
|
||||
.write = beacon_filtering_write,
|
||||
.open = wl1271_open_file_generic,
|
||||
.open = simple_open,
|
||||
.llseek = default_llseek,
|
||||
};
|
||||
|
||||
|
@ -117,25 +117,17 @@ static ssize_t ulong_write_file(struct file *file, char const __user *buf, size_
|
||||
}
|
||||
|
||||
|
||||
static int default_open(struct inode *inode, struct file *filp)
|
||||
{
|
||||
if (inode->i_private)
|
||||
filp->private_data = inode->i_private;
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
static const struct file_operations ulong_fops = {
|
||||
.read = ulong_read_file,
|
||||
.write = ulong_write_file,
|
||||
.open = default_open,
|
||||
.open = simple_open,
|
||||
.llseek = default_llseek,
|
||||
};
|
||||
|
||||
|
||||
static const struct file_operations ulong_ro_fops = {
|
||||
.read = ulong_read_file,
|
||||
.open = default_open,
|
||||
.open = simple_open,
|
||||
.llseek = default_llseek,
|
||||
};
|
||||
|
||||
@ -187,7 +179,7 @@ static ssize_t atomic_read_file(struct file *file, char __user *buf, size_t coun
|
||||
|
||||
static const struct file_operations atomic_ro_fops = {
|
||||
.read = atomic_read_file,
|
||||
.open = default_open,
|
||||
.open = simple_open,
|
||||
.llseek = default_llseek,
|
||||
};
|
||||
|
||||
|
@ -50,16 +50,9 @@ static ssize_t rproc_trace_read(struct file *filp, char __user *userbuf,
|
||||
return simple_read_from_buffer(userbuf, count, ppos, trace->va, len);
|
||||
}
|
||||
|
||||
static int rproc_open_generic(struct inode *inode, struct file *file)
|
||||
{
|
||||
file->private_data = inode->i_private;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static const struct file_operations trace_rproc_ops = {
|
||||
.read = rproc_trace_read,
|
||||
.open = rproc_open_generic,
|
||||
.open = simple_open,
|
||||
.llseek = generic_file_llseek,
|
||||
};
|
||||
|
||||
@ -94,7 +87,7 @@ static ssize_t rproc_state_read(struct file *filp, char __user *userbuf,
|
||||
|
||||
static const struct file_operations rproc_state_ops = {
|
||||
.read = rproc_state_read,
|
||||
.open = rproc_open_generic,
|
||||
.open = simple_open,
|
||||
.llseek = generic_file_llseek,
|
||||
};
|
||||
|
||||
@ -114,7 +107,7 @@ static ssize_t rproc_name_read(struct file *filp, char __user *userbuf,
|
||||
|
||||
static const struct file_operations rproc_name_ops = {
|
||||
.read = rproc_name_read,
|
||||
.open = rproc_open_generic,
|
||||
.open = simple_open,
|
||||
.llseek = generic_file_llseek,
|
||||
};
|
||||
|
||||
|
@ -72,9 +72,9 @@ static int pm860x_rtc_alarm_irq_enable(struct device *dev, unsigned int enabled)
|
||||
struct pm860x_rtc_info *info = dev_get_drvdata(dev);
|
||||
|
||||
if (enabled)
|
||||
pm860x_set_bits(info->i2c, PM8607_RTC1, ALARM, ALARM);
|
||||
pm860x_set_bits(info->i2c, PM8607_RTC1, ALARM_EN, ALARM_EN);
|
||||
else
|
||||
pm860x_set_bits(info->i2c, PM8607_RTC1, ALARM, 0);
|
||||
pm860x_set_bits(info->i2c, PM8607_RTC1, ALARM_EN, 0);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -997,13 +997,6 @@ lpfc_debugfs_dumpDataDif_write(struct file *file, const char __user *buf,
|
||||
return nbytes;
|
||||
}
|
||||
|
||||
static int
|
||||
lpfc_debugfs_dif_err_open(struct inode *inode, struct file *file)
|
||||
{
|
||||
file->private_data = inode->i_private;
|
||||
return 0;
|
||||
}
|
||||
|
||||
static ssize_t
|
||||
lpfc_debugfs_dif_err_read(struct file *file, char __user *buf,
|
||||
size_t nbytes, loff_t *ppos)
|
||||
@ -3541,7 +3534,7 @@ static const struct file_operations lpfc_debugfs_op_dumpDif = {
|
||||
#undef lpfc_debugfs_op_dif_err
|
||||
static const struct file_operations lpfc_debugfs_op_dif_err = {
|
||||
.owner = THIS_MODULE,
|
||||
.open = lpfc_debugfs_dif_err_open,
|
||||
.open = simple_open,
|
||||
.llseek = lpfc_debugfs_lseek,
|
||||
.read = lpfc_debugfs_dif_err_read,
|
||||
.write = lpfc_debugfs_dif_err_write,
|
||||
|
@ -63,12 +63,6 @@ struct chip_data {
|
||||
};
|
||||
|
||||
#ifdef CONFIG_DEBUG_FS
|
||||
static int spi_show_regs_open(struct inode *inode, struct file *file)
|
||||
{
|
||||
file->private_data = inode->i_private;
|
||||
return 0;
|
||||
}
|
||||
|
||||
#define SPI_REGS_BUFSIZE 1024
|
||||
static ssize_t spi_show_regs(struct file *file, char __user *user_buf,
|
||||
size_t count, loff_t *ppos)
|
||||
@ -128,7 +122,7 @@ static ssize_t spi_show_regs(struct file *file, char __user *user_buf,
|
||||
|
||||
static const struct file_operations mrst_spi_regs_ops = {
|
||||
.owner = THIS_MODULE,
|
||||
.open = spi_show_regs_open,
|
||||
.open = simple_open,
|
||||
.read = spi_show_regs,
|
||||
.llseek = default_llseek,
|
||||
};
|
||||
|
@ -127,11 +127,6 @@ static inline void serial_out(struct uart_hsu_port *up, int offset, int value)
|
||||
|
||||
#define HSU_REGS_BUFSIZE 1024
|
||||
|
||||
static int hsu_show_regs_open(struct inode *inode, struct file *file)
|
||||
{
|
||||
file->private_data = inode->i_private;
|
||||
return 0;
|
||||
}
|
||||
|
||||
static ssize_t port_show_regs(struct file *file, char __user *user_buf,
|
||||
size_t count, loff_t *ppos)
|
||||
@ -231,14 +226,14 @@ static ssize_t dma_show_regs(struct file *file, char __user *user_buf,
|
||||
|
||||
static const struct file_operations port_regs_ops = {
|
||||
.owner = THIS_MODULE,
|
||||
.open = hsu_show_regs_open,
|
||||
.open = simple_open,
|
||||
.read = port_show_regs,
|
||||
.llseek = default_llseek,
|
||||
};
|
||||
|
||||
static const struct file_operations dma_regs_ops = {
|
||||
.owner = THIS_MODULE,
|
||||
.open = hsu_show_regs_open,
|
||||
.open = simple_open,
|
||||
.read = dma_show_regs,
|
||||
.llseek = default_llseek,
|
||||
};
|
||||
|
@ -304,11 +304,7 @@ static const int trigger_level_1[4] = { 1, 1, 1, 1 };
|
||||
#ifdef CONFIG_DEBUG_FS
|
||||
|
||||
#define PCH_REGS_BUFSIZE 1024
|
||||
static int pch_show_regs_open(struct inode *inode, struct file *file)
|
||||
{
|
||||
file->private_data = inode->i_private;
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
static ssize_t port_show_regs(struct file *file, char __user *user_buf,
|
||||
size_t count, loff_t *ppos)
|
||||
@ -362,7 +358,7 @@ static ssize_t port_show_regs(struct file *file, char __user *user_buf,
|
||||
|
||||
static const struct file_operations port_regs_ops = {
|
||||
.owner = THIS_MODULE,
|
||||
.open = pch_show_regs_open,
|
||||
.open = simple_open,
|
||||
.read = port_show_regs,
|
||||
.llseek = default_llseek,
|
||||
};
|
||||
|
@ -327,7 +327,7 @@ static void send_sig_all(int sig)
|
||||
if (is_global_init(p))
|
||||
continue;
|
||||
|
||||
force_sig(sig, p);
|
||||
do_send_sig_info(sig, SEND_SIG_FORCED, p, true);
|
||||
}
|
||||
read_unlock(&tasklist_lock);
|
||||
}
|
||||
|
@ -428,18 +428,10 @@ static loff_t default_file_lseek (struct file *file, loff_t offset, int orig)
|
||||
return retval;
|
||||
}
|
||||
|
||||
static int default_open (struct inode *inode, struct file *file)
|
||||
{
|
||||
if (inode->i_private)
|
||||
file->private_data = inode->i_private;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static const struct file_operations default_file_operations = {
|
||||
.read = default_read_file,
|
||||
.write = default_write_file,
|
||||
.open = default_open,
|
||||
.open = simple_open,
|
||||
.llseek = default_file_lseek,
|
||||
};
|
||||
|
||||
|
@ -352,7 +352,6 @@ static int debug_async_open(struct inode *, struct file *);
|
||||
static int debug_periodic_open(struct inode *, struct file *);
|
||||
static int debug_registers_open(struct inode *, struct file *);
|
||||
static int debug_async_open(struct inode *, struct file *);
|
||||
static int debug_lpm_open(struct inode *, struct file *);
|
||||
static ssize_t debug_lpm_read(struct file *file, char __user *user_buf,
|
||||
size_t count, loff_t *ppos);
|
||||
static ssize_t debug_lpm_write(struct file *file, const char __user *buffer,
|
||||
@ -385,7 +384,7 @@ static const struct file_operations debug_registers_fops = {
|
||||
};
|
||||
static const struct file_operations debug_lpm_fops = {
|
||||
.owner = THIS_MODULE,
|
||||
.open = debug_lpm_open,
|
||||
.open = simple_open,
|
||||
.read = debug_lpm_read,
|
||||
.write = debug_lpm_write,
|
||||
.release = debug_lpm_close,
|
||||
@ -970,12 +969,6 @@ static int debug_registers_open(struct inode *inode, struct file *file)
|
||||
return file->private_data ? 0 : -ENOMEM;
|
||||
}
|
||||
|
||||
static int debug_lpm_open(struct inode *inode, struct file *file)
|
||||
{
|
||||
file->private_data = inode->i_private;
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int debug_lpm_close(struct inode *inode, struct file *file)
|
||||
{
|
||||
return 0;
|
||||
|
@ -159,13 +159,6 @@ static int cmd_ie_rm(struct uwb_rc *rc, struct uwb_dbg_cmd_ie *ie_to_rm)
|
||||
return uwb_rc_ie_rm(rc, ie_to_rm->data[0]);
|
||||
}
|
||||
|
||||
static int command_open(struct inode *inode, struct file *file)
|
||||
{
|
||||
file->private_data = inode->i_private;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static ssize_t command_write(struct file *file, const char __user *buf,
|
||||
size_t len, loff_t *off)
|
||||
{
|
||||
@ -206,7 +199,7 @@ static ssize_t command_write(struct file *file, const char __user *buf,
|
||||
}
|
||||
|
||||
static const struct file_operations command_fops = {
|
||||
.open = command_open,
|
||||
.open = simple_open,
|
||||
.write = command_write,
|
||||
.read = NULL,
|
||||
.llseek = no_llseek,
|
||||
|
@ -245,6 +245,12 @@ config BACKLIGHT_DA903X
|
||||
If you have a LCD backlight connected to the WLED output of DA9030
|
||||
or DA9034 WLED output, say Y here to enable this driver.
|
||||
|
||||
config BACKLIGHT_DA9052
|
||||
tristate "Dialog DA9052/DA9053 WLED"
|
||||
depends on PMIC_DA9052
|
||||
help
|
||||
Enable the Backlight Driver for DA9052-BC and DA9053-AA/Bx PMICs.
|
||||
|
||||
config BACKLIGHT_MAX8925
|
||||
tristate "Backlight driver for MAX8925"
|
||||
depends on MFD_MAX8925
|
||||
|
@ -29,6 +29,7 @@ obj-$(CONFIG_BACKLIGHT_PROGEAR) += progear_bl.o
|
||||
obj-$(CONFIG_BACKLIGHT_CARILLO_RANCH) += cr_bllcd.o
|
||||
obj-$(CONFIG_BACKLIGHT_PWM) += pwm_bl.o
|
||||
obj-$(CONFIG_BACKLIGHT_DA903X) += da903x_bl.o
|
||||
obj-$(CONFIG_BACKLIGHT_DA9052) += da9052_bl.o
|
||||
obj-$(CONFIG_BACKLIGHT_MAX8925) += max8925_bl.o
|
||||
obj-$(CONFIG_BACKLIGHT_APPLE) += apple_bl.o
|
||||
obj-$(CONFIG_BACKLIGHT_TOSA) += tosa_bl.o
|
||||
|
187
drivers/video/backlight/da9052_bl.c
Normal file
187
drivers/video/backlight/da9052_bl.c
Normal file
@ -0,0 +1,187 @@
|
||||
/*
|
||||
* Backlight Driver for Dialog DA9052 PMICs
|
||||
*
|
||||
* Copyright(c) 2012 Dialog Semiconductor Ltd.
|
||||
*
|
||||
* Author: David Dajun Chen <dchen@diasemi.com>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
*/
|
||||
|
||||
#include <linux/backlight.h>
|
||||
#include <linux/delay.h>
|
||||
#include <linux/fb.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/platform_device.h>
|
||||
|
||||
#include <linux/mfd/da9052/da9052.h>
|
||||
#include <linux/mfd/da9052/reg.h>
|
||||
|
||||
#define DA9052_MAX_BRIGHTNESS 0xFF
|
||||
|
||||
enum {
|
||||
DA9052_WLEDS_OFF,
|
||||
DA9052_WLEDS_ON,
|
||||
};
|
||||
|
||||
enum {
|
||||
DA9052_TYPE_WLED1,
|
||||
DA9052_TYPE_WLED2,
|
||||
DA9052_TYPE_WLED3,
|
||||
};
|
||||
|
||||
static unsigned char wled_bank[] = {
|
||||
DA9052_LED1_CONF_REG,
|
||||
DA9052_LED2_CONF_REG,
|
||||
DA9052_LED3_CONF_REG,
|
||||
};
|
||||
|
||||
struct da9052_bl {
|
||||
struct da9052 *da9052;
|
||||
uint brightness;
|
||||
uint state;
|
||||
uint led_reg;
|
||||
};
|
||||
|
||||
static int da9052_adjust_wled_brightness(struct da9052_bl *wleds)
|
||||
{
|
||||
unsigned char boost_en;
|
||||
unsigned char i_sink;
|
||||
int ret;
|
||||
|
||||
boost_en = 0x3F;
|
||||
i_sink = 0xFF;
|
||||
if (wleds->state == DA9052_WLEDS_OFF) {
|
||||
boost_en = 0x00;
|
||||
i_sink = 0x00;
|
||||
}
|
||||
|
||||
ret = da9052_reg_write(wleds->da9052, DA9052_BOOST_REG, boost_en);
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
|
||||
ret = da9052_reg_write(wleds->da9052, DA9052_LED_CONT_REG, i_sink);
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
|
||||
ret = da9052_reg_write(wleds->da9052, wled_bank[wleds->led_reg], 0x0);
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
|
||||
msleep(10);
|
||||
|
||||
if (wleds->brightness) {
|
||||
ret = da9052_reg_write(wleds->da9052, wled_bank[wleds->led_reg],
|
||||
wleds->brightness);
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int da9052_backlight_update_status(struct backlight_device *bl)
|
||||
{
|
||||
int brightness = bl->props.brightness;
|
||||
struct da9052_bl *wleds = bl_get_data(bl);
|
||||
|
||||
wleds->brightness = brightness;
|
||||
wleds->state = DA9052_WLEDS_ON;
|
||||
|
||||
return da9052_adjust_wled_brightness(wleds);
|
||||
}
|
||||
|
||||
static int da9052_backlight_get_brightness(struct backlight_device *bl)
|
||||
{
|
||||
struct da9052_bl *wleds = bl_get_data(bl);
|
||||
|
||||
return wleds->brightness;
|
||||
}
|
||||
|
||||
static const struct backlight_ops da9052_backlight_ops = {
|
||||
.update_status = da9052_backlight_update_status,
|
||||
.get_brightness = da9052_backlight_get_brightness,
|
||||
};
|
||||
|
||||
static int da9052_backlight_probe(struct platform_device *pdev)
|
||||
{
|
||||
struct backlight_device *bl;
|
||||
struct backlight_properties props;
|
||||
struct da9052_bl *wleds;
|
||||
|
||||
wleds = devm_kzalloc(&pdev->dev, sizeof(struct da9052_bl), GFP_KERNEL);
|
||||
if (!wleds)
|
||||
return -ENOMEM;
|
||||
|
||||
wleds->da9052 = dev_get_drvdata(pdev->dev.parent);
|
||||
wleds->brightness = 0;
|
||||
wleds->led_reg = platform_get_device_id(pdev)->driver_data;
|
||||
wleds->state = DA9052_WLEDS_OFF;
|
||||
|
||||
props.type = BACKLIGHT_RAW;
|
||||
props.max_brightness = DA9052_MAX_BRIGHTNESS;
|
||||
|
||||
bl = backlight_device_register(pdev->name, wleds->da9052->dev, wleds,
|
||||
&da9052_backlight_ops, &props);
|
||||
if (IS_ERR(bl)) {
|
||||
dev_err(&pdev->dev, "Failed to register backlight\n");
|
||||
devm_kfree(&pdev->dev, wleds);
|
||||
return PTR_ERR(bl);
|
||||
}
|
||||
|
||||
bl->props.max_brightness = DA9052_MAX_BRIGHTNESS;
|
||||
bl->props.brightness = 0;
|
||||
platform_set_drvdata(pdev, bl);
|
||||
|
||||
return da9052_adjust_wled_brightness(wleds);
|
||||
}
|
||||
|
||||
static int da9052_backlight_remove(struct platform_device *pdev)
|
||||
{
|
||||
struct backlight_device *bl = platform_get_drvdata(pdev);
|
||||
struct da9052_bl *wleds = bl_get_data(bl);
|
||||
|
||||
wleds->brightness = 0;
|
||||
wleds->state = DA9052_WLEDS_OFF;
|
||||
da9052_adjust_wled_brightness(wleds);
|
||||
backlight_device_unregister(bl);
|
||||
devm_kfree(&pdev->dev, wleds);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static struct platform_device_id da9052_wled_ids[] = {
|
||||
{
|
||||
.name = "da9052-wled1",
|
||||
.driver_data = DA9052_TYPE_WLED1,
|
||||
},
|
||||
{
|
||||
.name = "da9052-wled2",
|
||||
.driver_data = DA9052_TYPE_WLED2,
|
||||
},
|
||||
{
|
||||
.name = "da9052-wled3",
|
||||
.driver_data = DA9052_TYPE_WLED3,
|
||||
},
|
||||
};
|
||||
|
||||
static struct platform_driver da9052_wled_driver = {
|
||||
.probe = da9052_backlight_probe,
|
||||
.remove = da9052_backlight_remove,
|
||||
.id_table = da9052_wled_ids,
|
||||
.driver = {
|
||||
.name = "da9052-wled",
|
||||
.owner = THIS_MODULE,
|
||||
},
|
||||
};
|
||||
|
||||
module_platform_driver(da9052_wled_driver);
|
||||
|
||||
MODULE_AUTHOR("David Dajun Chen <dchen@diasemi.com>");
|
||||
MODULE_DESCRIPTION("Backlight driver for DA9052 PMIC");
|
||||
MODULE_LICENSE("GPL");
|
||||
MODULE_ALIAS("platform:da9052-backlight");
|
@ -33,18 +33,10 @@ static ssize_t default_write_file(struct file *file, const char __user *buf,
|
||||
return count;
|
||||
}
|
||||
|
||||
static int default_open(struct inode *inode, struct file *file)
|
||||
{
|
||||
if (inode->i_private)
|
||||
file->private_data = inode->i_private;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
const struct file_operations debugfs_file_operations = {
|
||||
.read = default_read_file,
|
||||
.write = default_write_file,
|
||||
.open = default_open,
|
||||
.open = simple_open,
|
||||
.llseek = noop_llseek,
|
||||
};
|
||||
|
||||
@ -447,7 +439,7 @@ static ssize_t write_file_bool(struct file *file, const char __user *user_buf,
|
||||
static const struct file_operations fops_bool = {
|
||||
.read = read_file_bool,
|
||||
.write = write_file_bool,
|
||||
.open = default_open,
|
||||
.open = simple_open,
|
||||
.llseek = default_llseek,
|
||||
};
|
||||
|
||||
@ -492,7 +484,7 @@ static ssize_t read_file_blob(struct file *file, char __user *user_buf,
|
||||
|
||||
static const struct file_operations fops_blob = {
|
||||
.read = read_file_blob,
|
||||
.open = default_open,
|
||||
.open = simple_open,
|
||||
.llseek = default_llseek,
|
||||
};
|
||||
|
||||
|
@ -609,13 +609,6 @@ static const struct file_operations format3_fops = {
|
||||
/*
|
||||
* dump lkb's on the ls_waiters list
|
||||
*/
|
||||
|
||||
static int waiters_open(struct inode *inode, struct file *file)
|
||||
{
|
||||
file->private_data = inode->i_private;
|
||||
return 0;
|
||||
}
|
||||
|
||||
static ssize_t waiters_read(struct file *file, char __user *userbuf,
|
||||
size_t count, loff_t *ppos)
|
||||
{
|
||||
@ -644,7 +637,7 @@ static ssize_t waiters_read(struct file *file, char __user *userbuf,
|
||||
|
||||
static const struct file_operations waiters_fops = {
|
||||
.owner = THIS_MODULE,
|
||||
.open = waiters_open,
|
||||
.open = simple_open,
|
||||
.read = waiters_read,
|
||||
.llseek = default_llseek,
|
||||
};
|
||||
|
@ -1031,7 +1031,6 @@ static int __init init_hugetlbfs_fs(void)
|
||||
}
|
||||
|
||||
error = PTR_ERR(vfsmount);
|
||||
unregister_filesystem(&hugetlbfs_fs_type);
|
||||
|
||||
out:
|
||||
kmem_cache_destroy(hugetlbfs_inode_cachep);
|
||||
|
@ -264,6 +264,13 @@ Enomem:
|
||||
return ERR_PTR(-ENOMEM);
|
||||
}
|
||||
|
||||
int simple_open(struct inode *inode, struct file *file)
|
||||
{
|
||||
if (inode->i_private)
|
||||
file->private_data = inode->i_private;
|
||||
return 0;
|
||||
}
|
||||
|
||||
int simple_link(struct dentry *old_dentry, struct inode *dir, struct dentry *dentry)
|
||||
{
|
||||
struct inode *inode = old_dentry->d_inode;
|
||||
@ -984,6 +991,7 @@ EXPORT_SYMBOL(simple_dir_operations);
|
||||
EXPORT_SYMBOL(simple_empty);
|
||||
EXPORT_SYMBOL(simple_fill_super);
|
||||
EXPORT_SYMBOL(simple_getattr);
|
||||
EXPORT_SYMBOL(simple_open);
|
||||
EXPORT_SYMBOL(simple_link);
|
||||
EXPORT_SYMBOL(simple_lookup);
|
||||
EXPORT_SYMBOL(simple_pin_fs);
|
||||
|
@ -115,12 +115,13 @@ static struct dentry *proc_mount(struct file_system_type *fs_type,
|
||||
if (IS_ERR(sb))
|
||||
return ERR_CAST(sb);
|
||||
|
||||
if (!proc_parse_options(options, ns)) {
|
||||
deactivate_locked_super(sb);
|
||||
return ERR_PTR(-EINVAL);
|
||||
}
|
||||
|
||||
if (!sb->s_root) {
|
||||
sb->s_flags = flags;
|
||||
if (!proc_parse_options(options, ns)) {
|
||||
deactivate_locked_super(sb);
|
||||
return ERR_PTR(-EINVAL);
|
||||
}
|
||||
err = proc_fill_super(sb);
|
||||
if (err) {
|
||||
deactivate_locked_super(sb);
|
||||
|
@ -52,12 +52,6 @@ struct pstore_private {
|
||||
char data[];
|
||||
};
|
||||
|
||||
static int pstore_file_open(struct inode *inode, struct file *file)
|
||||
{
|
||||
file->private_data = inode->i_private;
|
||||
return 0;
|
||||
}
|
||||
|
||||
static ssize_t pstore_file_read(struct file *file, char __user *userbuf,
|
||||
size_t count, loff_t *ppos)
|
||||
{
|
||||
@ -67,7 +61,7 @@ static ssize_t pstore_file_read(struct file *file, char __user *userbuf,
|
||||
}
|
||||
|
||||
static const struct file_operations pstore_file_operations = {
|
||||
.open = pstore_file_open,
|
||||
.open = simple_open,
|
||||
.read = pstore_file_read,
|
||||
.llseek = default_llseek,
|
||||
};
|
||||
|
40
fs/xattr.c
40
fs/xattr.c
@ -19,8 +19,9 @@
|
||||
#include <linux/export.h>
|
||||
#include <linux/fsnotify.h>
|
||||
#include <linux/audit.h>
|
||||
#include <asm/uaccess.h>
|
||||
#include <linux/vmalloc.h>
|
||||
|
||||
#include <asm/uaccess.h>
|
||||
|
||||
/*
|
||||
* Check permissions for extended attribute access. This is a bit complicated
|
||||
@ -320,6 +321,7 @@ setxattr(struct dentry *d, const char __user *name, const void __user *value,
|
||||
{
|
||||
int error;
|
||||
void *kvalue = NULL;
|
||||
void *vvalue = NULL; /* If non-NULL, we used vmalloc() */
|
||||
char kname[XATTR_NAME_MAX + 1];
|
||||
|
||||
if (flags & ~(XATTR_CREATE|XATTR_REPLACE))
|
||||
@ -334,13 +336,25 @@ setxattr(struct dentry *d, const char __user *name, const void __user *value,
|
||||
if (size) {
|
||||
if (size > XATTR_SIZE_MAX)
|
||||
return -E2BIG;
|
||||
kvalue = memdup_user(value, size);
|
||||
if (IS_ERR(kvalue))
|
||||
return PTR_ERR(kvalue);
|
||||
kvalue = kmalloc(size, GFP_KERNEL | __GFP_NOWARN);
|
||||
if (!kvalue) {
|
||||
vvalue = vmalloc(size);
|
||||
if (!vvalue)
|
||||
return -ENOMEM;
|
||||
kvalue = vvalue;
|
||||
}
|
||||
if (copy_from_user(kvalue, value, size)) {
|
||||
error = -EFAULT;
|
||||
goto out;
|
||||
}
|
||||
}
|
||||
|
||||
error = vfs_setxattr(d, kname, kvalue, size, flags);
|
||||
kfree(kvalue);
|
||||
out:
|
||||
if (vvalue)
|
||||
vfree(vvalue);
|
||||
else
|
||||
kfree(kvalue);
|
||||
return error;
|
||||
}
|
||||
|
||||
@ -492,13 +506,18 @@ listxattr(struct dentry *d, char __user *list, size_t size)
|
||||
{
|
||||
ssize_t error;
|
||||
char *klist = NULL;
|
||||
char *vlist = NULL; /* If non-NULL, we used vmalloc() */
|
||||
|
||||
if (size) {
|
||||
if (size > XATTR_LIST_MAX)
|
||||
size = XATTR_LIST_MAX;
|
||||
klist = kmalloc(size, GFP_KERNEL);
|
||||
if (!klist)
|
||||
return -ENOMEM;
|
||||
klist = kmalloc(size, __GFP_NOWARN | GFP_KERNEL);
|
||||
if (!klist) {
|
||||
vlist = vmalloc(size);
|
||||
if (!vlist)
|
||||
return -ENOMEM;
|
||||
klist = vlist;
|
||||
}
|
||||
}
|
||||
|
||||
error = vfs_listxattr(d, klist, size);
|
||||
@ -510,7 +529,10 @@ listxattr(struct dentry *d, char __user *list, size_t size)
|
||||
than XATTR_LIST_MAX bytes. Not possible. */
|
||||
error = -E2BIG;
|
||||
}
|
||||
kfree(klist);
|
||||
if (vlist)
|
||||
vfree(vlist);
|
||||
else
|
||||
kfree(klist);
|
||||
return error;
|
||||
}
|
||||
|
||||
|
@ -2511,6 +2511,7 @@ extern int dcache_readdir(struct file *, void *, filldir_t);
|
||||
extern int simple_setattr(struct dentry *, struct iattr *);
|
||||
extern int simple_getattr(struct vfsmount *, struct dentry *, struct kstat *);
|
||||
extern int simple_statfs(struct dentry *, struct kstatfs *);
|
||||
extern int simple_open(struct inode *inode, struct file *file);
|
||||
extern int simple_link(struct dentry *, struct inode *, struct dentry *);
|
||||
extern int simple_unlink(struct inode *, struct dentry *);
|
||||
extern int simple_rmdir(struct inode *, struct dentry *);
|
||||
|
@ -305,6 +305,13 @@ static inline int mem_cgroup_swappiness(struct mem_cgroup *mem)
|
||||
return vm_swappiness;
|
||||
}
|
||||
#endif
|
||||
#ifdef CONFIG_CGROUP_MEM_RES_CTLR_SWAP
|
||||
extern void mem_cgroup_uncharge_swap(swp_entry_t ent);
|
||||
#else
|
||||
static inline void mem_cgroup_uncharge_swap(swp_entry_t ent)
|
||||
{
|
||||
}
|
||||
#endif
|
||||
#ifdef CONFIG_SWAP
|
||||
/* linux/mm/page_io.c */
|
||||
extern int swap_readpage(struct page *);
|
||||
@ -375,13 +382,6 @@ mem_cgroup_uncharge_swapcache(struct page *page, swp_entry_t ent, bool swapout)
|
||||
{
|
||||
}
|
||||
#endif
|
||||
#ifdef CONFIG_CGROUP_MEM_RES_CTLR_SWAP
|
||||
extern void mem_cgroup_uncharge_swap(swp_entry_t ent);
|
||||
#else
|
||||
static inline void mem_cgroup_uncharge_swap(swp_entry_t ent)
|
||||
{
|
||||
}
|
||||
#endif
|
||||
|
||||
#else /* CONFIG_SWAP */
|
||||
|
||||
|
@ -311,13 +311,6 @@ int blk_trace_remove(struct request_queue *q)
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(blk_trace_remove);
|
||||
|
||||
static int blk_dropped_open(struct inode *inode, struct file *filp)
|
||||
{
|
||||
filp->private_data = inode->i_private;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static ssize_t blk_dropped_read(struct file *filp, char __user *buffer,
|
||||
size_t count, loff_t *ppos)
|
||||
{
|
||||
@ -331,18 +324,11 @@ static ssize_t blk_dropped_read(struct file *filp, char __user *buffer,
|
||||
|
||||
static const struct file_operations blk_dropped_fops = {
|
||||
.owner = THIS_MODULE,
|
||||
.open = blk_dropped_open,
|
||||
.open = simple_open,
|
||||
.read = blk_dropped_read,
|
||||
.llseek = default_llseek,
|
||||
};
|
||||
|
||||
static int blk_msg_open(struct inode *inode, struct file *filp)
|
||||
{
|
||||
filp->private_data = inode->i_private;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static ssize_t blk_msg_write(struct file *filp, const char __user *buffer,
|
||||
size_t count, loff_t *ppos)
|
||||
{
|
||||
@ -371,7 +357,7 @@ static ssize_t blk_msg_write(struct file *filp, const char __user *buffer,
|
||||
|
||||
static const struct file_operations blk_msg_fops = {
|
||||
.owner = THIS_MODULE,
|
||||
.open = blk_msg_open,
|
||||
.open = simple_open,
|
||||
.write = blk_msg_write,
|
||||
.llseek = noop_llseek,
|
||||
};
|
||||
|
@ -15,12 +15,6 @@
|
||||
#include "rate.h"
|
||||
#include "debugfs.h"
|
||||
|
||||
int mac80211_open_file_generic(struct inode *inode, struct file *file)
|
||||
{
|
||||
file->private_data = inode->i_private;
|
||||
return 0;
|
||||
}
|
||||
|
||||
#define DEBUGFS_FORMAT_BUFFER_SIZE 100
|
||||
|
||||
int mac80211_format_buffer(char __user *userbuf, size_t count,
|
||||
@ -50,7 +44,7 @@ static ssize_t name## _read(struct file *file, char __user *userbuf, \
|
||||
#define DEBUGFS_READONLY_FILE_OPS(name) \
|
||||
static const struct file_operations name## _ops = { \
|
||||
.read = name## _read, \
|
||||
.open = mac80211_open_file_generic, \
|
||||
.open = simple_open, \
|
||||
.llseek = generic_file_llseek, \
|
||||
};
|
||||
|
||||
@ -93,7 +87,7 @@ static ssize_t reset_write(struct file *file, const char __user *user_buf,
|
||||
|
||||
static const struct file_operations reset_ops = {
|
||||
.write = reset_write,
|
||||
.open = mac80211_open_file_generic,
|
||||
.open = simple_open,
|
||||
.llseek = noop_llseek,
|
||||
};
|
||||
|
||||
@ -254,7 +248,7 @@ static ssize_t stats_ ##name## _read(struct file *file, \
|
||||
\
|
||||
static const struct file_operations stats_ ##name## _ops = { \
|
||||
.read = stats_ ##name## _read, \
|
||||
.open = mac80211_open_file_generic, \
|
||||
.open = simple_open, \
|
||||
.llseek = generic_file_llseek, \
|
||||
};
|
||||
|
||||
|
@ -3,7 +3,6 @@
|
||||
|
||||
#ifdef CONFIG_MAC80211_DEBUGFS
|
||||
extern void debugfs_hw_add(struct ieee80211_local *local);
|
||||
extern int mac80211_open_file_generic(struct inode *inode, struct file *file);
|
||||
extern int mac80211_format_buffer(char __user *userbuf, size_t count,
|
||||
loff_t *ppos, char *fmt, ...);
|
||||
#else
|
||||
|
@ -30,7 +30,7 @@ static ssize_t key_##name##_read(struct file *file, \
|
||||
#define KEY_OPS(name) \
|
||||
static const struct file_operations key_ ##name## _ops = { \
|
||||
.read = key_##name##_read, \
|
||||
.open = mac80211_open_file_generic, \
|
||||
.open = simple_open, \
|
||||
.llseek = generic_file_llseek, \
|
||||
}
|
||||
|
||||
@ -45,7 +45,7 @@ static const struct file_operations key_ ##name## _ops = { \
|
||||
#define KEY_CONF_OPS(name) \
|
||||
static const struct file_operations key_ ##name## _ops = { \
|
||||
.read = key_conf_##name##_read, \
|
||||
.open = mac80211_open_file_generic, \
|
||||
.open = simple_open, \
|
||||
.llseek = generic_file_llseek, \
|
||||
}
|
||||
|
||||
|
@ -135,7 +135,7 @@ static ssize_t ieee80211_if_read_##name(struct file *file, \
|
||||
static const struct file_operations name##_ops = { \
|
||||
.read = ieee80211_if_read_##name, \
|
||||
.write = (_write), \
|
||||
.open = mac80211_open_file_generic, \
|
||||
.open = simple_open, \
|
||||
.llseek = generic_file_llseek, \
|
||||
}
|
||||
|
||||
|
@ -33,7 +33,7 @@ static ssize_t sta_ ##name## _read(struct file *file, \
|
||||
#define STA_OPS(name) \
|
||||
static const struct file_operations sta_ ##name## _ops = { \
|
||||
.read = sta_##name##_read, \
|
||||
.open = mac80211_open_file_generic, \
|
||||
.open = simple_open, \
|
||||
.llseek = generic_file_llseek, \
|
||||
}
|
||||
|
||||
@ -41,7 +41,7 @@ static const struct file_operations sta_ ##name## _ops = { \
|
||||
static const struct file_operations sta_ ##name## _ops = { \
|
||||
.read = sta_##name##_read, \
|
||||
.write = sta_##name##_write, \
|
||||
.open = mac80211_open_file_generic, \
|
||||
.open = simple_open, \
|
||||
.llseek = generic_file_llseek, \
|
||||
}
|
||||
|
||||
|
@ -145,7 +145,7 @@ static ssize_t rcname_read(struct file *file, char __user *userbuf,
|
||||
|
||||
static const struct file_operations rcname_ops = {
|
||||
.read = rcname_read,
|
||||
.open = mac80211_open_file_generic,
|
||||
.open = simple_open,
|
||||
.llseek = default_llseek,
|
||||
};
|
||||
#endif
|
||||
|
@ -13,12 +13,6 @@
|
||||
#include "core.h"
|
||||
#include "debugfs.h"
|
||||
|
||||
static int cfg80211_open_file_generic(struct inode *inode, struct file *file)
|
||||
{
|
||||
file->private_data = inode->i_private;
|
||||
return 0;
|
||||
}
|
||||
|
||||
#define DEBUGFS_READONLY_FILE(name, buflen, fmt, value...) \
|
||||
static ssize_t name## _read(struct file *file, char __user *userbuf, \
|
||||
size_t count, loff_t *ppos) \
|
||||
@ -33,7 +27,7 @@ static ssize_t name## _read(struct file *file, char __user *userbuf, \
|
||||
\
|
||||
static const struct file_operations name## _ops = { \
|
||||
.read = name## _read, \
|
||||
.open = cfg80211_open_file_generic, \
|
||||
.open = simple_open, \
|
||||
.llseek = generic_file_llseek, \
|
||||
};
|
||||
|
||||
@ -102,7 +96,7 @@ static ssize_t ht40allow_map_read(struct file *file,
|
||||
|
||||
static const struct file_operations ht40allow_map_ops = {
|
||||
.read = ht40allow_map_read,
|
||||
.open = cfg80211_open_file_generic,
|
||||
.open = simple_open,
|
||||
.llseek = default_llseek,
|
||||
};
|
||||
|
||||
|
70
scripts/coccinelle/api/simple_open.cocci
Normal file
70
scripts/coccinelle/api/simple_open.cocci
Normal file
@ -0,0 +1,70 @@
|
||||
/// This removes an open coded simple_open() function
|
||||
/// and replaces file operations references to the function
|
||||
/// with simple_open() instead.
|
||||
///
|
||||
// Confidence: High
|
||||
// Comments:
|
||||
// Options: -no_includes -include_headers
|
||||
|
||||
virtual patch
|
||||
virtual report
|
||||
|
||||
@ open depends on patch @
|
||||
identifier open_f != simple_open;
|
||||
identifier i, f;
|
||||
@@
|
||||
-int open_f(struct inode *i, struct file *f)
|
||||
-{
|
||||
(
|
||||
-if (i->i_private)
|
||||
-f->private_data = i->i_private;
|
||||
|
|
||||
-f->private_data = i->i_private;
|
||||
)
|
||||
-return 0;
|
||||
-}
|
||||
|
||||
@ has_open depends on open @
|
||||
identifier fops;
|
||||
identifier open.open_f;
|
||||
@@
|
||||
struct file_operations fops = {
|
||||
...,
|
||||
-.open = open_f,
|
||||
+.open = simple_open,
|
||||
...
|
||||
};
|
||||
|
||||
@ openr depends on report @
|
||||
identifier open_f != simple_open;
|
||||
identifier i, f;
|
||||
position p;
|
||||
@@
|
||||
int open_f@p(struct inode *i, struct file *f)
|
||||
{
|
||||
(
|
||||
if (i->i_private)
|
||||
f->private_data = i->i_private;
|
||||
|
|
||||
f->private_data = i->i_private;
|
||||
)
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ has_openr depends on openr @
|
||||
identifier fops;
|
||||
identifier openr.open_f;
|
||||
position p;
|
||||
@@
|
||||
struct file_operations fops = {
|
||||
...,
|
||||
.open = open_f@p,
|
||||
...
|
||||
};
|
||||
|
||||
@script:python@
|
||||
pf << openr.p;
|
||||
ps << has_openr.p;
|
||||
@@
|
||||
|
||||
coccilib.report.print_report(pf[0],"WARNING opportunity for simple_open, see also structure on line %s"%(ps[0].line))
|
@ -40,12 +40,6 @@ static void __iomem *audmux_base;
|
||||
#ifdef CONFIG_DEBUG_FS
|
||||
static struct dentry *audmux_debugfs_root;
|
||||
|
||||
static int audmux_open_file(struct inode *inode, struct file *file)
|
||||
{
|
||||
file->private_data = inode->i_private;
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* There is an annoying discontinuity in the SSI numbering with regard
|
||||
* to the Linux number of the devices */
|
||||
static const char *audmux_port_string(int port)
|
||||
@ -142,7 +136,7 @@ static ssize_t audmux_read_file(struct file *file, char __user *user_buf,
|
||||
}
|
||||
|
||||
static const struct file_operations audmux_debugfs_fops = {
|
||||
.open = audmux_open_file,
|
||||
.open = simple_open,
|
||||
.read = audmux_read_file,
|
||||
.llseek = default_llseek,
|
||||
};
|
||||
|
@ -201,12 +201,6 @@ static ssize_t pmdown_time_set(struct device *dev,
|
||||
static DEVICE_ATTR(pmdown_time, 0644, pmdown_time_show, pmdown_time_set);
|
||||
|
||||
#ifdef CONFIG_DEBUG_FS
|
||||
static int codec_reg_open_file(struct inode *inode, struct file *file)
|
||||
{
|
||||
file->private_data = inode->i_private;
|
||||
return 0;
|
||||
}
|
||||
|
||||
static ssize_t codec_reg_read_file(struct file *file, char __user *user_buf,
|
||||
size_t count, loff_t *ppos)
|
||||
{
|
||||
@ -264,7 +258,7 @@ static ssize_t codec_reg_write_file(struct file *file,
|
||||
}
|
||||
|
||||
static const struct file_operations codec_reg_fops = {
|
||||
.open = codec_reg_open_file,
|
||||
.open = simple_open,
|
||||
.read = codec_reg_read_file,
|
||||
.write = codec_reg_write_file,
|
||||
.llseek = default_llseek,
|
||||
|
@ -1544,12 +1544,6 @@ static int dapm_power_widgets(struct snd_soc_dapm_context *dapm, int event)
|
||||
}
|
||||
|
||||
#ifdef CONFIG_DEBUG_FS
|
||||
static int dapm_widget_power_open_file(struct inode *inode, struct file *file)
|
||||
{
|
||||
file->private_data = inode->i_private;
|
||||
return 0;
|
||||
}
|
||||
|
||||
static ssize_t dapm_widget_power_read_file(struct file *file,
|
||||
char __user *user_buf,
|
||||
size_t count, loff_t *ppos)
|
||||
@ -1613,17 +1607,11 @@ static ssize_t dapm_widget_power_read_file(struct file *file,
|
||||
}
|
||||
|
||||
static const struct file_operations dapm_widget_power_fops = {
|
||||
.open = dapm_widget_power_open_file,
|
||||
.open = simple_open,
|
||||
.read = dapm_widget_power_read_file,
|
||||
.llseek = default_llseek,
|
||||
};
|
||||
|
||||
static int dapm_bias_open_file(struct inode *inode, struct file *file)
|
||||
{
|
||||
file->private_data = inode->i_private;
|
||||
return 0;
|
||||
}
|
||||
|
||||
static ssize_t dapm_bias_read_file(struct file *file, char __user *user_buf,
|
||||
size_t count, loff_t *ppos)
|
||||
{
|
||||
@ -1654,7 +1642,7 @@ static ssize_t dapm_bias_read_file(struct file *file, char __user *user_buf,
|
||||
}
|
||||
|
||||
static const struct file_operations dapm_bias_fops = {
|
||||
.open = dapm_bias_open_file,
|
||||
.open = simple_open,
|
||||
.read = dapm_bias_read_file,
|
||||
.llseek = default_llseek,
|
||||
};
|
||||
|
Loading…
Reference in New Issue
Block a user