mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-29 11:11:45 -04:00
sysfs: add struct file* to bin_attr callbacks
This allows bin_attr->read,write,mmap callbacks to check file specific data (such as inode owner) as part of any privilege validation. Signed-off-by: Chris Wright <[email protected]> Signed-off-by: Greg Kroah-Hartman <[email protected]>
This commit is contained in:
parent
68d75ed4b8
commit
2c3c8bea60
52 changed files with 220 additions and 149 deletions
|
|
@ -519,7 +519,8 @@ static const struct rtc_class_ops cmos_rtc_ops = {
|
|||
#define NVRAM_OFFSET (RTC_REG_D + 1)
|
||||
|
||||
static ssize_t
|
||||
cmos_nvram_read(struct kobject *kobj, struct bin_attribute *attr,
|
||||
cmos_nvram_read(struct file *filp, struct kobject *kobj,
|
||||
struct bin_attribute *attr,
|
||||
char *buf, loff_t off, size_t count)
|
||||
{
|
||||
int retval;
|
||||
|
|
@ -547,7 +548,8 @@ cmos_nvram_read(struct kobject *kobj, struct bin_attribute *attr,
|
|||
}
|
||||
|
||||
static ssize_t
|
||||
cmos_nvram_write(struct kobject *kobj, struct bin_attribute *attr,
|
||||
cmos_nvram_write(struct file *filp, struct kobject *kobj,
|
||||
struct bin_attribute *attr,
|
||||
char *buf, loff_t off, size_t count)
|
||||
{
|
||||
struct cmos_rtc *cmos;
|
||||
|
|
|
|||
|
|
@ -542,7 +542,8 @@ static void msg_init(struct spi_message *m, struct spi_transfer *x,
|
|||
}
|
||||
|
||||
static ssize_t
|
||||
ds1305_nvram_read(struct kobject *kobj, struct bin_attribute *attr,
|
||||
ds1305_nvram_read(struct file *filp, struct kobject *kobj,
|
||||
struct bin_attribute *attr,
|
||||
char *buf, loff_t off, size_t count)
|
||||
{
|
||||
struct spi_device *spi;
|
||||
|
|
@ -572,7 +573,8 @@ ds1305_nvram_read(struct kobject *kobj, struct bin_attribute *attr,
|
|||
}
|
||||
|
||||
static ssize_t
|
||||
ds1305_nvram_write(struct kobject *kobj, struct bin_attribute *attr,
|
||||
ds1305_nvram_write(struct file *filp, struct kobject *kobj,
|
||||
struct bin_attribute *attr,
|
||||
char *buf, loff_t off, size_t count)
|
||||
{
|
||||
struct spi_device *spi;
|
||||
|
|
|
|||
|
|
@ -556,7 +556,8 @@ static const struct rtc_class_ops ds13xx_rtc_ops = {
|
|||
#define NVRAM_SIZE 56
|
||||
|
||||
static ssize_t
|
||||
ds1307_nvram_read(struct kobject *kobj, struct bin_attribute *attr,
|
||||
ds1307_nvram_read(struct file *filp, struct kobject *kobj,
|
||||
struct bin_attribute *attr,
|
||||
char *buf, loff_t off, size_t count)
|
||||
{
|
||||
struct i2c_client *client;
|
||||
|
|
@ -580,7 +581,8 @@ ds1307_nvram_read(struct kobject *kobj, struct bin_attribute *attr,
|
|||
}
|
||||
|
||||
static ssize_t
|
||||
ds1307_nvram_write(struct kobject *kobj, struct bin_attribute *attr,
|
||||
ds1307_nvram_write(struct file *filp, struct kobject *kobj,
|
||||
struct bin_attribute *attr,
|
||||
char *buf, loff_t off, size_t count)
|
||||
{
|
||||
struct i2c_client *client;
|
||||
|
|
|
|||
|
|
@ -423,8 +423,9 @@ static const struct rtc_class_ops ds1511_rtc_ops = {
|
|||
};
|
||||
|
||||
static ssize_t
|
||||
ds1511_nvram_read(struct kobject *kobj, struct bin_attribute *ba,
|
||||
char *buf, loff_t pos, size_t size)
|
||||
ds1511_nvram_read(struct file *filp, struct kobject *kobj,
|
||||
struct bin_attribute *ba,
|
||||
char *buf, loff_t pos, size_t size)
|
||||
{
|
||||
ssize_t count;
|
||||
|
||||
|
|
@ -452,8 +453,9 @@ ds1511_nvram_read(struct kobject *kobj, struct bin_attribute *ba,
|
|||
}
|
||||
|
||||
static ssize_t
|
||||
ds1511_nvram_write(struct kobject *kobj, struct bin_attribute *bin_attr,
|
||||
char *buf, loff_t pos, size_t size)
|
||||
ds1511_nvram_write(struct file *filp, struct kobject *kobj,
|
||||
struct bin_attribute *bin_attr,
|
||||
char *buf, loff_t pos, size_t size)
|
||||
{
|
||||
ssize_t count;
|
||||
|
||||
|
|
|
|||
|
|
@ -252,7 +252,7 @@ static const struct rtc_class_ops ds1553_rtc_ops = {
|
|||
.update_irq_enable = ds1553_rtc_update_irq_enable,
|
||||
};
|
||||
|
||||
static ssize_t ds1553_nvram_read(struct kobject *kobj,
|
||||
static ssize_t ds1553_nvram_read(struct file *filp, struct kobject *kobj,
|
||||
struct bin_attribute *bin_attr,
|
||||
char *buf, loff_t pos, size_t size)
|
||||
{
|
||||
|
|
@ -267,7 +267,7 @@ static ssize_t ds1553_nvram_read(struct kobject *kobj,
|
|||
return count;
|
||||
}
|
||||
|
||||
static ssize_t ds1553_nvram_write(struct kobject *kobj,
|
||||
static ssize_t ds1553_nvram_write(struct file *filp, struct kobject *kobj,
|
||||
struct bin_attribute *bin_attr,
|
||||
char *buf, loff_t pos, size_t size)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -128,7 +128,7 @@ static const struct rtc_class_ops ds1742_rtc_ops = {
|
|||
.set_time = ds1742_rtc_set_time,
|
||||
};
|
||||
|
||||
static ssize_t ds1742_nvram_read(struct kobject *kobj,
|
||||
static ssize_t ds1742_nvram_read(struct file *filp, struct kobject *kobj,
|
||||
struct bin_attribute *bin_attr,
|
||||
char *buf, loff_t pos, size_t size)
|
||||
{
|
||||
|
|
@ -143,7 +143,7 @@ static ssize_t ds1742_nvram_read(struct kobject *kobj,
|
|||
return count;
|
||||
}
|
||||
|
||||
static ssize_t ds1742_nvram_write(struct kobject *kobj,
|
||||
static ssize_t ds1742_nvram_write(struct file *filp, struct kobject *kobj,
|
||||
struct bin_attribute *bin_attr,
|
||||
char *buf, loff_t pos, size_t size)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -343,7 +343,7 @@ static const struct rtc_class_ops m48t02_rtc_ops = {
|
|||
.set_time = m48t59_rtc_set_time,
|
||||
};
|
||||
|
||||
static ssize_t m48t59_nvram_read(struct kobject *kobj,
|
||||
static ssize_t m48t59_nvram_read(struct file *filp, struct kobject *kobj,
|
||||
struct bin_attribute *bin_attr,
|
||||
char *buf, loff_t pos, size_t size)
|
||||
{
|
||||
|
|
@ -363,7 +363,7 @@ static ssize_t m48t59_nvram_read(struct kobject *kobj,
|
|||
return cnt;
|
||||
}
|
||||
|
||||
static ssize_t m48t59_nvram_write(struct kobject *kobj,
|
||||
static ssize_t m48t59_nvram_write(struct file *filp, struct kobject *kobj,
|
||||
struct bin_attribute *bin_attr,
|
||||
char *buf, loff_t pos, size_t size)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -244,7 +244,7 @@ static const struct rtc_class_ops stk17ta8_rtc_ops = {
|
|||
.alarm_irq_enable = stk17ta8_rtc_alarm_irq_enable,
|
||||
};
|
||||
|
||||
static ssize_t stk17ta8_nvram_read(struct kobject *kobj,
|
||||
static ssize_t stk17ta8_nvram_read(struct file *filp, struct kobject *kobj,
|
||||
struct bin_attribute *attr, char *buf,
|
||||
loff_t pos, size_t size)
|
||||
{
|
||||
|
|
@ -259,7 +259,7 @@ static ssize_t stk17ta8_nvram_read(struct kobject *kobj,
|
|||
return count;
|
||||
}
|
||||
|
||||
static ssize_t stk17ta8_nvram_write(struct kobject *kobj,
|
||||
static ssize_t stk17ta8_nvram_write(struct file *filp, struct kobject *kobj,
|
||||
struct bin_attribute *attr, char *buf,
|
||||
loff_t pos, size_t size)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -188,7 +188,7 @@ static const struct rtc_class_ops tx4939_rtc_ops = {
|
|||
.alarm_irq_enable = tx4939_rtc_alarm_irq_enable,
|
||||
};
|
||||
|
||||
static ssize_t tx4939_rtc_nvram_read(struct kobject *kobj,
|
||||
static ssize_t tx4939_rtc_nvram_read(struct file *filp, struct kobject *kobj,
|
||||
struct bin_attribute *bin_attr,
|
||||
char *buf, loff_t pos, size_t size)
|
||||
{
|
||||
|
|
@ -207,7 +207,7 @@ static ssize_t tx4939_rtc_nvram_read(struct kobject *kobj,
|
|||
return count;
|
||||
}
|
||||
|
||||
static ssize_t tx4939_rtc_nvram_write(struct kobject *kobj,
|
||||
static ssize_t tx4939_rtc_nvram_write(struct file *filp, struct kobject *kobj,
|
||||
struct bin_attribute *bin_attr,
|
||||
char *buf, loff_t pos, size_t size)
|
||||
{
|
||||
|
|
|
|||
Loading…
Reference in a new issue