diff options
author | Chris Wright <chrisw@sous-sol.org> | 2010-05-12 21:28:57 -0400 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2010-05-21 12:37:31 -0400 |
commit | 2c3c8bea608866d8bd9dcf92657d57fdcac011c5 (patch) | |
tree | f509b958d0a65c46c831dbdd447a81e706dd995a | |
parent | 68d75ed4b84a0806ecd4bc14da4759713b23a532 (diff) |
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 <chrisw@sous-sol.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
52 files changed, 220 insertions, 149 deletions
diff --git a/arch/alpha/kernel/pci-sysfs.c b/arch/alpha/kernel/pci-sysfs.c index d979e7c7bc4b..a5fffc882c72 100644 --- a/arch/alpha/kernel/pci-sysfs.c +++ b/arch/alpha/kernel/pci-sysfs.c | |||
@@ -53,6 +53,7 @@ static int __pci_mmap_fits(struct pci_dev *pdev, int num, | |||
53 | 53 | ||
54 | /** | 54 | /** |
55 | * pci_mmap_resource - map a PCI resource into user memory space | 55 | * pci_mmap_resource - map a PCI resource into user memory space |
56 | * @filp: open sysfs file | ||
56 | * @kobj: kobject for mapping | 57 | * @kobj: kobject for mapping |
57 | * @attr: struct bin_attribute for the file being mapped | 58 | * @attr: struct bin_attribute for the file being mapped |
58 | * @vma: struct vm_area_struct passed into the mmap | 59 | * @vma: struct vm_area_struct passed into the mmap |
@@ -60,7 +61,8 @@ static int __pci_mmap_fits(struct pci_dev *pdev, int num, | |||
60 | * | 61 | * |
61 | * Use the bus mapping routines to map a PCI resource into userspace. | 62 | * Use the bus mapping routines to map a PCI resource into userspace. |
62 | */ | 63 | */ |
63 | static int pci_mmap_resource(struct kobject *kobj, struct bin_attribute *attr, | 64 | static int pci_mmap_resource(struct file *filp, struct kobject *kobj, |
65 | struct bin_attribute *attr, | ||
64 | struct vm_area_struct *vma, int sparse) | 66 | struct vm_area_struct *vma, int sparse) |
65 | { | 67 | { |
66 | struct pci_dev *pdev = to_pci_dev(container_of(kobj, | 68 | struct pci_dev *pdev = to_pci_dev(container_of(kobj, |
@@ -89,14 +91,14 @@ static int pci_mmap_resource(struct kobject *kobj, struct bin_attribute *attr, | |||
89 | return hose_mmap_page_range(pdev->sysdata, vma, mmap_type, sparse); | 91 | return hose_mmap_page_range(pdev->sysdata, vma, mmap_type, sparse); |
90 | } | 92 | } |
91 | 93 | ||
92 | static int pci_mmap_resource_sparse(struct kobject *kobj, | 94 | static int pci_mmap_resource_sparse(struct file *filp, struct kobject *kobj, |
93 | struct bin_attribute *attr, | 95 | struct bin_attribute *attr, |
94 | struct vm_area_struct *vma) | 96 | struct vm_area_struct *vma) |
95 | { | 97 | { |
96 | return pci_mmap_resource(kobj, attr, vma, 1); | 98 | return pci_mmap_resource(kobj, attr, vma, 1); |
97 | } | 99 | } |
98 | 100 | ||
99 | static int pci_mmap_resource_dense(struct kobject *kobj, | 101 | static int pci_mmap_resource_dense(struct file *filp, struct kobject *kobj, |
100 | struct bin_attribute *attr, | 102 | struct bin_attribute *attr, |
101 | struct vm_area_struct *vma) | 103 | struct vm_area_struct *vma) |
102 | { | 104 | { |
diff --git a/arch/mips/txx9/generic/setup.c b/arch/mips/txx9/generic/setup.c index adc69291f9e2..575d219b8001 100644 --- a/arch/mips/txx9/generic/setup.c +++ b/arch/mips/txx9/generic/setup.c | |||
@@ -905,7 +905,7 @@ struct txx9_sramc_sysdev { | |||
905 | void __iomem *base; | 905 | void __iomem *base; |
906 | }; | 906 | }; |
907 | 907 | ||
908 | static ssize_t txx9_sram_read(struct kobject *kobj, | 908 | static ssize_t txx9_sram_read(struct file *filp, struct kobject *kobj, |
909 | struct bin_attribute *bin_attr, | 909 | struct bin_attribute *bin_attr, |
910 | char *buf, loff_t pos, size_t size) | 910 | char *buf, loff_t pos, size_t size) |
911 | { | 911 | { |
@@ -920,7 +920,7 @@ static ssize_t txx9_sram_read(struct kobject *kobj, | |||
920 | return size; | 920 | return size; |
921 | } | 921 | } |
922 | 922 | ||
923 | static ssize_t txx9_sram_write(struct kobject *kobj, | 923 | static ssize_t txx9_sram_write(struct file *filp, struct kobject *kobj, |
924 | struct bin_attribute *bin_attr, | 924 | struct bin_attribute *bin_attr, |
925 | char *buf, loff_t pos, size_t size) | 925 | char *buf, loff_t pos, size_t size) |
926 | { | 926 | { |
diff --git a/arch/powerpc/sysdev/mv64x60_pci.c b/arch/powerpc/sysdev/mv64x60_pci.c index 1456015a22d8..198f288570cc 100644 --- a/arch/powerpc/sysdev/mv64x60_pci.c +++ b/arch/powerpc/sysdev/mv64x60_pci.c | |||
@@ -24,7 +24,7 @@ | |||
24 | #define MV64X60_VAL_LEN_MAX 11 | 24 | #define MV64X60_VAL_LEN_MAX 11 |
25 | #define MV64X60_PCICFG_CPCI_HOTSWAP 0x68 | 25 | #define MV64X60_PCICFG_CPCI_HOTSWAP 0x68 |
26 | 26 | ||
27 | static ssize_t mv64x60_hs_reg_read(struct kobject *kobj, | 27 | static ssize_t mv64x60_hs_reg_read(struct file *filp, struct kobject *kobj, |
28 | struct bin_attribute *attr, char *buf, | 28 | struct bin_attribute *attr, char *buf, |
29 | loff_t off, size_t count) | 29 | loff_t off, size_t count) |
30 | { | 30 | { |
@@ -45,7 +45,7 @@ static ssize_t mv64x60_hs_reg_read(struct kobject *kobj, | |||
45 | return sprintf(buf, "0x%08x\n", v); | 45 | return sprintf(buf, "0x%08x\n", v); |
46 | } | 46 | } |
47 | 47 | ||
48 | static ssize_t mv64x60_hs_reg_write(struct kobject *kobj, | 48 | static ssize_t mv64x60_hs_reg_write(struct file *filp, struct kobject *kobj, |
49 | struct bin_attribute *attr, char *buf, | 49 | struct bin_attribute *attr, char *buf, |
50 | loff_t off, size_t count) | 50 | loff_t off, size_t count) |
51 | { | 51 | { |
diff --git a/arch/s390/kernel/ipl.c b/arch/s390/kernel/ipl.c index 72c8b0d070c8..a689070be287 100644 --- a/arch/s390/kernel/ipl.c +++ b/arch/s390/kernel/ipl.c | |||
@@ -403,8 +403,9 @@ static ssize_t sys_ipl_device_show(struct kobject *kobj, | |||
403 | static struct kobj_attribute sys_ipl_device_attr = | 403 | static struct kobj_attribute sys_ipl_device_attr = |
404 | __ATTR(device, S_IRUGO, sys_ipl_device_show, NULL); | 404 | __ATTR(device, S_IRUGO, sys_ipl_device_show, NULL); |
405 | 405 | ||
406 | static ssize_t ipl_parameter_read(struct kobject *kobj, struct bin_attribute *attr, | 406 | static ssize_t ipl_parameter_read(struct file *filp, struct kobject *kobj, |
407 | char *buf, loff_t off, size_t count) | 407 | struct bin_attribute *attr, char *buf, |
408 | loff_t off, size_t count) | ||
408 | { | 409 | { |
409 | return memory_read_from_buffer(buf, count, &off, IPL_PARMBLOCK_START, | 410 | return memory_read_from_buffer(buf, count, &off, IPL_PARMBLOCK_START, |
410 | IPL_PARMBLOCK_SIZE); | 411 | IPL_PARMBLOCK_SIZE); |
@@ -419,8 +420,9 @@ static struct bin_attribute ipl_parameter_attr = { | |||
419 | .read = &ipl_parameter_read, | 420 | .read = &ipl_parameter_read, |
420 | }; | 421 | }; |
421 | 422 | ||
422 | static ssize_t ipl_scp_data_read(struct kobject *kobj, struct bin_attribute *attr, | 423 | static ssize_t ipl_scp_data_read(struct file *filp, struct kobject *kobj, |
423 | char *buf, loff_t off, size_t count) | 424 | struct bin_attribute *attr, char *buf, |
425 | loff_t off, size_t count) | ||
424 | { | 426 | { |
425 | unsigned int size = IPL_PARMBLOCK_START->ipl_info.fcp.scp_data_len; | 427 | unsigned int size = IPL_PARMBLOCK_START->ipl_info.fcp.scp_data_len; |
426 | void *scp_data = &IPL_PARMBLOCK_START->ipl_info.fcp.scp_data; | 428 | void *scp_data = &IPL_PARMBLOCK_START->ipl_info.fcp.scp_data; |
@@ -694,7 +696,7 @@ static struct kobj_attribute sys_reipl_ccw_vmparm_attr = | |||
694 | 696 | ||
695 | /* FCP reipl device attributes */ | 697 | /* FCP reipl device attributes */ |
696 | 698 | ||
697 | static ssize_t reipl_fcp_scpdata_read(struct kobject *kobj, | 699 | static ssize_t reipl_fcp_scpdata_read(struct file *filp, struct kobject *kobj, |
698 | struct bin_attribute *attr, | 700 | struct bin_attribute *attr, |
699 | char *buf, loff_t off, size_t count) | 701 | char *buf, loff_t off, size_t count) |
700 | { | 702 | { |
@@ -704,7 +706,7 @@ static ssize_t reipl_fcp_scpdata_read(struct kobject *kobj, | |||
704 | return memory_read_from_buffer(buf, count, &off, scp_data, size); | 706 | return memory_read_from_buffer(buf, count, &off, scp_data, size); |
705 | } | 707 | } |
706 | 708 | ||
707 | static ssize_t reipl_fcp_scpdata_write(struct kobject *kobj, | 709 | static ssize_t reipl_fcp_scpdata_write(struct file *filp, struct kobject *kobj, |
708 | struct bin_attribute *attr, | 710 | struct bin_attribute *attr, |
709 | char *buf, loff_t off, size_t count) | 711 | char *buf, loff_t off, size_t count) |
710 | { | 712 | { |
diff --git a/drivers/acpi/system.c b/drivers/acpi/system.c index e35525b39f6b..c79e789ed03a 100644 --- a/drivers/acpi/system.c +++ b/drivers/acpi/system.c | |||
@@ -71,7 +71,7 @@ struct acpi_table_attr { | |||
71 | struct list_head node; | 71 | struct list_head node; |
72 | }; | 72 | }; |
73 | 73 | ||
74 | static ssize_t acpi_table_show(struct kobject *kobj, | 74 | static ssize_t acpi_table_show(struct file *filp, struct kobject *kobj, |
75 | struct bin_attribute *bin_attr, char *buf, | 75 | struct bin_attribute *bin_attr, char *buf, |
76 | loff_t offset, size_t count) | 76 | loff_t offset, size_t count) |
77 | { | 77 | { |
diff --git a/drivers/base/firmware_class.c b/drivers/base/firmware_class.c index d98e424675cf..3f093b0dd217 100644 --- a/drivers/base/firmware_class.c +++ b/drivers/base/firmware_class.c | |||
@@ -278,8 +278,9 @@ static ssize_t firmware_loading_store(struct device *dev, | |||
278 | static DEVICE_ATTR(loading, 0644, firmware_loading_show, firmware_loading_store); | 278 | static DEVICE_ATTR(loading, 0644, firmware_loading_show, firmware_loading_store); |
279 | 279 | ||
280 | static ssize_t | 280 | static ssize_t |
281 | firmware_data_read(struct kobject *kobj, struct bin_attribute *bin_attr, | 281 | firmware_data_read(struct file *filp, struct kobject *kobj, |
282 | char *buffer, loff_t offset, size_t count) | 282 | struct bin_attribute *bin_attr, char *buffer, loff_t offset, |
283 | size_t count) | ||
283 | { | 284 | { |
284 | struct device *dev = to_dev(kobj); | 285 | struct device *dev = to_dev(kobj); |
285 | struct firmware_priv *fw_priv = dev_get_drvdata(dev); | 286 | struct firmware_priv *fw_priv = dev_get_drvdata(dev); |
@@ -362,6 +363,7 @@ fw_realloc_buffer(struct firmware_priv *fw_priv, int min_size) | |||
362 | 363 | ||
363 | /** | 364 | /** |
364 | * firmware_data_write - write method for firmware | 365 | * firmware_data_write - write method for firmware |
366 | * @filp: open sysfs file | ||
365 | * @kobj: kobject for the device | 367 | * @kobj: kobject for the device |
366 | * @bin_attr: bin_attr structure | 368 | * @bin_attr: bin_attr structure |
367 | * @buffer: buffer being written | 369 | * @buffer: buffer being written |
@@ -372,8 +374,9 @@ fw_realloc_buffer(struct firmware_priv *fw_priv, int min_size) | |||
372 | * the driver as a firmware image. | 374 | * the driver as a firmware image. |
373 | **/ | 375 | **/ |
374 | static ssize_t | 376 | static ssize_t |
375 | firmware_data_write(struct kobject *kobj, struct bin_attribute *bin_attr, | 377 | firmware_data_write(struct file* filp, struct kobject *kobj, |
376 | char *buffer, loff_t offset, size_t count) | 378 | struct bin_attribute *bin_attr, char *buffer, |
379 | loff_t offset, size_t count) | ||
377 | { | 380 | { |
378 | struct device *dev = to_dev(kobj); | 381 | struct device *dev = to_dev(kobj); |
379 | struct firmware_priv *fw_priv = dev_get_drvdata(dev); | 382 | struct firmware_priv *fw_priv = dev_get_drvdata(dev); |
diff --git a/drivers/firmware/dcdbas.c b/drivers/firmware/dcdbas.c index fb09bb3c0ad6..aa9bc9e980e1 100644 --- a/drivers/firmware/dcdbas.c +++ b/drivers/firmware/dcdbas.c | |||
@@ -149,7 +149,7 @@ static ssize_t smi_data_buf_size_store(struct device *dev, | |||
149 | return count; | 149 | return count; |
150 | } | 150 | } |
151 | 151 | ||
152 | static ssize_t smi_data_read(struct kobject *kobj, | 152 | static ssize_t smi_data_read(struct file *filp, struct kobject *kobj, |
153 | struct bin_attribute *bin_attr, | 153 | struct bin_attribute *bin_attr, |
154 | char *buf, loff_t pos, size_t count) | 154 | char *buf, loff_t pos, size_t count) |
155 | { | 155 | { |
@@ -162,7 +162,7 @@ static ssize_t smi_data_read(struct kobject *kobj, | |||
162 | return ret; | 162 | return ret; |
163 | } | 163 | } |
164 | 164 | ||
165 | static ssize_t smi_data_write(struct kobject *kobj, | 165 | static ssize_t smi_data_write(struct file *filp, struct kobject *kobj, |
166 | struct bin_attribute *bin_attr, | 166 | struct bin_attribute *bin_attr, |
167 | char *buf, loff_t pos, size_t count) | 167 | char *buf, loff_t pos, size_t count) |
168 | { | 168 | { |
diff --git a/drivers/firmware/dell_rbu.c b/drivers/firmware/dell_rbu.c index 3a4460265b10..2f452f1f7c8a 100644 --- a/drivers/firmware/dell_rbu.c +++ b/drivers/firmware/dell_rbu.c | |||
@@ -522,7 +522,7 @@ static ssize_t read_rbu_mono_data(char *buffer, loff_t pos, size_t count) | |||
522 | rbu_data.image_update_buffer, rbu_data.bios_image_size); | 522 | rbu_data.image_update_buffer, rbu_data.bios_image_size); |
523 | } | 523 | } |
524 | 524 | ||
525 | static ssize_t read_rbu_data(struct kobject *kobj, | 525 | static ssize_t read_rbu_data(struct file *filp, struct kobject *kobj, |
526 | struct bin_attribute *bin_attr, | 526 | struct bin_attribute *bin_attr, |
527 | char *buffer, loff_t pos, size_t count) | 527 | char *buffer, loff_t pos, size_t count) |
528 | { | 528 | { |
@@ -576,7 +576,7 @@ static void callbackfn_rbu(const struct firmware *fw, void *context) | |||
576 | release_firmware(fw); | 576 | release_firmware(fw); |
577 | } | 577 | } |
578 | 578 | ||
579 | static ssize_t read_rbu_image_type(struct kobject *kobj, | 579 | static ssize_t read_rbu_image_type(struct file *filp, struct kobject *kobj, |
580 | struct bin_attribute *bin_attr, | 580 | struct bin_attribute *bin_attr, |
581 | char *buffer, loff_t pos, size_t count) | 581 | char *buffer, loff_t pos, size_t count) |
582 | { | 582 | { |
@@ -586,7 +586,7 @@ static ssize_t read_rbu_image_type(struct kobject *kobj, | |||
586 | return size; | 586 | return size; |
587 | } | 587 | } |
588 | 588 | ||
589 | static ssize_t write_rbu_image_type(struct kobject *kobj, | 589 | static ssize_t write_rbu_image_type(struct file *filp, struct kobject *kobj, |
590 | struct bin_attribute *bin_attr, | 590 | struct bin_attribute *bin_attr, |
591 | char *buffer, loff_t pos, size_t count) | 591 | char *buffer, loff_t pos, size_t count) |
592 | { | 592 | { |
@@ -647,7 +647,7 @@ static ssize_t write_rbu_image_type(struct kobject *kobj, | |||
647 | return rc; | 647 | return rc; |
648 | } | 648 | } |
649 | 649 | ||
650 | static ssize_t read_rbu_packet_size(struct kobject *kobj, | 650 | static ssize_t read_rbu_packet_size(struct file *filp, struct kobject *kobj, |
651 | struct bin_attribute *bin_attr, | 651 | struct bin_attribute *bin_attr, |
652 | char *buffer, loff_t pos, size_t count) | 652 | char *buffer, loff_t pos, size_t count) |
653 | { | 653 | { |
@@ -660,7 +660,7 @@ static ssize_t read_rbu_packet_size(struct kobject *kobj, | |||
660 | return size; | 660 | return size; |
661 | } | 661 | } |
662 | 662 | ||
663 | static ssize_t write_rbu_packet_size(struct kobject *kobj, | 663 | static ssize_t write_rbu_packet_size(struct file *filp, struct kobject *kobj, |
664 | struct bin_attribute *bin_attr, | 664 | struct bin_attribute *bin_attr, |
665 | char *buffer, loff_t pos, size_t count) | 665 | char *buffer, loff_t pos, size_t count) |
666 | { | 666 | { |
diff --git a/drivers/firmware/efivars.c b/drivers/firmware/efivars.c index 81b70bd07586..2a62ec6390e0 100644 --- a/drivers/firmware/efivars.c +++ b/drivers/firmware/efivars.c | |||
@@ -402,7 +402,7 @@ efivar_unregister(struct efivar_entry *var) | |||
402 | } | 402 | } |
403 | 403 | ||
404 | 404 | ||
405 | static ssize_t efivar_create(struct kobject *kobj, | 405 | static ssize_t efivar_create(struct file *filp, struct kobject *kobj, |
406 | struct bin_attribute *bin_attr, | 406 | struct bin_attribute *bin_attr, |
407 | char *buf, loff_t pos, size_t count) | 407 | char *buf, loff_t pos, size_t count) |
408 | { | 408 | { |
@@ -461,7 +461,7 @@ static ssize_t efivar_create(struct kobject *kobj, | |||
461 | return count; | 461 | return count; |
462 | } | 462 | } |
463 | 463 | ||
464 | static ssize_t efivar_delete(struct kobject *kobj, | 464 | static ssize_t efivar_delete(struct file *filp, struct kobject *kobj, |
465 | struct bin_attribute *bin_attr, | 465 | struct bin_attribute *bin_attr, |
466 | char *buf, loff_t pos, size_t count) | 466 | char *buf, loff_t pos, size_t count) |
467 | { | 467 | { |
diff --git a/drivers/gpu/drm/drm_sysfs.c b/drivers/gpu/drm/drm_sysfs.c index 25bbd30ed7af..387166d5a109 100644 --- a/drivers/gpu/drm/drm_sysfs.c +++ b/drivers/gpu/drm/drm_sysfs.c | |||
@@ -193,8 +193,9 @@ static ssize_t enabled_show(struct device *device, | |||
193 | "disabled"); | 193 | "disabled"); |
194 | } | 194 | } |
195 | 195 | ||
196 | static ssize_t edid_show(struct kobject *kobj, struct bin_attribute *attr, | 196 | static ssize_t edid_show(struct file *filp, struct kobject *kobj, |
197 | char *buf, loff_t off, size_t count) | 197 | struct bin_attribute *attr, char *buf, loff_t off, |
198 | size_t count) | ||
198 | { | 199 | { |
199 | struct device *connector_dev = container_of(kobj, struct device, kobj); | 200 | struct device *connector_dev = container_of(kobj, struct device, kobj); |
200 | struct drm_connector *connector = to_drm_connector(connector_dev); | 201 | struct drm_connector *connector = to_drm_connector(connector_dev); |
diff --git a/drivers/misc/c2port/core.c b/drivers/misc/c2port/core.c index ed090e77c9cd..19fc7c1cb428 100644 --- a/drivers/misc/c2port/core.c +++ b/drivers/misc/c2port/core.c | |||
@@ -707,7 +707,7 @@ static ssize_t __c2port_read_flash_data(struct c2port_device *dev, | |||
707 | return nread; | 707 | return nread; |
708 | } | 708 | } |
709 | 709 | ||
710 | static ssize_t c2port_read_flash_data(struct kobject *kobj, | 710 | static ssize_t c2port_read_flash_data(struct file *filp, struct kobject *kobj, |
711 | struct bin_attribute *attr, | 711 | struct bin_attribute *attr, |
712 | char *buffer, loff_t offset, size_t count) | 712 | char *buffer, loff_t offset, size_t count) |
713 | { | 713 | { |
@@ -824,7 +824,7 @@ static ssize_t __c2port_write_flash_data(struct c2port_device *dev, | |||
824 | return nwrite; | 824 | return nwrite; |
825 | } | 825 | } |
826 | 826 | ||
827 | static ssize_t c2port_write_flash_data(struct kobject *kobj, | 827 | static ssize_t c2port_write_flash_data(struct file *filp, struct kobject *kobj, |
828 | struct bin_attribute *attr, | 828 | struct bin_attribute *attr, |
829 | char *buffer, loff_t offset, size_t count) | 829 | char *buffer, loff_t offset, size_t count) |
830 | { | 830 | { |
diff --git a/drivers/misc/ds1682.c b/drivers/misc/ds1682.c index 9197cfc55015..a513f0aa6432 100644 --- a/drivers/misc/ds1682.c +++ b/drivers/misc/ds1682.c | |||
@@ -140,7 +140,8 @@ static const struct attribute_group ds1682_group = { | |||
140 | /* | 140 | /* |
141 | * User data attribute | 141 | * User data attribute |
142 | */ | 142 | */ |
143 | static ssize_t ds1682_eeprom_read(struct kobject *kobj, struct bin_attribute *attr, | 143 | static ssize_t ds1682_eeprom_read(struct file *filp, struct kobject *kobj, |
144 | struct bin_attribute *attr, | ||
144 | char *buf, loff_t off, size_t count) | 145 | char *buf, loff_t off, size_t count) |
145 | { | 146 | { |
146 | struct i2c_client *client = kobj_to_i2c_client(kobj); | 147 | struct i2c_client *client = kobj_to_i2c_client(kobj); |
@@ -163,7 +164,8 @@ static ssize_t ds1682_eeprom_read(struct kobject *kobj, struct bin_attribute *at | |||
163 | return count; | 164 | return count; |
164 | } | 165 | } |
165 | 166 | ||
166 | static ssize_t ds1682_eeprom_write(struct kobject *kobj, struct bin_attribute *attr, | 167 | static ssize_t ds1682_eeprom_write(struct file *filp, struct kobject *kobj, |
168 | struct bin_attribute *attr, | ||
167 | char *buf, loff_t off, size_t count) | 169 | char *buf, loff_t off, size_t count) |
168 | { | 170 | { |
169 | struct i2c_client *client = kobj_to_i2c_client(kobj); | 171 | struct i2c_client *client = kobj_to_i2c_client(kobj); |
diff --git a/drivers/misc/eeprom/at24.c b/drivers/misc/eeprom/at24.c index db7d0f21b65d..a79a62f75481 100644 --- a/drivers/misc/eeprom/at24.c +++ b/drivers/misc/eeprom/at24.c | |||
@@ -274,7 +274,8 @@ static ssize_t at24_read(struct at24_data *at24, | |||
274 | return retval; | 274 | return retval; |
275 | } | 275 | } |
276 | 276 | ||
277 | static ssize_t at24_bin_read(struct kobject *kobj, struct bin_attribute *attr, | 277 | static ssize_t at24_bin_read(struct file *filp, struct kobject *kobj, |
278 | struct bin_attribute *attr, | ||
278 | char *buf, loff_t off, size_t count) | 279 | char *buf, loff_t off, size_t count) |
279 | { | 280 | { |
280 | struct at24_data *at24; | 281 | struct at24_data *at24; |
@@ -395,7 +396,8 @@ static ssize_t at24_write(struct at24_data *at24, const char *buf, loff_t off, | |||
395 | return retval; | 396 | return retval; |
396 | } | 397 | } |
397 | 398 | ||
398 | static ssize_t at24_bin_write(struct kobject *kobj, struct bin_attribute *attr, | 399 | static ssize_t at24_bin_write(struct file *filp, struct kobject *kobj, |
400 | struct bin_attribute *attr, | ||
399 | char *buf, loff_t off, size_t count) | 401 | char *buf, loff_t off, size_t count) |
400 | { | 402 | { |
401 | struct at24_data *at24; | 403 | struct at24_data *at24; |
diff --git a/drivers/misc/eeprom/at25.c b/drivers/misc/eeprom/at25.c index d194212a41f6..c627e4174ccd 100644 --- a/drivers/misc/eeprom/at25.c +++ b/drivers/misc/eeprom/at25.c | |||
@@ -126,7 +126,8 @@ at25_ee_read( | |||
126 | } | 126 | } |
127 | 127 | ||
128 | static ssize_t | 128 | static ssize_t |
129 | at25_bin_read(struct kobject *kobj, struct bin_attribute *bin_attr, | 129 | at25_bin_read(struct file *filp, struct kobject *kobj, |
130 | struct bin_attribute *bin_attr, | ||
130 | char *buf, loff_t off, size_t count) | 131 | char *buf, loff_t off, size_t count) |
131 | { | 132 | { |
132 | struct device *dev; | 133 | struct device *dev; |
@@ -253,7 +254,8 @@ at25_ee_write(struct at25_data *at25, const char *buf, loff_t off, | |||
253 | } | 254 | } |
254 | 255 | ||
255 | static ssize_t | 256 | static ssize_t |
256 | at25_bin_write(struct kobject *kobj, struct bin_attribute *bin_attr, | 257 | at25_bin_write(struct file *filp, struct kobject *kobj, |
258 | struct bin_attribute *bin_attr, | ||
257 | char *buf, loff_t off, size_t count) | 259 | char *buf, loff_t off, size_t count) |
258 | { | 260 | { |
259 | struct device *dev; | 261 | struct device *dev; |
diff --git a/drivers/misc/eeprom/eeprom.c b/drivers/misc/eeprom/eeprom.c index e306a8cd2f96..45060ddc4e59 100644 --- a/drivers/misc/eeprom/eeprom.c +++ b/drivers/misc/eeprom/eeprom.c | |||
@@ -81,7 +81,8 @@ exit: | |||
81 | mutex_unlock(&data->update_lock); | 81 | mutex_unlock(&data->update_lock); |
82 | } | 82 | } |
83 | 83 | ||
84 | static ssize_t eeprom_read(struct kobject *kobj, struct bin_attribute *bin_attr, | 84 | static ssize_t eeprom_read(struct file *filp, struct kobject *kobj, |
85 | struct bin_attribute *bin_attr, | ||
85 | char *buf, loff_t off, size_t count) | 86 | char *buf, loff_t off, size_t count) |
86 | { | 87 | { |
87 | struct i2c_client *client = to_i2c_client(container_of(kobj, struct device, kobj)); | 88 | struct i2c_client *client = to_i2c_client(container_of(kobj, struct device, kobj)); |
diff --git a/drivers/misc/eeprom/max6875.c b/drivers/misc/eeprom/max6875.c index fe2909278507..5653a3ce0517 100644 --- a/drivers/misc/eeprom/max6875.c +++ b/drivers/misc/eeprom/max6875.c | |||
@@ -107,7 +107,7 @@ exit_up: | |||
107 | mutex_unlock(&data->update_lock); | 107 | mutex_unlock(&data->update_lock); |
108 | } | 108 | } |
109 | 109 | ||
110 | static ssize_t max6875_read(struct kobject *kobj, | 110 | static ssize_t max6875_read(struct file *filp, struct kobject *kobj, |
111 | struct bin_attribute *bin_attr, | 111 | struct bin_attribute *bin_attr, |
112 | char *buf, loff_t off, size_t count) | 112 | char *buf, loff_t off, size_t count) |
113 | { | 113 | { |
diff --git a/drivers/net/netxen/netxen_nic_main.c b/drivers/net/netxen/netxen_nic_main.c index c61a61f177b7..6ce6ce1df6d2 100644 --- a/drivers/net/netxen/netxen_nic_main.c +++ b/drivers/net/netxen/netxen_nic_main.c | |||
@@ -2560,7 +2560,8 @@ netxen_sysfs_validate_crb(struct netxen_adapter *adapter, | |||
2560 | } | 2560 | } |
2561 | 2561 | ||
2562 | static ssize_t | 2562 | static ssize_t |
2563 | netxen_sysfs_read_crb(struct kobject *kobj, struct bin_attribute *attr, | 2563 | netxen_sysfs_read_crb(struct file *filp, struct kobject *kobj, |
2564 | struct bin_attribute *attr, | ||
2564 | char *buf, loff_t offset, size_t size) | 2565 | char *buf, loff_t offset, size_t size) |
2565 | { | 2566 | { |
2566 | struct device *dev = container_of(kobj, struct device, kobj); | 2567 | struct device *dev = container_of(kobj, struct device, kobj); |
@@ -2587,7 +2588,8 @@ netxen_sysfs_read_crb(struct kobject *kobj, struct bin_attribute *attr, | |||
2587 | } | 2588 | } |
2588 | 2589 | ||
2589 | static ssize_t | 2590 | static ssize_t |
2590 | netxen_sysfs_write_crb(struct kobject *kobj, struct bin_attribute *attr, | 2591 | netxen_sysfs_write_crb(struct file *filp, struct kobject *kobj, |
2592 | struct bin_attribute *attr, | ||
2591 | char *buf, loff_t offset, size_t size) | 2593 | char *buf, loff_t offset, size_t size) |
2592 | { | 2594 | { |
2593 | struct device *dev = container_of(kobj, struct device, kobj); | 2595 | struct device *dev = container_of(kobj, struct device, kobj); |
@@ -2627,7 +2629,8 @@ netxen_sysfs_validate_mem(struct netxen_adapter *adapter, | |||
2627 | } | 2629 | } |
2628 | 2630 | ||
2629 | static ssize_t | 2631 | static ssize_t |
2630 | netxen_sysfs_read_mem(struct kobject *kobj, struct bin_attribute *attr, | 2632 | netxen_sysfs_read_mem(struct file *filp, struct kobject *kobj, |
2633 | struct bin_attribute *attr, | ||
2631 | char *buf, loff_t offset, size_t size) | 2634 | char *buf, loff_t offset, size_t size) |
2632 | { | 2635 | { |
2633 | struct device *dev = container_of(kobj, struct device, kobj); | 2636 | struct device *dev = container_of(kobj, struct device, kobj); |
@@ -2647,7 +2650,7 @@ netxen_sysfs_read_mem(struct kobject *kobj, struct bin_attribute *attr, | |||
2647 | return size; | 2650 | return size; |
2648 | } | 2651 | } |
2649 | 2652 | ||
2650 | static ssize_t netxen_sysfs_write_mem(struct kobject *kobj, | 2653 | static ssize_t netxen_sysfs_write_mem(struct file *filp, struct kobject *kobj, |
2651 | struct bin_attribute *attr, char *buf, | 2654 | struct bin_attribute *attr, char *buf, |
2652 | loff_t offset, size_t size) | 2655 | loff_t offset, size_t size) |
2653 | { | 2656 | { |
diff --git a/drivers/net/qlcnic/qlcnic_main.c b/drivers/net/qlcnic/qlcnic_main.c index 1003eb76fda3..23ea9caa5261 100644 --- a/drivers/net/qlcnic/qlcnic_main.c +++ b/drivers/net/qlcnic/qlcnic_main.c | |||
@@ -2464,7 +2464,8 @@ qlcnic_sysfs_validate_crb(struct qlcnic_adapter *adapter, | |||
2464 | } | 2464 | } |
2465 | 2465 | ||
2466 | static ssize_t | 2466 | static ssize_t |
2467 | qlcnic_sysfs_read_crb(struct kobject *kobj, struct bin_attribute *attr, | 2467 | qlcnic_sysfs_read_crb(struct file *filp, struct kobject *kobj, |
2468 | struct bin_attribute *attr, | ||
2468 | char *buf, loff_t offset, size_t size) | 2469 | char *buf, loff_t offset, size_t size) |
2469 | { | 2470 | { |
2470 | struct device *dev = container_of(kobj, struct device, kobj); | 2471 | struct device *dev = container_of(kobj, struct device, kobj); |
@@ -2488,7 +2489,8 @@ qlcnic_sysfs_read_crb(struct kobject *kobj, struct bin_attribute *attr, | |||
2488 | } | 2489 | } |
2489 | 2490 | ||
2490 | static ssize_t | 2491 | static ssize_t |
2491 | qlcnic_sysfs_write_crb(struct kobject *kobj, struct bin_attribute *attr, | 2492 | qlcnic_sysfs_write_crb(struct file *filp, struct kobject *kobj, |
2493 | struct bin_attribute *attr, | ||
2492 | char *buf, loff_t offset, size_t size) | 2494 | char *buf, loff_t offset, size_t size) |
2493 | { | 2495 | { |
2494 | struct device *dev = container_of(kobj, struct device, kobj); | 2496 | struct device *dev = container_of(kobj, struct device, kobj); |
@@ -2525,7 +2527,8 @@ qlcnic_sysfs_validate_mem(struct qlcnic_adapter *adapter, | |||
2525 | } | 2527 | } |
2526 | 2528 | ||
2527 | static ssize_t | 2529 | static ssize_t |
2528 | qlcnic_sysfs_read_mem(struct kobject *kobj, struct bin_attribute *attr, | 2530 | qlcnic_sysfs_read_mem(struct file *filp, struct kobject *kobj, |
2531 | struct bin_attribute *attr, | ||
2529 | char *buf, loff_t offset, size_t size) | 2532 | char *buf, loff_t offset, size_t size) |
2530 | { | 2533 | { |
2531 | struct device *dev = container_of(kobj, struct device, kobj); | 2534 | struct device *dev = container_of(kobj, struct device, kobj); |
@@ -2546,7 +2549,8 @@ qlcnic_sysfs_read_mem(struct kobject *kobj, struct bin_attribute *attr, | |||
2546 | } | 2549 | } |
2547 | 2550 | ||
2548 | static ssize_t | 2551 | static ssize_t |
2549 | qlcnic_sysfs_write_mem(struct kobject *kobj, struct bin_attribute *attr, | 2552 | qlcnic_sysfs_write_mem(struct file *filp, struct kobject *kobj, |
2553 | struct bin_attribute *attr, | ||
2550 | char *buf, loff_t offset, size_t size) | 2554 | char *buf, loff_t offset, size_t size) |
2551 | { | 2555 | { |
2552 | struct device *dev = container_of(kobj, struct device, kobj); | 2556 | struct device *dev = container_of(kobj, struct device, kobj); |
diff --git a/drivers/pci/hotplug/acpiphp_ibm.c b/drivers/pci/hotplug/acpiphp_ibm.c index 6ecbfb27db9d..e525263210ee 100644 --- a/drivers/pci/hotplug/acpiphp_ibm.c +++ b/drivers/pci/hotplug/acpiphp_ibm.c | |||
@@ -108,7 +108,7 @@ static int ibm_set_attention_status(struct hotplug_slot *slot, u8 status); | |||
108 | static int ibm_get_attention_status(struct hotplug_slot *slot, u8 *status); | 108 | static int ibm_get_attention_status(struct hotplug_slot *slot, u8 *status); |
109 | static void ibm_handle_events(acpi_handle handle, u32 event, void *context); | 109 | static void ibm_handle_events(acpi_handle handle, u32 event, void *context); |
110 | static int ibm_get_table_from_acpi(char **bufp); | 110 | static int ibm_get_table_from_acpi(char **bufp); |
111 | static ssize_t ibm_read_apci_table(struct kobject *kobj, | 111 | static ssize_t ibm_read_apci_table(struct file *filp, struct kobject *kobj, |
112 | struct bin_attribute *bin_attr, | 112 | struct bin_attribute *bin_attr, |
113 | char *buffer, loff_t pos, size_t size); | 113 | char *buffer, loff_t pos, size_t size); |
114 | static acpi_status __init ibm_find_acpi_device(acpi_handle handle, | 114 | static acpi_status __init ibm_find_acpi_device(acpi_handle handle, |
@@ -351,6 +351,7 @@ read_table_done: | |||
351 | 351 | ||
352 | /** | 352 | /** |
353 | * ibm_read_apci_table - callback for the sysfs apci_table file | 353 | * ibm_read_apci_table - callback for the sysfs apci_table file |
354 | * @filp: the open sysfs file | ||
354 | * @kobj: the kobject this binary attribute is a part of | 355 | * @kobj: the kobject this binary attribute is a part of |
355 | * @bin_attr: struct bin_attribute for this file | 356 | * @bin_attr: struct bin_attribute for this file |
356 | * @buffer: the kernel space buffer to fill | 357 | * @buffer: the kernel space buffer to fill |
@@ -364,7 +365,7 @@ read_table_done: | |||
364 | * things get really tricky here... | 365 | * things get really tricky here... |
365 | * our solution is to only allow reading the table in all at once. | 366 | * our solution is to only allow reading the table in all at once. |
366 | */ | 367 | */ |
367 | static ssize_t ibm_read_apci_table(struct kobject *kobj, | 368 | static ssize_t ibm_read_apci_table(struct file *filp, struct kobject *kobj, |
368 | struct bin_attribute *bin_attr, | 369 | struct bin_attribute *bin_attr, |
369 | char *buffer, loff_t pos, size_t size) | 370 | char *buffer, loff_t pos, size_t size) |
370 | { | 371 | { |
diff --git a/drivers/pci/pci-sysfs.c b/drivers/pci/pci-sysfs.c index fad93983bfed..ad44557e65c4 100644 --- a/drivers/pci/pci-sysfs.c +++ b/drivers/pci/pci-sysfs.c | |||
@@ -357,7 +357,8 @@ boot_vga_show(struct device *dev, struct device_attribute *attr, char *buf) | |||
357 | struct device_attribute vga_attr = __ATTR_RO(boot_vga); | 357 | struct device_attribute vga_attr = __ATTR_RO(boot_vga); |
358 | 358 | ||
359 | static ssize_t | 359 | static ssize_t |
360 | pci_read_config(struct kobject *kobj, struct bin_attribute *bin_attr, | 360 | pci_read_config(struct file *filp, struct kobject *kobj, |
361 | struct bin_attribute *bin_attr, | ||
361 | char *buf, loff_t off, size_t count) | 362 | char *buf, loff_t off, size_t count) |
362 | { | 363 | { |
363 | struct pci_dev *dev = to_pci_dev(container_of(kobj,struct device,kobj)); | 364 | struct pci_dev *dev = to_pci_dev(container_of(kobj,struct device,kobj)); |
@@ -430,7 +431,8 @@ pci_read_config(struct kobject *kobj, struct bin_attribute *bin_attr, | |||
430 | } | 431 | } |
431 | 432 | ||
432 | static ssize_t | 433 | static ssize_t |
433 | pci_write_config(struct kobject *kobj, struct bin_attribute *bin_attr, | 434 | pci_write_config(struct file* filp, struct kobject *kobj, |
435 | struct bin_attribute *bin_attr, | ||
434 | char *buf, loff_t off, size_t count) | 436 | char *buf, loff_t off, size_t count) |
435 | { | 437 | { |
436 | struct pci_dev *dev = to_pci_dev(container_of(kobj,struct device,kobj)); | 438 | struct pci_dev *dev = to_pci_dev(container_of(kobj,struct device,kobj)); |
@@ -487,7 +489,8 @@ pci_write_config(struct kobject *kobj, struct bin_attribute *bin_attr, | |||
487 | } | 489 | } |
488 | 490 | ||
489 | static ssize_t | 491 | static ssize_t |
490 | read_vpd_attr(struct kobject *kobj, struct bin_attribute *bin_attr, | 492 | read_vpd_attr(struct file *filp, struct kobject *kobj, |
493 | struct bin_attribute *bin_attr, | ||
491 | char *buf, loff_t off, size_t count) | 494 | char *buf, loff_t off, size_t count) |
492 | { | 495 | { |
493 | struct pci_dev *dev = | 496 | struct pci_dev *dev = |
@@ -502,7 +505,8 @@ read_vpd_attr(struct kobject *kobj, struct bin_attribute *bin_attr, | |||
502 | } | 505 | } |
503 | 506 | ||
504 | static ssize_t | 507 | static ssize_t |
505 | write_vpd_attr(struct kobject *kobj, struct bin_attribute *bin_attr, | 508 | write_vpd_attr(struct file *filp, struct kobject *kobj, |
509 | struct bin_attribute *bin_attr, | ||
506 | char *buf, loff_t off, size_t count) | 510 | char *buf, loff_t off, size_t count) |
507 | { | 511 | { |
508 | struct pci_dev *dev = | 512 | struct pci_dev *dev = |
@@ -519,6 +523,7 @@ write_vpd_attr(struct kobject *kobj, struct bin_attribute *bin_attr, | |||
519 | #ifdef HAVE_PCI_LEGACY | 523 | #ifdef HAVE_PCI_LEGACY |
520 | /** | 524 | /** |
521 | * pci_read_legacy_io - read byte(s) from legacy I/O port space | 525 | * pci_read_legacy_io - read byte(s) from legacy I/O port space |
526 | * @filp: open sysfs file | ||
522 | * @kobj: kobject corresponding to file to read from | 527 | * @kobj: kobject corresponding to file to read from |
523 | * @bin_attr: struct bin_attribute for this file | 528 | * @bin_attr: struct bin_attribute for this file |
524 | * @buf: buffer to store results | 529 | * @buf: buffer to store results |
@@ -529,7 +534,8 @@ write_vpd_attr(struct kobject *kobj, struct bin_attribute *bin_attr, | |||
529 | * callback routine (pci_legacy_read). | 534 | * callback routine (pci_legacy_read). |
530 | */ | 535 | */ |
531 | static ssize_t | 536 | static ssize_t |
532 | pci_read_legacy_io(struct kobject *kobj, struct bin_attribute *bin_attr, | 537 | pci_read_legacy_io(struct file *filp, struct kobject *kobj, |
538 | struct bin_attribute *bin_attr, | ||
533 | char *buf, loff_t off, size_t count) | 539 | char *buf, loff_t off, size_t count) |
534 | { | 540 | { |
535 | struct pci_bus *bus = to_pci_bus(container_of(kobj, | 541 | struct pci_bus *bus = to_pci_bus(container_of(kobj, |
@@ -545,6 +551,7 @@ pci_read_legacy_io(struct kobject *kobj, struct bin_attribute *bin_attr, | |||
545 | 551 | ||
546 | /** | 552 | /** |
547 | * pci_write_legacy_io - write byte(s) to legacy I/O port space | 553 | * pci_write_legacy_io - write byte(s) to legacy I/O port space |
554 | * @filp: open sysfs file | ||
548 | * @kobj: kobject corresponding to file to read from | 555 | * @kobj: kobject corresponding to file to read from |
549 | * @bin_attr: struct bin_attribute for this file | 556 | * @bin_attr: struct bin_attribute for this file |
550 | * @buf: buffer containing value to be written | 557 | * @buf: buffer containing value to be written |
@@ -555,7 +562,8 @@ pci_read_legacy_io(struct kobject *kobj, struct bin_attribute *bin_attr, | |||
555 | * callback routine (pci_legacy_write). | 562 | * callback routine (pci_legacy_write). |
556 | */ | 563 | */ |
557 | static ssize_t | 564 | static ssize_t |
558 | pci_write_legacy_io(struct kobject *kobj, struct bin_attribute *bin_attr, | 565 | pci_write_legacy_io(struct file *filp, struct kobject *kobj, |
566 | struct bin_attribute *bin_attr, | ||
559 | char *buf, loff_t off, size_t count) | 567 | char *buf, loff_t off, size_t count) |
560 | { | 568 | { |
561 | struct pci_bus *bus = to_pci_bus(container_of(kobj, | 569 | struct pci_bus *bus = to_pci_bus(container_of(kobj, |
@@ -570,6 +578,7 @@ pci_write_legacy_io(struct kobject *kobj, struct bin_attribute *bin_attr, | |||
570 | 578 | ||
571 | /** | 579 | /** |
572 | * pci_mmap_legacy_mem - map legacy PCI memory into user memory space | 580 | * pci_mmap_legacy_mem - map legacy PCI memory into user memory space |
581 | * @filp: open sysfs file | ||
573 | * @kobj: kobject corresponding to device to be mapped | 582 | * @kobj: kobject corresponding to device to be mapped |
574 | * @attr: struct bin_attribute for this file | 583 | * @attr: struct bin_attribute for this file |
575 | * @vma: struct vm_area_struct passed to mmap | 584 | * @vma: struct vm_area_struct passed to mmap |
@@ -579,7 +588,8 @@ pci_write_legacy_io(struct kobject *kobj, struct bin_attribute *bin_attr, | |||
579 | * memory space. | 588 | * memory space. |
580 | */ | 589 | */ |
581 | static int | 590 | static int |
582 | pci_mmap_legacy_mem(struct kobject *kobj, struct bin_attribute *attr, | 591 | pci_mmap_legacy_mem(struct file *filp, struct kobject *kobj, |
592 | struct bin_attribute *attr, | ||
583 | struct vm_area_struct *vma) | 593 | struct vm_area_struct *vma) |
584 | { | 594 | { |
585 | struct pci_bus *bus = to_pci_bus(container_of(kobj, | 595 | struct pci_bus *bus = to_pci_bus(container_of(kobj, |
@@ -591,6 +601,7 @@ pci_mmap_legacy_mem(struct kobject *kobj, struct bin_attribute *attr, | |||
591 | 601 | ||
592 | /** | 602 | /** |
593 | * pci_mmap_legacy_io - map legacy PCI IO into user memory space | 603 | * pci_mmap_legacy_io - map legacy PCI IO into user memory space |
604 | * @filp: open sysfs file | ||
594 | * @kobj: kobject corresponding to device to be mapped | 605 | * @kobj: kobject corresponding to device to be mapped |
595 | * @attr: struct bin_attribute for this file | 606 | * @attr: struct bin_attribute for this file |
596 | * @vma: struct vm_area_struct passed to mmap | 607 | * @vma: struct vm_area_struct passed to mmap |
@@ -600,7 +611,8 @@ pci_mmap_legacy_mem(struct kobject *kobj, struct bin_attribute *attr, | |||
600 | * memory space. Returns -ENOSYS if the operation isn't supported | 611 | * memory space. Returns -ENOSYS if the operation isn't supported |
601 | */ | 612 | */ |
602 | static int | 613 | static int |
603 | pci_mmap_legacy_io(struct kobject *kobj, struct bin_attribute *attr, | 614 | pci_mmap_legacy_io(struct file *filp, struct kobject *kobj, |
615 | struct bin_attribute *attr, | ||
604 | struct vm_area_struct *vma) | 616 | struct vm_area_struct *vma) |
605 | { | 617 | { |
606 | struct pci_bus *bus = to_pci_bus(container_of(kobj, | 618 | struct pci_bus *bus = to_pci_bus(container_of(kobj, |
@@ -750,14 +762,16 @@ pci_mmap_resource(struct kobject *kobj, struct bin_attribute *attr, | |||
750 | } | 762 | } |
751 | 763 | ||
752 | static int | 764 | static int |
753 | pci_mmap_resource_uc(struct kobject *kobj, struct bin_attribute *attr, | 765 | pci_mmap_resource_uc(struct file *filp, struct kobject *kobj, |
766 | struct bin_attribute *attr, | ||
754 | struct vm_area_struct *vma) | 767 | struct vm_area_struct *vma) |
755 | { | 768 | { |
756 | return pci_mmap_resource(kobj, attr, vma, 0); | 769 | return pci_mmap_resource(kobj, attr, vma, 0); |
757 | } | 770 | } |
758 | 771 | ||
759 | static int | 772 | static int |
760 | pci_mmap_resource_wc(struct kobject *kobj, struct bin_attribute *attr, | 773 | pci_mmap_resource_wc(struct file *filp, struct kobject *kobj, |
774 | struct bin_attribute *attr, | ||
761 | struct vm_area_struct *vma) | 775 | struct vm_area_struct *vma) |
762 | { | 776 | { |
763 | return pci_mmap_resource(kobj, attr, vma, 1); | 777 | return pci_mmap_resource(kobj, attr, vma, 1); |
@@ -861,6 +875,7 @@ void __weak pci_remove_resource_files(struct pci_dev *dev) { return; } | |||
861 | 875 | ||
862 | /** | 876 | /** |
863 | * pci_write_rom - used to enable access to the PCI ROM display | 877 | * pci_write_rom - used to enable access to the PCI ROM display |
878 | * @filp: sysfs file | ||
864 | * @kobj: kernel object handle | 879 | * @kobj: kernel object handle |
865 | * @bin_attr: struct bin_attribute for this file | 880 | * @bin_attr: struct bin_attribute for this file |
866 | * @buf: user input | 881 | * @buf: user input |
@@ -870,7 +885,8 @@ void __weak pci_remove_resource_files(struct pci_dev *dev) { return; } | |||
870 | * writing anything except 0 enables it | 885 | * writing anything except 0 enables it |
871 | */ | 886 | */ |
872 | static ssize_t | 887 | static ssize_t |
873 | pci_write_rom(struct kobject *kobj, struct bin_attribute *bin_attr, | 888 | pci_write_rom(struct file *filp, struct kobject *kobj, |
889 | struct bin_attribute *bin_attr, | ||
874 | char *buf, loff_t off, size_t count) | 890 | char *buf, loff_t off, size_t count) |
875 | { | 891 | { |
876 | struct pci_dev *pdev = to_pci_dev(container_of(kobj, struct device, kobj)); | 892 | struct pci_dev *pdev = to_pci_dev(container_of(kobj, struct device, kobj)); |
@@ -885,6 +901,7 @@ pci_write_rom(struct kobject *kobj, struct bin_attribute *bin_attr, | |||
885 | 901 | ||
886 | /** | 902 | /** |
887 | * pci_read_rom - read a PCI ROM | 903 | * pci_read_rom - read a PCI ROM |
904 | * @filp: sysfs file | ||
888 | * @kobj: kernel object handle | 905 | * @kobj: kernel object handle |
889 | * @bin_attr: struct bin_attribute for this file | 906 | * @bin_attr: struct bin_attribute for this file |
890 | * @buf: where to put the data we read from the ROM | 907 | * @buf: where to put the data we read from the ROM |
@@ -895,7 +912,8 @@ pci_write_rom(struct kobject *kobj, struct bin_attribute *bin_attr, | |||
895 | * device corresponding to @kobj. | 912 | * device corresponding to @kobj. |
896 | */ | 913 | */ |
897 | static ssize_t | 914 | static ssize_t |
898 | pci_read_rom(struct kobject *kobj, struct bin_attribute *bin_attr, | 915 | pci_read_rom(struct file *filp, struct kobject *kobj, |
916 | struct bin_attribute *bin_attr, | ||
899 | char *buf, loff_t off, size_t count) | 917 | char *buf, loff_t off, size_t count) |
900 | { | 918 | { |
901 | struct pci_dev *pdev = to_pci_dev(container_of(kobj, struct device, kobj)); | 919 | struct pci_dev *pdev = to_pci_dev(container_of(kobj, struct device, kobj)); |
diff --git a/drivers/pcmcia/cistpl.c b/drivers/pcmcia/cistpl.c index 60d428be0b07..8844bc3e3118 100644 --- a/drivers/pcmcia/cistpl.c +++ b/drivers/pcmcia/cistpl.c | |||
@@ -1531,7 +1531,7 @@ static ssize_t pccard_extract_cis(struct pcmcia_socket *s, char *buf, | |||
1531 | } | 1531 | } |
1532 | 1532 | ||
1533 | 1533 | ||
1534 | static ssize_t pccard_show_cis(struct kobject *kobj, | 1534 | static ssize_t pccard_show_cis(struct file *filp, struct kobject *kobj, |
1535 | struct bin_attribute *bin_attr, | 1535 | struct bin_attribute *bin_attr, |
1536 | char *buf, loff_t off, size_t count) | 1536 | char *buf, loff_t off, size_t count) |
1537 | { | 1537 | { |
@@ -1562,7 +1562,7 @@ static ssize_t pccard_show_cis(struct kobject *kobj, | |||
1562 | } | 1562 | } |
1563 | 1563 | ||
1564 | 1564 | ||
1565 | static ssize_t pccard_store_cis(struct kobject *kobj, | 1565 | static ssize_t pccard_store_cis(struct file *filp, struct kobject *kobj, |
1566 | struct bin_attribute *bin_attr, | 1566 | struct bin_attribute *bin_attr, |
1567 | char *buf, loff_t off, size_t count) | 1567 | char *buf, loff_t off, size_t count) |
1568 | { | 1568 | { |
diff --git a/drivers/power/olpc_battery.c b/drivers/power/olpc_battery.c index 8fefe5a73558..baefcf1cffc9 100644 --- a/drivers/power/olpc_battery.c +++ b/drivers/power/olpc_battery.c | |||
@@ -354,7 +354,7 @@ static enum power_supply_property olpc_bat_props[] = { | |||
354 | #define EEPROM_END 0x80 | 354 | #define EEPROM_END 0x80 |
355 | #define EEPROM_SIZE (EEPROM_END - EEPROM_START) | 355 | #define EEPROM_SIZE (EEPROM_END - EEPROM_START) |
356 | 356 | ||
357 | static ssize_t olpc_bat_eeprom_read(struct kobject *kobj, | 357 | static ssize_t olpc_bat_eeprom_read(struct file *filp, struct kobject *kobj, |
358 | struct bin_attribute *attr, char *buf, loff_t off, size_t count) | 358 | struct bin_attribute *attr, char *buf, loff_t off, size_t count) |
359 | { | 359 | { |
360 | uint8_t ec_byte; | 360 | uint8_t ec_byte; |
diff --git a/drivers/rapidio/rio-sysfs.c b/drivers/rapidio/rio-sysfs.c index ba742e82c57d..00b475658356 100644 --- a/drivers/rapidio/rio-sysfs.c +++ b/drivers/rapidio/rio-sysfs.c | |||
@@ -68,7 +68,8 @@ struct device_attribute rio_dev_attrs[] = { | |||
68 | }; | 68 | }; |
69 | 69 | ||
70 | static ssize_t | 70 | static ssize_t |
71 | rio_read_config(struct kobject *kobj, struct bin_attribute *bin_attr, | 71 | rio_read_config(struct file *filp, struct kobject *kobj, |
72 | struct bin_attribute *bin_attr, | ||
72 | char *buf, loff_t off, size_t count) | 73 | char *buf, loff_t off, size_t count) |
73 | { | 74 | { |
74 | struct rio_dev *dev = | 75 | struct rio_dev *dev = |
@@ -139,7 +140,8 @@ rio_read_config(struct kobject *kobj, struct bin_attribute *bin_attr, | |||
139 | } | 140 | } |
140 | 141 | ||
141 | static ssize_t | 142 | static ssize_t |
142 | rio_write_config(struct kobject *kobj, struct bin_attribute *bin_attr, | 143 | rio_write_config(struct file *filp, struct kobject *kobj, |
144 | struct bin_attribute *bin_attr, | ||
143 | char *buf, loff_t off, size_t count) | 145 | char *buf, loff_t off, size_t count) |
144 | { | 146 | { |
145 | struct rio_dev *dev = | 147 | struct rio_dev *dev = |
diff --git a/drivers/rtc/rtc-cmos.c b/drivers/rtc/rtc-cmos.c index e9aa814ddd23..ece4dbddc0ea 100644 --- a/drivers/rtc/rtc-cmos.c +++ b/drivers/rtc/rtc-cmos.c | |||
@@ -519,7 +519,8 @@ static const struct rtc_class_ops cmos_rtc_ops = { | |||
519 | #define NVRAM_OFFSET (RTC_REG_D + 1) | 519 | #define NVRAM_OFFSET (RTC_REG_D + 1) |
520 | 520 | ||
521 | static ssize_t | 521 | static ssize_t |
522 | cmos_nvram_read(struct kobject *kobj, struct bin_attribute *attr, | 522 | cmos_nvram_read(struct file *filp, struct kobject *kobj, |
523 | struct bin_attribute *attr, | ||
523 | char *buf, loff_t off, size_t count) | 524 | char *buf, loff_t off, size_t count) |
524 | { | 525 | { |
525 | int retval; | 526 | int retval; |
@@ -547,7 +548,8 @@ cmos_nvram_read(struct kobject *kobj, struct bin_attribute *attr, | |||
547 | } | 548 | } |
548 | 549 | ||
549 | static ssize_t | 550 | static ssize_t |
550 | cmos_nvram_write(struct kobject *kobj, struct bin_attribute *attr, | 551 | cmos_nvram_write(struct file *filp, struct kobject *kobj, |
552 | struct bin_attribute *attr, | ||
551 | char *buf, loff_t off, size_t count) | 553 | char *buf, loff_t off, size_t count) |
552 | { | 554 | { |
553 | struct cmos_rtc *cmos; | 555 | struct cmos_rtc *cmos; |
diff --git a/drivers/rtc/rtc-ds1305.c b/drivers/rtc/rtc-ds1305.c index 7836c9cec557..48da85e97ca4 100644 --- a/drivers/rtc/rtc-ds1305.c +++ b/drivers/rtc/rtc-ds1305.c | |||
@@ -542,7 +542,8 @@ static void msg_init(struct spi_message *m, struct spi_transfer *x, | |||
542 | } | 542 | } |
543 | 543 | ||
544 | static ssize_t | 544 | static ssize_t |
545 | ds1305_nvram_read(struct kobject *kobj, struct bin_attribute *attr, | 545 | ds1305_nvram_read(struct file *filp, struct kobject *kobj, |
546 | struct bin_attribute *attr, | ||
546 | char *buf, loff_t off, size_t count) | 547 | char *buf, loff_t off, size_t count) |
547 | { | 548 | { |
548 | struct spi_device *spi; | 549 | struct spi_device *spi; |
@@ -572,7 +573,8 @@ ds1305_nvram_read(struct kobject *kobj, struct bin_attribute *attr, | |||
572 | } | 573 | } |
573 | 574 | ||
574 | static ssize_t | 575 | static ssize_t |
575 | ds1305_nvram_write(struct kobject *kobj, struct bin_attribute *attr, | 576 | ds1305_nvram_write(struct file *filp, struct kobject *kobj, |
577 | struct bin_attribute *attr, | ||
576 | char *buf, loff_t off, size_t count) | 578 | char *buf, loff_t off, size_t count) |
577 | { | 579 | { |
578 | struct spi_device *spi; | 580 | struct spi_device *spi; |
diff --git a/drivers/rtc/rtc-ds1307.c b/drivers/rtc/rtc-ds1307.c index c4ec5c158aa1..de033b7ac21f 100644 --- a/drivers/rtc/rtc-ds1307.c +++ b/drivers/rtc/rtc-ds1307.c | |||
@@ -556,7 +556,8 @@ static const struct rtc_class_ops ds13xx_rtc_ops = { | |||
556 | #define NVRAM_SIZE 56 | 556 | #define NVRAM_SIZE 56 |
557 | 557 | ||
558 | static ssize_t | 558 | static ssize_t |
559 | ds1307_nvram_read(struct kobject *kobj, struct bin_attribute *attr, | 559 | ds1307_nvram_read(struct file *filp, struct kobject *kobj, |
560 | struct bin_attribute *attr, | ||
560 | char *buf, loff_t off, size_t count) | 561 | char *buf, loff_t off, size_t count) |
561 | { | 562 | { |
562 | struct i2c_client *client; | 563 | struct i2c_client *client; |
@@ -580,7 +581,8 @@ ds1307_nvram_read(struct kobject *kobj, struct bin_attribute *attr, | |||
580 | } | 581 | } |
581 | 582 | ||
582 | static ssize_t | 583 | static ssize_t |
583 | ds1307_nvram_write(struct kobject *kobj, struct bin_attribute *attr, | 584 | ds1307_nvram_write(struct file *filp, struct kobject *kobj, |
585 | struct bin_attribute *attr, | ||
584 | char *buf, loff_t off, size_t count) | 586 | char *buf, loff_t off, size_t count) |
585 | { | 587 | { |
586 | struct i2c_client *client; | 588 | struct i2c_client *client; |
diff --git a/drivers/rtc/rtc-ds1511.c b/drivers/rtc/rtc-ds1511.c index 06b8566c4532..37268e97de49 100644 --- a/drivers/rtc/rtc-ds1511.c +++ b/drivers/rtc/rtc-ds1511.c | |||
@@ -423,8 +423,9 @@ static const struct rtc_class_ops ds1511_rtc_ops = { | |||
423 | }; | 423 | }; |
424 | 424 | ||
425 | static ssize_t | 425 | static ssize_t |
426 | ds1511_nvram_read(struct kobject *kobj, struct bin_attribute *ba, | 426 | ds1511_nvram_read(struct file *filp, struct kobject *kobj, |
427 | char *buf, loff_t pos, size_t size) | 427 | struct bin_attribute *ba, |
428 | char *buf, loff_t pos, size_t size) | ||
428 | { | 429 | { |
429 | ssize_t count; | 430 | ssize_t count; |
430 | 431 | ||
@@ -452,8 +453,9 @@ ds1511_nvram_read(struct kobject *kobj, struct bin_attribute *ba, | |||
452 | } | 453 | } |
453 | 454 | ||
454 | static ssize_t | 455 | static ssize_t |
455 | ds1511_nvram_write(struct kobject *kobj, struct bin_attribute *bin_attr, | 456 | ds1511_nvram_write(struct file *filp, struct kobject *kobj, |
456 | char *buf, loff_t pos, size_t size) | 457 | struct bin_attribute *bin_attr, |
458 | char *buf, loff_t pos, size_t size) | ||
457 | { | 459 | { |
458 | ssize_t count; | 460 | ssize_t count; |
459 | 461 | ||
diff --git a/drivers/rtc/rtc-ds1553.c b/drivers/rtc/rtc-ds1553.c index 244f9994bcbb..ff432e2ca275 100644 --- a/drivers/rtc/rtc-ds1553.c +++ b/drivers/rtc/rtc-ds1553.c | |||
@@ -252,7 +252,7 @@ static const struct rtc_class_ops ds1553_rtc_ops = { | |||
252 | .update_irq_enable = ds1553_rtc_update_irq_enable, | 252 | .update_irq_enable = ds1553_rtc_update_irq_enable, |
253 | }; | 253 | }; |
254 | 254 | ||
255 | static ssize_t ds1553_nvram_read(struct kobject *kobj, | 255 | static ssize_t ds1553_nvram_read(struct file *filp, struct kobject *kobj, |
256 | struct bin_attribute *bin_attr, | 256 | struct bin_attribute *bin_attr, |
257 | char *buf, loff_t pos, size_t size) | 257 | char *buf, loff_t pos, size_t size) |
258 | { | 258 | { |
@@ -267,7 +267,7 @@ static ssize_t ds1553_nvram_read(struct kobject *kobj, | |||
267 | return count; | 267 | return count; |
268 | } | 268 | } |
269 | 269 | ||
270 | static ssize_t ds1553_nvram_write(struct kobject *kobj, | 270 | static ssize_t ds1553_nvram_write(struct file *filp, struct kobject *kobj, |
271 | struct bin_attribute *bin_attr, | 271 | struct bin_attribute *bin_attr, |
272 | char *buf, loff_t pos, size_t size) | 272 | char *buf, loff_t pos, size_t size) |
273 | { | 273 | { |
diff --git a/drivers/rtc/rtc-ds1742.c b/drivers/rtc/rtc-ds1742.c index 2b4b0bc42d6f..042630c90dd3 100644 --- a/drivers/rtc/rtc-ds1742.c +++ b/drivers/rtc/rtc-ds1742.c | |||
@@ -128,7 +128,7 @@ static const struct rtc_class_ops ds1742_rtc_ops = { | |||
128 | .set_time = ds1742_rtc_set_time, | 128 | .set_time = ds1742_rtc_set_time, |
129 | }; | 129 | }; |
130 | 130 | ||
131 | static ssize_t ds1742_nvram_read(struct kobject *kobj, | 131 | static ssize_t ds1742_nvram_read(struct file *filp, struct kobject *kobj, |
132 | struct bin_attribute *bin_attr, | 132 | struct bin_attribute *bin_attr, |
133 | char *buf, loff_t pos, size_t size) | 133 | char *buf, loff_t pos, size_t size) |
134 | { | 134 | { |
@@ -143,7 +143,7 @@ static ssize_t ds1742_nvram_read(struct kobject *kobj, | |||
143 | return count; | 143 | return count; |
144 | } | 144 | } |
145 | 145 | ||
146 | static ssize_t ds1742_nvram_write(struct kobject *kobj, | 146 | static ssize_t ds1742_nvram_write(struct file *filp, struct kobject *kobj, |
147 | struct bin_attribute *bin_attr, | 147 | struct bin_attribute *bin_attr, |
148 | char *buf, loff_t pos, size_t size) | 148 | char *buf, loff_t pos, size_t size) |
149 | { | 149 | { |
diff --git a/drivers/rtc/rtc-m48t59.c b/drivers/rtc/rtc-m48t59.c index 365ff3ac2348..be8359fdb65a 100644 --- a/drivers/rtc/rtc-m48t59.c +++ b/drivers/rtc/rtc-m48t59.c | |||
@@ -343,7 +343,7 @@ static const struct rtc_class_ops m48t02_rtc_ops = { | |||
343 | .set_time = m48t59_rtc_set_time, | 343 | .set_time = m48t59_rtc_set_time, |
344 | }; | 344 | }; |
345 | 345 | ||
346 | static ssize_t m48t59_nvram_read(struct kobject *kobj, | 346 | static ssize_t m48t59_nvram_read(struct file *filp, struct kobject *kobj, |
347 | struct bin_attribute *bin_attr, | 347 | struct bin_attribute *bin_attr, |
348 | char *buf, loff_t pos, size_t size) | 348 | char *buf, loff_t pos, size_t size) |
349 | { | 349 | { |
@@ -363,7 +363,7 @@ static ssize_t m48t59_nvram_read(struct kobject *kobj, | |||
363 | return cnt; | 363 | return cnt; |
364 | } | 364 | } |
365 | 365 | ||
366 | static ssize_t m48t59_nvram_write(struct kobject *kobj, | 366 | static ssize_t m48t59_nvram_write(struct file *filp, struct kobject *kobj, |
367 | struct bin_attribute *bin_attr, | 367 | struct bin_attribute *bin_attr, |
368 | char *buf, loff_t pos, size_t size) | 368 | char *buf, loff_t pos, size_t size) |
369 | { | 369 | { |
diff --git a/drivers/rtc/rtc-stk17ta8.c b/drivers/rtc/rtc-stk17ta8.c index b53a00198dbe..3b943673cd3e 100644 --- a/drivers/rtc/rtc-stk17ta8.c +++ b/drivers/rtc/rtc-stk17ta8.c | |||
@@ -244,7 +244,7 @@ static const struct rtc_class_ops stk17ta8_rtc_ops = { | |||
244 | .alarm_irq_enable = stk17ta8_rtc_alarm_irq_enable, | 244 | .alarm_irq_enable = stk17ta8_rtc_alarm_irq_enable, |
245 | }; | 245 | }; |
246 | 246 | ||
247 | static ssize_t stk17ta8_nvram_read(struct kobject *kobj, | 247 | static ssize_t stk17ta8_nvram_read(struct file *filp, struct kobject *kobj, |
248 | struct bin_attribute *attr, char *buf, | 248 | struct bin_attribute *attr, char *buf, |
249 | loff_t pos, size_t size) | 249 | loff_t pos, size_t size) |
250 | { | 250 | { |
@@ -259,7 +259,7 @@ static ssize_t stk17ta8_nvram_read(struct kobject *kobj, | |||
259 | return count; | 259 | return count; |
260 | } | 260 | } |
261 | 261 | ||
262 | static ssize_t stk17ta8_nvram_write(struct kobject *kobj, | 262 | static ssize_t stk17ta8_nvram_write(struct file *filp, struct kobject *kobj, |
263 | struct bin_attribute *attr, char *buf, | 263 | struct bin_attribute *attr, char *buf, |
264 | loff_t pos, size_t size) | 264 | loff_t pos, size_t size) |
265 | { | 265 | { |
diff --git a/drivers/rtc/rtc-tx4939.c b/drivers/rtc/rtc-tx4939.c index 20bfc64a15c8..ec6313d15359 100644 --- a/drivers/rtc/rtc-tx4939.c +++ b/drivers/rtc/rtc-tx4939.c | |||
@@ -188,7 +188,7 @@ static const struct rtc_class_ops tx4939_rtc_ops = { | |||
188 | .alarm_irq_enable = tx4939_rtc_alarm_irq_enable, | 188 | .alarm_irq_enable = tx4939_rtc_alarm_irq_enable, |
189 | }; | 189 | }; |
190 | 190 | ||
191 | static ssize_t tx4939_rtc_nvram_read(struct kobject *kobj, | 191 | static ssize_t tx4939_rtc_nvram_read(struct file *filp, struct kobject *kobj, |
192 | struct bin_attribute *bin_attr, | 192 | struct bin_attribute *bin_attr, |
193 | char *buf, loff_t pos, size_t size) | 193 | char *buf, loff_t pos, size_t size) |
194 | { | 194 | { |
@@ -207,7 +207,7 @@ static ssize_t tx4939_rtc_nvram_read(struct kobject *kobj, | |||
207 | return count; | 207 | return count; |
208 | } | 208 | } |
209 | 209 | ||
210 | static ssize_t tx4939_rtc_nvram_write(struct kobject *kobj, | 210 | static ssize_t tx4939_rtc_nvram_write(struct file *filp, struct kobject *kobj, |
211 | struct bin_attribute *bin_attr, | 211 | struct bin_attribute *bin_attr, |
212 | char *buf, loff_t pos, size_t size) | 212 | char *buf, loff_t pos, size_t size) |
213 | { | 213 | { |
diff --git a/drivers/s390/cio/chp.c b/drivers/s390/cio/chp.c index 1d16189f2f2d..6c9fa15aac7b 100644 --- a/drivers/s390/cio/chp.c +++ b/drivers/s390/cio/chp.c | |||
@@ -135,7 +135,8 @@ static int s390_vary_chpid(struct chp_id chpid, int on) | |||
135 | /* | 135 | /* |
136 | * Channel measurement related functions | 136 | * Channel measurement related functions |
137 | */ | 137 | */ |
138 | static ssize_t chp_measurement_chars_read(struct kobject *kobj, | 138 | static ssize_t chp_measurement_chars_read(struct file *filp, |
139 | struct kobject *kobj, | ||
139 | struct bin_attribute *bin_attr, | 140 | struct bin_attribute *bin_attr, |
140 | char *buf, loff_t off, size_t count) | 141 | char *buf, loff_t off, size_t count) |
141 | { | 142 | { |
@@ -182,7 +183,7 @@ static void chp_measurement_copy_block(struct cmg_entry *buf, | |||
182 | } while (reference_buf.values[0] != buf->values[0]); | 183 | } while (reference_buf.values[0] != buf->values[0]); |
183 | } | 184 | } |
184 | 185 | ||
185 | static ssize_t chp_measurement_read(struct kobject *kobj, | 186 | static ssize_t chp_measurement_read(struct file *filp, struct kobject *kobj, |
186 | struct bin_attribute *bin_attr, | 187 | struct bin_attribute *bin_attr, |
187 | char *buf, loff_t off, size_t count) | 188 | char *buf, loff_t off, size_t count) |
188 | { | 189 | { |
diff --git a/drivers/scsi/3w-sas.c b/drivers/scsi/3w-sas.c index 54c5ffb1eaa1..d38000db9237 100644 --- a/drivers/scsi/3w-sas.c +++ b/drivers/scsi/3w-sas.c | |||
@@ -98,7 +98,7 @@ static int twl_reset_device_extension(TW_Device_Extension *tw_dev, int ioctl_res | |||
98 | /* Functions */ | 98 | /* Functions */ |
99 | 99 | ||
100 | /* This function returns AENs through sysfs */ | 100 | /* This function returns AENs through sysfs */ |
101 | static ssize_t twl_sysfs_aen_read(struct kobject *kobj, | 101 | static ssize_t twl_sysfs_aen_read(struct file *filp, struct kobject *kobj, |
102 | struct bin_attribute *bin_attr, | 102 | struct bin_attribute *bin_attr, |
103 | char *outbuf, loff_t offset, size_t count) | 103 | char *outbuf, loff_t offset, size_t count) |
104 | { | 104 | { |
@@ -129,7 +129,7 @@ static struct bin_attribute twl_sysfs_aen_read_attr = { | |||
129 | }; | 129 | }; |
130 | 130 | ||
131 | /* This function returns driver compatibility info through sysfs */ | 131 | /* This function returns driver compatibility info through sysfs */ |
132 | static ssize_t twl_sysfs_compat_info(struct kobject *kobj, | 132 | static ssize_t twl_sysfs_compat_info(struct file *filp, struct kobject *kobj, |
133 | struct bin_attribute *bin_attr, | 133 | struct bin_attribute *bin_attr, |
134 | char *outbuf, loff_t offset, size_t count) | 134 | char *outbuf, loff_t offset, size_t count) |
135 | { | 135 | { |
diff --git a/drivers/scsi/arcmsr/arcmsr_attr.c b/drivers/scsi/arcmsr/arcmsr_attr.c index 5877f29a6005..a4e04c50c436 100644 --- a/drivers/scsi/arcmsr/arcmsr_attr.c +++ b/drivers/scsi/arcmsr/arcmsr_attr.c | |||
@@ -59,7 +59,8 @@ | |||
59 | 59 | ||
60 | struct device_attribute *arcmsr_host_attrs[]; | 60 | struct device_attribute *arcmsr_host_attrs[]; |
61 | 61 | ||
62 | static ssize_t arcmsr_sysfs_iop_message_read(struct kobject *kobj, | 62 | static ssize_t arcmsr_sysfs_iop_message_read(struct file *filp, |
63 | struct kobject *kobj, | ||
63 | struct bin_attribute *bin, | 64 | struct bin_attribute *bin, |
64 | char *buf, loff_t off, | 65 | char *buf, loff_t off, |
65 | size_t count) | 66 | size_t count) |
@@ -105,7 +106,8 @@ static ssize_t arcmsr_sysfs_iop_message_read(struct kobject *kobj, | |||
105 | return (allxfer_len); | 106 | return (allxfer_len); |
106 | } | 107 | } |
107 | 108 | ||
108 | static ssize_t arcmsr_sysfs_iop_message_write(struct kobject *kobj, | 109 | static ssize_t arcmsr_sysfs_iop_message_write(struct file *filp, |
110 | struct kobject *kobj, | ||
109 | struct bin_attribute *bin, | 111 | struct bin_attribute *bin, |
110 | char *buf, loff_t off, | 112 | char *buf, loff_t off, |
111 | size_t count) | 113 | size_t count) |
@@ -153,7 +155,8 @@ static ssize_t arcmsr_sysfs_iop_message_write(struct kobject *kobj, | |||
153 | } | 155 | } |
154 | } | 156 | } |
155 | 157 | ||
156 | static ssize_t arcmsr_sysfs_iop_message_clear(struct kobject *kobj, | 158 | static ssize_t arcmsr_sysfs_iop_message_clear(struct file *filp, |
159 | struct kobject *kobj, | ||
157 | struct bin_attribute *bin, | 160 | struct bin_attribute *bin, |
158 | char *buf, loff_t off, | 161 | char *buf, loff_t off, |
159 | size_t count) | 162 | size_t count) |
diff --git a/drivers/scsi/ibmvscsi/ibmvfc.c b/drivers/scsi/ibmvscsi/ibmvfc.c index d18f45c95639..3eb2b7b3d8b0 100644 --- a/drivers/scsi/ibmvscsi/ibmvfc.c +++ b/drivers/scsi/ibmvscsi/ibmvfc.c | |||
@@ -2919,6 +2919,7 @@ static DEVICE_ATTR(log_level, S_IRUGO | S_IWUSR, | |||
2919 | #ifdef CONFIG_SCSI_IBMVFC_TRACE | 2919 | #ifdef CONFIG_SCSI_IBMVFC_TRACE |
2920 | /** | 2920 | /** |
2921 | * ibmvfc_read_trace - Dump the adapter trace | 2921 | * ibmvfc_read_trace - Dump the adapter trace |
2922 | * @filp: open sysfs file | ||
2922 | * @kobj: kobject struct | 2923 | * @kobj: kobject struct |
2923 | * @bin_attr: bin_attribute struct | 2924 | * @bin_attr: bin_attribute struct |
2924 | * @buf: buffer | 2925 | * @buf: buffer |
@@ -2928,7 +2929,7 @@ static DEVICE_ATTR(log_level, S_IRUGO | S_IWUSR, | |||
2928 | * Return value: | 2929 | * Return value: |
2929 | * number of bytes printed to buffer | 2930 | * number of bytes printed to buffer |
2930 | **/ | 2931 | **/ |
2931 | static ssize_t ibmvfc_read_trace(struct kobject *kobj, | 2932 | static ssize_t ibmvfc_read_trace(struct file *filp, struct kobject *kobj, |
2932 | struct bin_attribute *bin_attr, | 2933 | struct bin_attribute *bin_attr, |
2933 | char *buf, loff_t off, size_t count) | 2934 | char *buf, loff_t off, size_t count) |
2934 | { | 2935 | { |
diff --git a/drivers/scsi/ipr.c b/drivers/scsi/ipr.c index b90c118119d7..6a6661c35b2f 100644 --- a/drivers/scsi/ipr.c +++ b/drivers/scsi/ipr.c | |||
@@ -3120,6 +3120,7 @@ restart: | |||
3120 | #ifdef CONFIG_SCSI_IPR_TRACE | 3120 | #ifdef CONFIG_SCSI_IPR_TRACE |
3121 | /** | 3121 | /** |
3122 | * ipr_read_trace - Dump the adapter trace | 3122 | * ipr_read_trace - Dump the adapter trace |
3123 | * @filp: open sysfs file | ||
3123 | * @kobj: kobject struct | 3124 | * @kobj: kobject struct |
3124 | * @bin_attr: bin_attribute struct | 3125 | * @bin_attr: bin_attribute struct |
3125 | * @buf: buffer | 3126 | * @buf: buffer |
@@ -3129,7 +3130,7 @@ restart: | |||
3129 | * Return value: | 3130 | * Return value: |
3130 | * number of bytes printed to buffer | 3131 | * number of bytes printed to buffer |
3131 | **/ | 3132 | **/ |
3132 | static ssize_t ipr_read_trace(struct kobject *kobj, | 3133 | static ssize_t ipr_read_trace(struct file *filp, struct kobject *kobj, |
3133 | struct bin_attribute *bin_attr, | 3134 | struct bin_attribute *bin_attr, |
3134 | char *buf, loff_t off, size_t count) | 3135 | char *buf, loff_t off, size_t count) |
3135 | { | 3136 | { |
@@ -3764,6 +3765,7 @@ static struct device_attribute *ipr_ioa_attrs[] = { | |||
3764 | #ifdef CONFIG_SCSI_IPR_DUMP | 3765 | #ifdef CONFIG_SCSI_IPR_DUMP |
3765 | /** | 3766 | /** |
3766 | * ipr_read_dump - Dump the adapter | 3767 | * ipr_read_dump - Dump the adapter |
3768 | * @filp: open sysfs file | ||
3767 | * @kobj: kobject struct | 3769 | * @kobj: kobject struct |
3768 | * @bin_attr: bin_attribute struct | 3770 | * @bin_attr: bin_attribute struct |
3769 | * @buf: buffer | 3771 | * @buf: buffer |
@@ -3773,7 +3775,7 @@ static struct device_attribute *ipr_ioa_attrs[] = { | |||
3773 | * Return value: | 3775 | * Return value: |
3774 | * number of bytes printed to buffer | 3776 | * number of bytes printed to buffer |
3775 | **/ | 3777 | **/ |
3776 | static ssize_t ipr_read_dump(struct kobject *kobj, | 3778 | static ssize_t ipr_read_dump(struct file *filp, struct kobject *kobj, |
3777 | struct bin_attribute *bin_attr, | 3779 | struct bin_attribute *bin_attr, |
3778 | char *buf, loff_t off, size_t count) | 3780 | char *buf, loff_t off, size_t count) |
3779 | { | 3781 | { |
@@ -3927,6 +3929,7 @@ static int ipr_free_dump(struct ipr_ioa_cfg *ioa_cfg) | |||
3927 | 3929 | ||
3928 | /** | 3930 | /** |
3929 | * ipr_write_dump - Setup dump state of adapter | 3931 | * ipr_write_dump - Setup dump state of adapter |
3932 | * @filp: open sysfs file | ||
3930 | * @kobj: kobject struct | 3933 | * @kobj: kobject struct |
3931 | * @bin_attr: bin_attribute struct | 3934 | * @bin_attr: bin_attribute struct |
3932 | * @buf: buffer | 3935 | * @buf: buffer |
@@ -3936,7 +3939,7 @@ static int ipr_free_dump(struct ipr_ioa_cfg *ioa_cfg) | |||
3936 | * Return value: | 3939 | * Return value: |
3937 | * number of bytes printed to buffer | 3940 | * number of bytes printed to buffer |
3938 | **/ | 3941 | **/ |
3939 | static ssize_t ipr_write_dump(struct kobject *kobj, | 3942 | static ssize_t ipr_write_dump(struct file *filp, struct kobject *kobj, |
3940 | struct bin_attribute *bin_attr, | 3943 | struct bin_attribute *bin_attr, |
3941 | char *buf, loff_t off, size_t count) | 3944 | char *buf, loff_t off, size_t count) |
3942 | { | 3945 | { |
diff --git a/drivers/scsi/lpfc/lpfc_attr.c b/drivers/scsi/lpfc/lpfc_attr.c index 2e5f376d9ccc..bf33b315f93e 100644 --- a/drivers/scsi/lpfc/lpfc_attr.c +++ b/drivers/scsi/lpfc/lpfc_attr.c | |||
@@ -2643,6 +2643,7 @@ static DEVICE_ATTR(lpfc_stat_data_ctrl, S_IRUGO | S_IWUSR, | |||
2643 | 2643 | ||
2644 | /** | 2644 | /** |
2645 | * sysfs_drvr_stat_data_read - Read function for lpfc_drvr_stat_data attribute | 2645 | * sysfs_drvr_stat_data_read - Read function for lpfc_drvr_stat_data attribute |
2646 | * @filp: sysfs file | ||
2646 | * @kobj: Pointer to the kernel object | 2647 | * @kobj: Pointer to the kernel object |
2647 | * @bin_attr: Attribute object | 2648 | * @bin_attr: Attribute object |
2648 | * @buff: Buffer pointer | 2649 | * @buff: Buffer pointer |
@@ -2654,7 +2655,8 @@ static DEVICE_ATTR(lpfc_stat_data_ctrl, S_IRUGO | S_IWUSR, | |||
2654 | * applications. | 2655 | * applications. |
2655 | **/ | 2656 | **/ |
2656 | static ssize_t | 2657 | static ssize_t |
2657 | sysfs_drvr_stat_data_read(struct kobject *kobj, struct bin_attribute *bin_attr, | 2658 | sysfs_drvr_stat_data_read(struct file *filp, struct kobject *kobj, |
2659 | struct bin_attribute *bin_attr, | ||
2658 | char *buf, loff_t off, size_t count) | 2660 | char *buf, loff_t off, size_t count) |
2659 | { | 2661 | { |
2660 | struct device *dev = container_of(kobj, struct device, | 2662 | struct device *dev = container_of(kobj, struct device, |
@@ -3362,6 +3364,7 @@ struct device_attribute *lpfc_vport_attrs[] = { | |||
3362 | 3364 | ||
3363 | /** | 3365 | /** |
3364 | * sysfs_ctlreg_write - Write method for writing to ctlreg | 3366 | * sysfs_ctlreg_write - Write method for writing to ctlreg |
3367 | * @filp: open sysfs file | ||
3365 | * @kobj: kernel kobject that contains the kernel class device. | 3368 | * @kobj: kernel kobject that contains the kernel class device. |
3366 | * @bin_attr: kernel attributes passed to us. | 3369 | * @bin_attr: kernel attributes passed to us. |
3367 | * @buf: contains the data to be written to the adapter IOREG space. | 3370 | * @buf: contains the data to be written to the adapter IOREG space. |
@@ -3379,7 +3382,8 @@ struct device_attribute *lpfc_vport_attrs[] = { | |||
3379 | * value of count, buf contents written | 3382 | * value of count, buf contents written |
3380 | **/ | 3383 | **/ |
3381 | static ssize_t | 3384 | static ssize_t |
3382 | sysfs_ctlreg_write(struct kobject *kobj, struct bin_attribute *bin_attr, | 3385 | sysfs_ctlreg_write(struct file *filp, struct kobject *kobj, |
3386 | struct bin_attribute *bin_attr, | ||
3383 | char *buf, loff_t off, size_t count) | 3387 | char *buf, loff_t off, size_t count) |
3384 | { | 3388 | { |
3385 | size_t buf_off; | 3389 | size_t buf_off; |
@@ -3415,6 +3419,7 @@ sysfs_ctlreg_write(struct kobject *kobj, struct bin_attribute *bin_attr, | |||
3415 | 3419 | ||
3416 | /** | 3420 | /** |
3417 | * sysfs_ctlreg_read - Read method for reading from ctlreg | 3421 | * sysfs_ctlreg_read - Read method for reading from ctlreg |
3422 | * @filp: open sysfs file | ||
3418 | * @kobj: kernel kobject that contains the kernel class device. | 3423 | * @kobj: kernel kobject that contains the kernel class device. |
3419 | * @bin_attr: kernel attributes passed to us. | 3424 | * @bin_attr: kernel attributes passed to us. |
3420 | * @buf: if successful contains the data from the adapter IOREG space. | 3425 | * @buf: if successful contains the data from the adapter IOREG space. |
@@ -3431,7 +3436,8 @@ sysfs_ctlreg_write(struct kobject *kobj, struct bin_attribute *bin_attr, | |||
3431 | * value of count, buf contents read | 3436 | * value of count, buf contents read |
3432 | **/ | 3437 | **/ |
3433 | static ssize_t | 3438 | static ssize_t |
3434 | sysfs_ctlreg_read(struct kobject *kobj, struct bin_attribute *bin_attr, | 3439 | sysfs_ctlreg_read(struct file *filp, struct kobject *kobj, |
3440 | struct bin_attribute *bin_attr, | ||
3435 | char *buf, loff_t off, size_t count) | 3441 | char *buf, loff_t off, size_t count) |
3436 | { | 3442 | { |
3437 | size_t buf_off; | 3443 | size_t buf_off; |
@@ -3496,6 +3502,7 @@ sysfs_mbox_idle(struct lpfc_hba *phba) | |||
3496 | 3502 | ||
3497 | /** | 3503 | /** |
3498 | * sysfs_mbox_write - Write method for writing information via mbox | 3504 | * sysfs_mbox_write - Write method for writing information via mbox |
3505 | * @filp: open sysfs file | ||
3499 | * @kobj: kernel kobject that contains the kernel class device. | 3506 | * @kobj: kernel kobject that contains the kernel class device. |
3500 | * @bin_attr: kernel attributes passed to us. | 3507 | * @bin_attr: kernel attributes passed to us. |
3501 | * @buf: contains the data to be written to sysfs mbox. | 3508 | * @buf: contains the data to be written to sysfs mbox. |
@@ -3516,7 +3523,8 @@ sysfs_mbox_idle(struct lpfc_hba *phba) | |||
3516 | * count number of bytes transferred | 3523 | * count number of bytes transferred |
3517 | **/ | 3524 | **/ |
3518 | static ssize_t | 3525 | static ssize_t |
3519 | sysfs_mbox_write(struct kobject *kobj, struct bin_attribute *bin_attr, | 3526 | sysfs_mbox_write(struct file *filp, struct kobject *kobj, |
3527 | struct bin_attribute *bin_attr, | ||
3520 | char *buf, loff_t off, size_t count) | 3528 | char *buf, loff_t off, size_t count) |
3521 | { | 3529 | { |
3522 | struct device *dev = container_of(kobj, struct device, kobj); | 3530 | struct device *dev = container_of(kobj, struct device, kobj); |
@@ -3571,6 +3579,7 @@ sysfs_mbox_write(struct kobject *kobj, struct bin_attribute *bin_attr, | |||
3571 | 3579 | ||
3572 | /** | 3580 | /** |
3573 | * sysfs_mbox_read - Read method for reading information via mbox | 3581 | * sysfs_mbox_read - Read method for reading information via mbox |
3582 | * @filp: open sysfs file | ||
3574 | * @kobj: kernel kobject that contains the kernel class device. | 3583 | * @kobj: kernel kobject that contains the kernel class device. |
3575 | * @bin_attr: kernel attributes passed to us. | 3584 | * @bin_attr: kernel attributes passed to us. |
3576 | * @buf: contains the data to be read from sysfs mbox. | 3585 | * @buf: contains the data to be read from sysfs mbox. |
@@ -3593,7 +3602,8 @@ sysfs_mbox_write(struct kobject *kobj, struct bin_attribute *bin_attr, | |||
3593 | * count number of bytes transferred | 3602 | * count number of bytes transferred |
3594 | **/ | 3603 | **/ |
3595 | static ssize_t | 3604 | static ssize_t |
3596 | sysfs_mbox_read(struct kobject *kobj, struct bin_attribute *bin_attr, | 3605 | sysfs_mbox_read(struct file *filp, struct kobject *kobj, |
3606 | struct bin_attribute *bin_attr, | ||
3597 | char *buf, loff_t off, size_t count) | 3607 | char *buf, loff_t off, size_t count) |
3598 | { | 3608 | { |
3599 | struct device *dev = container_of(kobj, struct device, kobj); | 3609 | struct device *dev = container_of(kobj, struct device, kobj); |
diff --git a/drivers/scsi/qla2xxx/qla_attr.c b/drivers/scsi/qla2xxx/qla_attr.c index 3b708606b932..1e4cafabba15 100644 --- a/drivers/scsi/qla2xxx/qla_attr.c +++ b/drivers/scsi/qla2xxx/qla_attr.c | |||
@@ -16,7 +16,7 @@ static int qla24xx_vport_disable(struct fc_vport *, bool); | |||
16 | /* SYSFS attributes --------------------------------------------------------- */ | 16 | /* SYSFS attributes --------------------------------------------------------- */ |
17 | 17 | ||
18 | static ssize_t | 18 | static ssize_t |
19 | qla2x00_sysfs_read_fw_dump(struct kobject *kobj, | 19 | qla2x00_sysfs_read_fw_dump(struct file *filp, struct kobject *kobj, |
20 | struct bin_attribute *bin_attr, | 20 | struct bin_attribute *bin_attr, |
21 | char *buf, loff_t off, size_t count) | 21 | char *buf, loff_t off, size_t count) |
22 | { | 22 | { |
@@ -32,7 +32,7 @@ qla2x00_sysfs_read_fw_dump(struct kobject *kobj, | |||
32 | } | 32 | } |
33 | 33 | ||
34 | static ssize_t | 34 | static ssize_t |
35 | qla2x00_sysfs_write_fw_dump(struct kobject *kobj, | 35 | qla2x00_sysfs_write_fw_dump(struct file *filp, struct kobject *kobj, |
36 | struct bin_attribute *bin_attr, | 36 | struct bin_attribute *bin_attr, |
37 | char *buf, loff_t off, size_t count) | 37 | char *buf, loff_t off, size_t count) |
38 | { | 38 | { |
@@ -92,7 +92,7 @@ static struct bin_attribute sysfs_fw_dump_attr = { | |||
92 | }; | 92 | }; |
93 | 93 | ||
94 | static ssize_t | 94 | static ssize_t |
95 | qla2x00_sysfs_read_nvram(struct kobject *kobj, | 95 | qla2x00_sysfs_read_nvram(struct file *filp, struct kobject *kobj, |
96 | struct bin_attribute *bin_attr, | 96 | struct bin_attribute *bin_attr, |
97 | char *buf, loff_t off, size_t count) | 97 | char *buf, loff_t off, size_t count) |
98 | { | 98 | { |
@@ -111,7 +111,7 @@ qla2x00_sysfs_read_nvram(struct kobject *kobj, | |||
111 | } | 111 | } |
112 | 112 | ||
113 | static ssize_t | 113 | static ssize_t |
114 | qla2x00_sysfs_write_nvram(struct kobject *kobj, | 114 | qla2x00_sysfs_write_nvram(struct file *filp, struct kobject *kobj, |
115 | struct bin_attribute *bin_attr, | 115 | struct bin_attribute *bin_attr, |
116 | char *buf, loff_t off, size_t count) | 116 | char *buf, loff_t off, size_t count) |
117 | { | 117 | { |
@@ -177,7 +177,7 @@ static struct bin_attribute sysfs_nvram_attr = { | |||
177 | }; | 177 | }; |
178 | 178 | ||
179 | static ssize_t | 179 | static ssize_t |
180 | qla2x00_sysfs_read_optrom(struct kobject *kobj, | 180 | qla2x00_sysfs_read_optrom(struct file *filp, struct kobject *kobj, |
181 | struct bin_attribute *bin_attr, | 181 | struct bin_attribute *bin_attr, |
182 | char *buf, loff_t off, size_t count) | 182 | char *buf, loff_t off, size_t count) |
183 | { | 183 | { |
@@ -193,7 +193,7 @@ qla2x00_sysfs_read_optrom(struct kobject *kobj, | |||
193 | } | 193 | } |
194 | 194 | ||
195 | static ssize_t | 195 | static ssize_t |
196 | qla2x00_sysfs_write_optrom(struct kobject *kobj, | 196 | qla2x00_sysfs_write_optrom(struct file *filp, struct kobject *kobj, |
197 | struct bin_attribute *bin_attr, | 197 | struct bin_attribute *bin_attr, |
198 | char *buf, loff_t off, size_t count) | 198 | char *buf, loff_t off, size_t count) |
199 | { | 199 | { |
@@ -224,7 +224,7 @@ static struct bin_attribute sysfs_optrom_attr = { | |||
224 | }; | 224 | }; |
225 | 225 | ||
226 | static ssize_t | 226 | static ssize_t |
227 | qla2x00_sysfs_write_optrom_ctl(struct kobject *kobj, | 227 | qla2x00_sysfs_write_optrom_ctl(struct file *filp, struct kobject *kobj, |
228 | struct bin_attribute *bin_attr, | 228 | struct bin_attribute *bin_attr, |
229 | char *buf, loff_t off, size_t count) | 229 | char *buf, loff_t off, size_t count) |
230 | { | 230 | { |
@@ -387,7 +387,7 @@ static struct bin_attribute sysfs_optrom_ctl_attr = { | |||
387 | }; | 387 | }; |
388 | 388 | ||
389 | static ssize_t | 389 | static ssize_t |
390 | qla2x00_sysfs_read_vpd(struct kobject *kobj, | 390 | qla2x00_sysfs_read_vpd(struct file *filp, struct kobject *kobj, |
391 | struct bin_attribute *bin_attr, | 391 | struct bin_attribute *bin_attr, |
392 | char *buf, loff_t off, size_t count) | 392 | char *buf, loff_t off, size_t count) |
393 | { | 393 | { |
@@ -408,7 +408,7 @@ qla2x00_sysfs_read_vpd(struct kobject *kobj, | |||
408 | } | 408 | } |
409 | 409 | ||
410 | static ssize_t | 410 | static ssize_t |
411 | qla2x00_sysfs_write_vpd(struct kobject *kobj, | 411 | qla2x00_sysfs_write_vpd(struct file *filp, struct kobject *kobj, |
412 | struct bin_attribute *bin_attr, | 412 | struct bin_attribute *bin_attr, |
413 | char *buf, loff_t off, size_t count) | 413 | char *buf, loff_t off, size_t count) |
414 | { | 414 | { |
@@ -461,7 +461,7 @@ static struct bin_attribute sysfs_vpd_attr = { | |||
461 | }; | 461 | }; |
462 | 462 | ||
463 | static ssize_t | 463 | static ssize_t |
464 | qla2x00_sysfs_read_sfp(struct kobject *kobj, | 464 | qla2x00_sysfs_read_sfp(struct file *filp, struct kobject *kobj, |
465 | struct bin_attribute *bin_attr, | 465 | struct bin_attribute *bin_attr, |
466 | char *buf, loff_t off, size_t count) | 466 | char *buf, loff_t off, size_t count) |
467 | { | 467 | { |
@@ -522,7 +522,7 @@ static struct bin_attribute sysfs_sfp_attr = { | |||
522 | }; | 522 | }; |
523 | 523 | ||
524 | static ssize_t | 524 | static ssize_t |
525 | qla2x00_sysfs_write_reset(struct kobject *kobj, | 525 | qla2x00_sysfs_write_reset(struct file *filp, struct kobject *kobj, |
526 | struct bin_attribute *bin_attr, | 526 | struct bin_attribute *bin_attr, |
527 | char *buf, loff_t off, size_t count) | 527 | char *buf, loff_t off, size_t count) |
528 | { | 528 | { |
@@ -592,7 +592,7 @@ static struct bin_attribute sysfs_reset_attr = { | |||
592 | }; | 592 | }; |
593 | 593 | ||
594 | static ssize_t | 594 | static ssize_t |
595 | qla2x00_sysfs_write_edc(struct kobject *kobj, | 595 | qla2x00_sysfs_write_edc(struct file *filp, struct kobject *kobj, |
596 | struct bin_attribute *bin_attr, | 596 | struct bin_attribute *bin_attr, |
597 | char *buf, loff_t off, size_t count) | 597 | char *buf, loff_t off, size_t count) |
598 | { | 598 | { |
@@ -650,7 +650,7 @@ static struct bin_attribute sysfs_edc_attr = { | |||
650 | }; | 650 | }; |
651 | 651 | ||
652 | static ssize_t | 652 | static ssize_t |
653 | qla2x00_sysfs_write_edc_status(struct kobject *kobj, | 653 | qla2x00_sysfs_write_edc_status(struct file *filp, struct kobject *kobj, |
654 | struct bin_attribute *bin_attr, | 654 | struct bin_attribute *bin_attr, |
655 | char *buf, loff_t off, size_t count) | 655 | char *buf, loff_t off, size_t count) |
656 | { | 656 | { |
@@ -700,7 +700,7 @@ qla2x00_sysfs_write_edc_status(struct kobject *kobj, | |||
700 | } | 700 | } |
701 | 701 | ||
702 | static ssize_t | 702 | static ssize_t |
703 | qla2x00_sysfs_read_edc_status(struct kobject *kobj, | 703 | qla2x00_sysfs_read_edc_status(struct file *filp, struct kobject *kobj, |
704 | struct bin_attribute *bin_attr, | 704 | struct bin_attribute *bin_attr, |
705 | char *buf, loff_t off, size_t count) | 705 | char *buf, loff_t off, size_t count) |
706 | { | 706 | { |
@@ -730,7 +730,7 @@ static struct bin_attribute sysfs_edc_status_attr = { | |||
730 | }; | 730 | }; |
731 | 731 | ||
732 | static ssize_t | 732 | static ssize_t |
733 | qla2x00_sysfs_read_xgmac_stats(struct kobject *kobj, | 733 | qla2x00_sysfs_read_xgmac_stats(struct file *filp, struct kobject *kobj, |
734 | struct bin_attribute *bin_attr, | 734 | struct bin_attribute *bin_attr, |
735 | char *buf, loff_t off, size_t count) | 735 | char *buf, loff_t off, size_t count) |
736 | { | 736 | { |
@@ -782,7 +782,7 @@ static struct bin_attribute sysfs_xgmac_stats_attr = { | |||
782 | }; | 782 | }; |
783 | 783 | ||
784 | static ssize_t | 784 | static ssize_t |
785 | qla2x00_sysfs_read_dcbx_tlv(struct kobject *kobj, | 785 | qla2x00_sysfs_read_dcbx_tlv(struct file *filp, struct kobject *kobj, |
786 | struct bin_attribute *bin_attr, | 786 | struct bin_attribute *bin_attr, |
787 | char *buf, loff_t off, size_t count) | 787 | char *buf, loff_t off, size_t count) |
788 | { | 788 | { |
diff --git a/drivers/staging/udlfb/udlfb.c b/drivers/staging/udlfb/udlfb.c index aa8195199a2c..577f2bf6eb23 100644 --- a/drivers/staging/udlfb/udlfb.c +++ b/drivers/staging/udlfb/udlfb.c | |||
@@ -1063,7 +1063,8 @@ static ssize_t metrics_misc_show(struct device *fbdev, | |||
1063 | atomic_read(&dev->lost_pixels) ? "yes" : "no"); | 1063 | atomic_read(&dev->lost_pixels) ? "yes" : "no"); |
1064 | } | 1064 | } |
1065 | 1065 | ||
1066 | static ssize_t edid_show(struct kobject *kobj, struct bin_attribute *a, | 1066 | static ssize_t edid_show(struct file *filp, struct kobject *kobj, |
1067 | struct bin_attribute *a, | ||
1067 | char *buf, loff_t off, size_t count) { | 1068 | char *buf, loff_t off, size_t count) { |
1068 | struct device *fbdev = container_of(kobj, struct device, kobj); | 1069 | struct device *fbdev = container_of(kobj, struct device, kobj); |
1069 | struct fb_info *fb_info = dev_get_drvdata(fbdev); | 1070 | struct fb_info *fb_info = dev_get_drvdata(fbdev); |
diff --git a/drivers/usb/core/sysfs.c b/drivers/usb/core/sysfs.c index 06863befaf3a..448f5b47fc48 100644 --- a/drivers/usb/core/sysfs.c +++ b/drivers/usb/core/sysfs.c | |||
@@ -658,7 +658,8 @@ const struct attribute_group *usb_device_groups[] = { | |||
658 | /* Binary descriptors */ | 658 | /* Binary descriptors */ |
659 | 659 | ||
660 | static ssize_t | 660 | static ssize_t |
661 | read_descriptors(struct kobject *kobj, struct bin_attribute *attr, | 661 | read_descriptors(struct file *filp, struct kobject *kobj, |
662 | struct bin_attribute *attr, | ||
662 | char *buf, loff_t off, size_t count) | 663 | char *buf, loff_t off, size_t count) |
663 | { | 664 | { |
664 | struct device *dev = container_of(kobj, struct device, kobj); | 665 | struct device *dev = container_of(kobj, struct device, kobj); |
diff --git a/drivers/video/aty/radeon_base.c b/drivers/video/aty/radeon_base.c index 6c37e8ee5efe..3c1e13ed1cba 100644 --- a/drivers/video/aty/radeon_base.c +++ b/drivers/video/aty/radeon_base.c | |||
@@ -2099,7 +2099,7 @@ static ssize_t radeon_show_one_edid(char *buf, loff_t off, size_t count, const u | |||
2099 | } | 2099 | } |
2100 | 2100 | ||
2101 | 2101 | ||
2102 | static ssize_t radeon_show_edid1(struct kobject *kobj, | 2102 | static ssize_t radeon_show_edid1(struct file *filp, struct kobject *kobj, |
2103 | struct bin_attribute *bin_attr, | 2103 | struct bin_attribute *bin_attr, |
2104 | char *buf, loff_t off, size_t count) | 2104 | char *buf, loff_t off, size_t count) |
2105 | { | 2105 | { |
@@ -2112,7 +2112,7 @@ static ssize_t radeon_show_edid1(struct kobject *kobj, | |||
2112 | } | 2112 | } |
2113 | 2113 | ||
2114 | 2114 | ||
2115 | static ssize_t radeon_show_edid2(struct kobject *kobj, | 2115 | static ssize_t radeon_show_edid2(struct file *filp, struct kobject *kobj, |
2116 | struct bin_attribute *bin_attr, | 2116 | struct bin_attribute *bin_attr, |
2117 | char *buf, loff_t off, size_t count) | 2117 | char *buf, loff_t off, size_t count) |
2118 | { | 2118 | { |
diff --git a/drivers/w1/slaves/w1_ds2431.c b/drivers/w1/slaves/w1_ds2431.c index 2c6c0cf6a20f..84e2410aec1d 100644 --- a/drivers/w1/slaves/w1_ds2431.c +++ b/drivers/w1/slaves/w1_ds2431.c | |||
@@ -96,7 +96,7 @@ static int w1_f2d_readblock(struct w1_slave *sl, int off, int count, char *buf) | |||
96 | return -1; | 96 | return -1; |
97 | } | 97 | } |
98 | 98 | ||
99 | static ssize_t w1_f2d_read_bin(struct kobject *kobj, | 99 | static ssize_t w1_f2d_read_bin(struct file *filp, struct kobject *kobj, |
100 | struct bin_attribute *bin_attr, | 100 | struct bin_attribute *bin_attr, |
101 | char *buf, loff_t off, size_t count) | 101 | char *buf, loff_t off, size_t count) |
102 | { | 102 | { |
@@ -202,7 +202,7 @@ retry: | |||
202 | return 0; | 202 | return 0; |
203 | } | 203 | } |
204 | 204 | ||
205 | static ssize_t w1_f2d_write_bin(struct kobject *kobj, | 205 | static ssize_t w1_f2d_write_bin(struct file *filp, struct kobject *kobj, |
206 | struct bin_attribute *bin_attr, | 206 | struct bin_attribute *bin_attr, |
207 | char *buf, loff_t off, size_t count) | 207 | char *buf, loff_t off, size_t count) |
208 | { | 208 | { |
diff --git a/drivers/w1/slaves/w1_ds2433.c b/drivers/w1/slaves/w1_ds2433.c index d2bf32118a98..0f7b8f9c509a 100644 --- a/drivers/w1/slaves/w1_ds2433.c +++ b/drivers/w1/slaves/w1_ds2433.c | |||
@@ -92,7 +92,7 @@ static int w1_f23_refresh_block(struct w1_slave *sl, struct w1_f23_data *data, | |||
92 | } | 92 | } |
93 | #endif /* CONFIG_W1_SLAVE_DS2433_CRC */ | 93 | #endif /* CONFIG_W1_SLAVE_DS2433_CRC */ |
94 | 94 | ||
95 | static ssize_t w1_f23_read_bin(struct kobject *kobj, | 95 | static ssize_t w1_f23_read_bin(struct file *filp, struct kobject *kobj, |
96 | struct bin_attribute *bin_attr, | 96 | struct bin_attribute *bin_attr, |
97 | char *buf, loff_t off, size_t count) | 97 | char *buf, loff_t off, size_t count) |
98 | { | 98 | { |
@@ -206,7 +206,7 @@ static int w1_f23_write(struct w1_slave *sl, int addr, int len, const u8 *data) | |||
206 | return 0; | 206 | return 0; |
207 | } | 207 | } |
208 | 208 | ||
209 | static ssize_t w1_f23_write_bin(struct kobject *kobj, | 209 | static ssize_t w1_f23_write_bin(struct file *filp, struct kobject *kobj, |
210 | struct bin_attribute *bin_attr, | 210 | struct bin_attribute *bin_attr, |
211 | char *buf, loff_t off, size_t count) | 211 | char *buf, loff_t off, size_t count) |
212 | { | 212 | { |
diff --git a/drivers/w1/slaves/w1_ds2760.c b/drivers/w1/slaves/w1_ds2760.c index 6e153343e117..483d45180911 100644 --- a/drivers/w1/slaves/w1_ds2760.c +++ b/drivers/w1/slaves/w1_ds2760.c | |||
@@ -97,7 +97,7 @@ int w1_ds2760_recall_eeprom(struct device *dev, int addr) | |||
97 | return w1_ds2760_eeprom_cmd(dev, addr, W1_DS2760_RECALL_DATA); | 97 | return w1_ds2760_eeprom_cmd(dev, addr, W1_DS2760_RECALL_DATA); |
98 | } | 98 | } |
99 | 99 | ||
100 | static ssize_t w1_ds2760_read_bin(struct kobject *kobj, | 100 | static ssize_t w1_ds2760_read_bin(struct file *filp, struct kobject *kobj, |
101 | struct bin_attribute *bin_attr, | 101 | struct bin_attribute *bin_attr, |
102 | char *buf, loff_t off, size_t count) | 102 | char *buf, loff_t off, size_t count) |
103 | { | 103 | { |
diff --git a/drivers/w1/w1.c b/drivers/w1/w1.c index ad5897dc4495..2839e281cd65 100644 --- a/drivers/w1/w1.c +++ b/drivers/w1/w1.c | |||
@@ -120,7 +120,7 @@ static struct device_attribute w1_slave_attr_id = | |||
120 | 120 | ||
121 | /* Default family */ | 121 | /* Default family */ |
122 | 122 | ||
123 | static ssize_t w1_default_write(struct kobject *kobj, | 123 | static ssize_t w1_default_write(struct file *filp, struct kobject *kobj, |
124 | struct bin_attribute *bin_attr, | 124 | struct bin_attribute *bin_attr, |
125 | char *buf, loff_t off, size_t count) | 125 | char *buf, loff_t off, size_t count) |
126 | { | 126 | { |
@@ -139,7 +139,7 @@ out_up: | |||
139 | return count; | 139 | return count; |
140 | } | 140 | } |
141 | 141 | ||
142 | static ssize_t w1_default_read(struct kobject *kobj, | 142 | static ssize_t w1_default_read(struct file *filp, struct kobject *kobj, |
143 | struct bin_attribute *bin_attr, | 143 | struct bin_attribute *bin_attr, |
144 | char *buf, loff_t off, size_t count) | 144 | char *buf, loff_t off, size_t count) |
145 | { | 145 | { |
diff --git a/drivers/zorro/zorro-sysfs.c b/drivers/zorro/zorro-sysfs.c index eb924e0a64ce..26f7184ef9e1 100644 --- a/drivers/zorro/zorro-sysfs.c +++ b/drivers/zorro/zorro-sysfs.c | |||
@@ -49,7 +49,7 @@ static ssize_t zorro_show_resource(struct device *dev, struct device_attribute * | |||
49 | 49 | ||
50 | static DEVICE_ATTR(resource, S_IRUGO, zorro_show_resource, NULL); | 50 | static DEVICE_ATTR(resource, S_IRUGO, zorro_show_resource, NULL); |
51 | 51 | ||
52 | static ssize_t zorro_read_config(struct kobject *kobj, | 52 | static ssize_t zorro_read_config(struct file *filp, struct kobject *kobj, |
53 | struct bin_attribute *bin_attr, | 53 | struct bin_attribute *bin_attr, |
54 | char *buf, loff_t off, size_t count) | 54 | char *buf, loff_t off, size_t count) |
55 | { | 55 | { |
diff --git a/fs/sysfs/bin.c b/fs/sysfs/bin.c index 806b277453f9..4e321f7353fa 100644 --- a/fs/sysfs/bin.c +++ b/fs/sysfs/bin.c | |||
@@ -46,9 +46,9 @@ struct bin_buffer { | |||
46 | }; | 46 | }; |
47 | 47 | ||
48 | static int | 48 | static int |
49 | fill_read(struct dentry *dentry, char *buffer, loff_t off, size_t count) | 49 | fill_read(struct file *file, char *buffer, loff_t off, size_t count) |
50 | { | 50 | { |
51 | struct sysfs_dirent *attr_sd = dentry->d_fsdata; | 51 | struct sysfs_dirent *attr_sd = file->f_path.dentry->d_fsdata; |
52 | struct bin_attribute *attr = attr_sd->s_bin_attr.bin_attr; | 52 | struct bin_attribute *attr = attr_sd->s_bin_attr.bin_attr; |
53 | struct kobject *kobj = attr_sd->s_parent->s_dir.kobj; | 53 | struct kobject *kobj = attr_sd->s_parent->s_dir.kobj; |
54 | int rc; | 54 | int rc; |
@@ -59,7 +59,7 @@ fill_read(struct dentry *dentry, char *buffer, loff_t off, size_t count) | |||
59 | 59 | ||
60 | rc = -EIO; | 60 | rc = -EIO; |
61 | if (attr->read) | 61 | if (attr->read) |
62 | rc = attr->read(kobj, attr, buffer, off, count); | 62 | rc = attr->read(file, kobj, attr, buffer, off, count); |
63 | 63 | ||
64 | sysfs_put_active(attr_sd); | 64 | sysfs_put_active(attr_sd); |
65 | 65 | ||
@@ -70,8 +70,7 @@ static ssize_t | |||
70 | read(struct file *file, char __user *userbuf, size_t bytes, loff_t *off) | 70 | read(struct file *file, char __user *userbuf, size_t bytes, loff_t *off) |
71 | { | 71 | { |
72 | struct bin_buffer *bb = file->private_data; | 72 | struct bin_buffer *bb = file->private_data; |
73 | struct dentry *dentry = file->f_path.dentry; | 73 | int size = file->f_path.dentry->d_inode->i_size; |
74 | int size = dentry->d_inode->i_size; | ||
75 | loff_t offs = *off; | 74 | loff_t offs = *off; |
76 | int count = min_t(size_t, bytes, PAGE_SIZE); | 75 | int count = min_t(size_t, bytes, PAGE_SIZE); |
77 | char *temp; | 76 | char *temp; |
@@ -92,7 +91,7 @@ read(struct file *file, char __user *userbuf, size_t bytes, loff_t *off) | |||
92 | 91 | ||
93 | mutex_lock(&bb->mutex); | 92 | mutex_lock(&bb->mutex); |
94 | 93 | ||
95 | count = fill_read(dentry, bb->buffer, offs, count); | 94 | count = fill_read(file, bb->buffer, offs, count); |
96 | if (count < 0) { | 95 | if (count < 0) { |
97 | mutex_unlock(&bb->mutex); | 96 | mutex_unlock(&bb->mutex); |
98 | goto out_free; | 97 | goto out_free; |
@@ -117,9 +116,9 @@ read(struct file *file, char __user *userbuf, size_t bytes, loff_t *off) | |||
117 | } | 116 | } |
118 | 117 | ||
119 | static int | 118 | static int |
120 | flush_write(struct dentry *dentry, char *buffer, loff_t offset, size_t count) | 119 | flush_write(struct file *file, char *buffer, loff_t offset, size_t count) |
121 | { | 120 | { |
122 | struct sysfs_dirent *attr_sd = dentry->d_fsdata; | 121 | struct sysfs_dirent *attr_sd = file->f_path.dentry->d_fsdata; |
123 | struct bin_attribute *attr = attr_sd->s_bin_attr.bin_attr; | 122 | struct bin_attribute *attr = attr_sd->s_bin_attr.bin_attr; |
124 | struct kobject *kobj = attr_sd->s_parent->s_dir.kobj; | 123 | struct kobject *kobj = attr_sd->s_parent->s_dir.kobj; |
125 | int rc; | 124 | int rc; |
@@ -130,7 +129,7 @@ flush_write(struct dentry *dentry, char *buffer, loff_t offset, size_t count) | |||
130 | 129 | ||
131 | rc = -EIO; | 130 | rc = -EIO; |
132 | if (attr->write) | 131 | if (attr->write) |
133 | rc = attr->write(kobj, attr, buffer, offset, count); | 132 | rc = attr->write(file, kobj, attr, buffer, offset, count); |
134 | 133 | ||
135 | sysfs_put_active(attr_sd); | 134 | sysfs_put_active(attr_sd); |
136 | 135 | ||
@@ -141,8 +140,7 @@ static ssize_t write(struct file *file, const char __user *userbuf, | |||
141 | size_t bytes, loff_t *off) | 140 | size_t bytes, loff_t *off) |
142 | { | 141 | { |
143 | struct bin_buffer *bb = file->private_data; | 142 | struct bin_buffer *bb = file->private_data; |
144 | struct dentry *dentry = file->f_path.dentry; | 143 | int size = file->f_path.dentry->d_inode->i_size; |
145 | int size = dentry->d_inode->i_size; | ||
146 | loff_t offs = *off; | 144 | loff_t offs = *off; |
147 | int count = min_t(size_t, bytes, PAGE_SIZE); | 145 | int count = min_t(size_t, bytes, PAGE_SIZE); |
148 | char *temp; | 146 | char *temp; |
@@ -165,7 +163,7 @@ static ssize_t write(struct file *file, const char __user *userbuf, | |||
165 | 163 | ||
166 | memcpy(bb->buffer, temp, count); | 164 | memcpy(bb->buffer, temp, count); |
167 | 165 | ||
168 | count = flush_write(dentry, bb->buffer, offs, count); | 166 | count = flush_write(file, bb->buffer, offs, count); |
169 | mutex_unlock(&bb->mutex); | 167 | mutex_unlock(&bb->mutex); |
170 | 168 | ||
171 | if (count > 0) | 169 | if (count > 0) |
@@ -363,7 +361,7 @@ static int mmap(struct file *file, struct vm_area_struct *vma) | |||
363 | if (!attr->mmap) | 361 | if (!attr->mmap) |
364 | goto out_put; | 362 | goto out_put; |
365 | 363 | ||
366 | rc = attr->mmap(kobj, attr, vma); | 364 | rc = attr->mmap(file, kobj, attr, vma); |
367 | if (rc) | 365 | if (rc) |
368 | goto out_put; | 366 | goto out_put; |
369 | 367 | ||
diff --git a/include/linux/sysfs.h b/include/linux/sysfs.h index 6903e9204032..f2694eb4dd3d 100644 --- a/include/linux/sysfs.h +++ b/include/linux/sysfs.h | |||
@@ -87,17 +87,18 @@ struct attribute_group { | |||
87 | 87 | ||
88 | #define attr_name(_attr) (_attr).attr.name | 88 | #define attr_name(_attr) (_attr).attr.name |
89 | 89 | ||
90 | struct file; | ||
90 | struct vm_area_struct; | 91 | struct vm_area_struct; |
91 | 92 | ||
92 | struct bin_attribute { | 93 | struct bin_attribute { |
93 | struct attribute attr; | 94 | struct attribute attr; |
94 | size_t size; | 95 | size_t size; |
95 | void *private; | 96 | void *private; |
96 | ssize_t (*read)(struct kobject *, struct bin_attribute *, | 97 | ssize_t (*read)(struct file *, struct kobject *, struct bin_attribute *, |
97 | char *, loff_t, size_t); | 98 | char *, loff_t, size_t); |
98 | ssize_t (*write)(struct kobject *, struct bin_attribute *, | 99 | ssize_t (*write)(struct file *,struct kobject *, struct bin_attribute *, |
99 | char *, loff_t, size_t); | 100 | char *, loff_t, size_t); |
100 | int (*mmap)(struct kobject *, struct bin_attribute *attr, | 101 | int (*mmap)(struct file *, struct kobject *, struct bin_attribute *attr, |
101 | struct vm_area_struct *vma); | 102 | struct vm_area_struct *vma); |
102 | }; | 103 | }; |
103 | 104 | ||
diff --git a/kernel/ksysfs.c b/kernel/ksysfs.c index 21fe3c426948..0b624e791805 100644 --- a/kernel/ksysfs.c +++ b/kernel/ksysfs.c | |||
@@ -138,7 +138,8 @@ extern const void __start_notes __attribute__((weak)); | |||
138 | extern const void __stop_notes __attribute__((weak)); | 138 | extern const void __stop_notes __attribute__((weak)); |
139 | #define notes_size (&__stop_notes - &__start_notes) | 139 | #define notes_size (&__stop_notes - &__start_notes) |
140 | 140 | ||
141 | static ssize_t notes_read(struct kobject *kobj, struct bin_attribute *bin_attr, | 141 | static ssize_t notes_read(struct file *filp, struct kobject *kobj, |
142 | struct bin_attribute *bin_attr, | ||
142 | char *buf, loff_t off, size_t count) | 143 | char *buf, loff_t off, size_t count) |
143 | { | 144 | { |
144 | memcpy(buf, &__start_notes + off, count); | 145 | memcpy(buf, &__start_notes + off, count); |
diff --git a/kernel/module.c b/kernel/module.c index e2564580f3f1..5e14483768bb 100644 --- a/kernel/module.c +++ b/kernel/module.c | |||
@@ -1182,7 +1182,7 @@ struct module_notes_attrs { | |||
1182 | struct bin_attribute attrs[0]; | 1182 | struct bin_attribute attrs[0]; |
1183 | }; | 1183 | }; |
1184 | 1184 | ||
1185 | static ssize_t module_notes_read(struct kobject *kobj, | 1185 | static ssize_t module_notes_read(struct file *filp, struct kobject *kobj, |
1186 | struct bin_attribute *bin_attr, | 1186 | struct bin_attribute *bin_attr, |
1187 | char *buf, loff_t pos, size_t count) | 1187 | char *buf, loff_t pos, size_t count) |
1188 | { | 1188 | { |
diff --git a/net/bridge/br_sysfs_br.c b/net/bridge/br_sysfs_br.c index dd321e39e621..486b8f3861d2 100644 --- a/net/bridge/br_sysfs_br.c +++ b/net/bridge/br_sysfs_br.c | |||
@@ -659,7 +659,7 @@ static struct attribute_group bridge_group = { | |||
659 | * | 659 | * |
660 | * Returns the number of bytes read. | 660 | * Returns the number of bytes read. |
661 | */ | 661 | */ |
662 | static ssize_t brforward_read(struct kobject *kobj, | 662 | static ssize_t brforward_read(struct file *filp, struct kobject *kobj, |
663 | struct bin_attribute *bin_attr, | 663 | struct bin_attribute *bin_attr, |
664 | char *buf, loff_t off, size_t count) | 664 | char *buf, loff_t off, size_t count) |
665 | { | 665 | { |