[POWERPC] Fix ppc64's writing to struct file_operations
In preparation for marking file_operations as const. Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org> Acked-by: Arjan van de Ven <arjan@infradead.org> Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Paul Mackerras <paulus@samba.org>
This commit is contained in:
parent
f8b93a9023
commit
0524aad7b8
|
@ -439,6 +439,10 @@ static ssize_t lparcfg_write(struct file *file, const char __user * buf,
|
||||||
|
|
||||||
ssize_t retval = -ENOMEM;
|
ssize_t retval = -ENOMEM;
|
||||||
|
|
||||||
|
if (!firmware_has_feature(FW_FEATURE_SPLPAR) ||
|
||||||
|
firmware_has_feature(FW_FEATURE_ISERIES))
|
||||||
|
return -EINVAL;
|
||||||
|
|
||||||
kbuf = kmalloc(count, GFP_KERNEL);
|
kbuf = kmalloc(count, GFP_KERNEL);
|
||||||
if (!kbuf)
|
if (!kbuf)
|
||||||
goto out;
|
goto out;
|
||||||
|
@ -517,7 +521,7 @@ static int pseries_lparcfg_data(struct seq_file *m, void *v)
|
||||||
static ssize_t lparcfg_write(struct file *file, const char __user * buf,
|
static ssize_t lparcfg_write(struct file *file, const char __user * buf,
|
||||||
size_t count, loff_t * off)
|
size_t count, loff_t * off)
|
||||||
{
|
{
|
||||||
return count;
|
return -EINVAL;
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif /* CONFIG_PPC_PSERIES */
|
#endif /* CONFIG_PPC_PSERIES */
|
||||||
|
@ -570,6 +574,7 @@ static int lparcfg_open(struct inode *inode, struct file *file)
|
||||||
struct file_operations lparcfg_fops = {
|
struct file_operations lparcfg_fops = {
|
||||||
.owner = THIS_MODULE,
|
.owner = THIS_MODULE,
|
||||||
.read = seq_read,
|
.read = seq_read,
|
||||||
|
.write = lparcfg_write,
|
||||||
.open = lparcfg_open,
|
.open = lparcfg_open,
|
||||||
.release = single_release,
|
.release = single_release,
|
||||||
};
|
};
|
||||||
|
@ -581,10 +586,8 @@ int __init lparcfg_init(void)
|
||||||
|
|
||||||
/* Allow writing if we have FW_FEATURE_SPLPAR */
|
/* Allow writing if we have FW_FEATURE_SPLPAR */
|
||||||
if (firmware_has_feature(FW_FEATURE_SPLPAR) &&
|
if (firmware_has_feature(FW_FEATURE_SPLPAR) &&
|
||||||
!firmware_has_feature(FW_FEATURE_ISERIES)) {
|
!firmware_has_feature(FW_FEATURE_ISERIES))
|
||||||
lparcfg_fops.write = lparcfg_write;
|
|
||||||
mode |= S_IWUSR;
|
mode |= S_IWUSR;
|
||||||
}
|
|
||||||
|
|
||||||
ent = create_proc_entry("ppc64/lparcfg", mode, NULL);
|
ent = create_proc_entry("ppc64/lparcfg", mode, NULL);
|
||||||
if (ent) {
|
if (ent) {
|
||||||
|
|
Reference in New Issue