netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH net-next 0/5] net: constify 'struct bin_attribute'
@ 2024-12-16 11:30 Thomas Weißschuh
  2024-12-16 11:30 ` [PATCH net-next 1/5] net: bridge: " Thomas Weißschuh
                   ` (5 more replies)
  0 siblings, 6 replies; 15+ messages in thread
From: Thomas Weißschuh @ 2024-12-16 11:30 UTC (permalink / raw)
  To: Roopa Prabhu, Nikolay Aleksandrov, David S. Miller, Eric Dumazet,
	Jakub Kicinski, Paolo Abeni, Simon Horman, Andrew Lunn,
	Heiner Kallweit, Russell King, Kalle Valo, Manish Chopra,
	Rahul Verma, GR-Linux-NIC-Dev, Andrew Lunn, Shahed Shaikh
  Cc: bridge, netdev, linux-kernel, linux-wireless,
	Thomas Weißschuh

The sysfs core now allows instances of 'struct bin_attribute' to be
moved into read-only memory. Make use of that to protect them against
accidental or malicious modifications.

Signed-off-by: Thomas Weißschuh <linux@weissschuh.net>
---
Thomas Weißschuh (5):
      net: bridge: constify 'struct bin_attribute'
      net: phy: ks8995: constify 'struct bin_attribute'
      wlcore: sysfs: constify 'struct bin_attribute'
      netxen_nic: constify 'struct bin_attribute'
      qlcnic: constify 'struct bin_attribute'

 .../net/ethernet/qlogic/netxen/netxen_nic_main.c   | 20 +++----
 drivers/net/ethernet/qlogic/qlcnic/qlcnic_sysfs.c  | 70 +++++++++++-----------
 drivers/net/phy/spi_ks8995.c                       |  8 +--
 drivers/net/wireless/ti/wlcore/sysfs.c             |  4 +-
 net/bridge/br_sysfs_br.c                           |  6 +-
 5 files changed, 54 insertions(+), 54 deletions(-)
---
base-commit: 2d8308bf5b67dff50262d8a9260a50113b3628c6
change-id: 20241215-sysfs-const-bin_attr-net-4d8c00e56604

Best regards,
-- 
Thomas Weißschuh <linux@weissschuh.net>


^ permalink raw reply	[flat|nested] 15+ messages in thread

* [PATCH net-next 1/5] net: bridge: constify 'struct bin_attribute'
  2024-12-16 11:30 [PATCH net-next 0/5] net: constify 'struct bin_attribute' Thomas Weißschuh
@ 2024-12-16 11:30 ` Thomas Weißschuh
  2024-12-17 10:27   ` Simon Horman
  2024-12-17 10:43   ` Nikolay Aleksandrov
  2024-12-16 11:30 ` [PATCH net-next 2/5] net: phy: ks8995: " Thomas Weißschuh
                   ` (4 subsequent siblings)
  5 siblings, 2 replies; 15+ messages in thread
From: Thomas Weißschuh @ 2024-12-16 11:30 UTC (permalink / raw)
  To: Roopa Prabhu, Nikolay Aleksandrov, David S. Miller, Eric Dumazet,
	Jakub Kicinski, Paolo Abeni, Simon Horman, Andrew Lunn,
	Heiner Kallweit, Russell King, Kalle Valo, Manish Chopra,
	Rahul Verma, GR-Linux-NIC-Dev, Andrew Lunn, Shahed Shaikh
  Cc: bridge, netdev, linux-kernel, linux-wireless,
	Thomas Weißschuh

The sysfs core now allows instances of 'struct bin_attribute' to be
moved into read-only memory. Make use of that to protect them against
accidental or malicious modifications.

Signed-off-by: Thomas Weißschuh <linux@weissschuh.net>
---
 net/bridge/br_sysfs_br.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/net/bridge/br_sysfs_br.c b/net/bridge/br_sysfs_br.c
index ea733542244c7e7feeffef3c993404529ba88559..c1176a5e02c43ce32cb3dc152e9aa08eb535a419 100644
--- a/net/bridge/br_sysfs_br.c
+++ b/net/bridge/br_sysfs_br.c
@@ -1002,7 +1002,7 @@ static const struct attribute_group bridge_group = {
  * Returns the number of bytes read.
  */
 static ssize_t brforward_read(struct file *filp, struct kobject *kobj,
-			      struct bin_attribute *bin_attr,
+			      const struct bin_attribute *bin_attr,
 			      char *buf, loff_t off, size_t count)
 {
 	struct device *dev = kobj_to_dev(kobj);
@@ -1023,10 +1023,10 @@ static ssize_t brforward_read(struct file *filp, struct kobject *kobj,
 	return n;
 }
 
-static struct bin_attribute bridge_forward = {
+static const struct bin_attribute bridge_forward = {
 	.attr = { .name = SYSFS_BRIDGE_FDB,
 		  .mode = 0444, },
-	.read = brforward_read,
+	.read_new = brforward_read,
 };
 
 /*

-- 
2.47.1


^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [PATCH net-next 2/5] net: phy: ks8995: constify 'struct bin_attribute'
  2024-12-16 11:30 [PATCH net-next 0/5] net: constify 'struct bin_attribute' Thomas Weißschuh
  2024-12-16 11:30 ` [PATCH net-next 1/5] net: bridge: " Thomas Weißschuh
@ 2024-12-16 11:30 ` Thomas Weißschuh
  2024-12-16 15:40   ` Andrew Lunn
  2024-12-16 11:30 ` [PATCH net-next 3/5] wlcore: sysfs: " Thomas Weißschuh
                   ` (3 subsequent siblings)
  5 siblings, 1 reply; 15+ messages in thread
From: Thomas Weißschuh @ 2024-12-16 11:30 UTC (permalink / raw)
  To: Roopa Prabhu, Nikolay Aleksandrov, David S. Miller, Eric Dumazet,
	Jakub Kicinski, Paolo Abeni, Simon Horman, Andrew Lunn,
	Heiner Kallweit, Russell King, Kalle Valo, Manish Chopra,
	Rahul Verma, GR-Linux-NIC-Dev, Andrew Lunn, Shahed Shaikh
  Cc: bridge, netdev, linux-kernel, linux-wireless,
	Thomas Weißschuh

The sysfs core now allows instances of 'struct bin_attribute' to be
moved into read-only memory. Make use of that to protect them against
accidental or malicious modifications.

Signed-off-by: Thomas Weißschuh <linux@weissschuh.net>
---
 drivers/net/phy/spi_ks8995.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/drivers/net/phy/spi_ks8995.c b/drivers/net/phy/spi_ks8995.c
index 7196e927c2cd8bd73ef2492260182d48daac19ef..076a370be849e00c57a3be0bbce83c4665c49593 100644
--- a/drivers/net/phy/spi_ks8995.c
+++ b/drivers/net/phy/spi_ks8995.c
@@ -289,7 +289,7 @@ static int ks8995_reset(struct ks8995_switch *ks)
 }
 
 static ssize_t ks8995_registers_read(struct file *filp, struct kobject *kobj,
-	struct bin_attribute *bin_attr, char *buf, loff_t off, size_t count)
+	const struct bin_attribute *bin_attr, char *buf, loff_t off, size_t count)
 {
 	struct device *dev;
 	struct ks8995_switch *ks8995;
@@ -301,7 +301,7 @@ static ssize_t ks8995_registers_read(struct file *filp, struct kobject *kobj,
 }
 
 static ssize_t ks8995_registers_write(struct file *filp, struct kobject *kobj,
-	struct bin_attribute *bin_attr, char *buf, loff_t off, size_t count)
+	const struct bin_attribute *bin_attr, char *buf, loff_t off, size_t count)
 {
 	struct device *dev;
 	struct ks8995_switch *ks8995;
@@ -401,8 +401,8 @@ static const struct bin_attribute ks8995_registers_attr = {
 		.mode   = 0600,
 	},
 	.size   = KS8995_REGS_SIZE,
-	.read   = ks8995_registers_read,
-	.write  = ks8995_registers_write,
+	.read_new   = ks8995_registers_read,
+	.write_new  = ks8995_registers_write,
 };
 
 /* ------------------------------------------------------------------------ */

-- 
2.47.1


^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [PATCH net-next 3/5] wlcore: sysfs: constify 'struct bin_attribute'
  2024-12-16 11:30 [PATCH net-next 0/5] net: constify 'struct bin_attribute' Thomas Weißschuh
  2024-12-16 11:30 ` [PATCH net-next 1/5] net: bridge: " Thomas Weißschuh
  2024-12-16 11:30 ` [PATCH net-next 2/5] net: phy: ks8995: " Thomas Weißschuh
@ 2024-12-16 11:30 ` Thomas Weißschuh
  2024-12-16 12:46   ` Kalle Valo
  2024-12-18 18:05   ` [net-next,3/5] wifi: " Kalle Valo
  2024-12-16 11:30 ` [PATCH net-next 4/5] netxen_nic: " Thomas Weißschuh
                   ` (2 subsequent siblings)
  5 siblings, 2 replies; 15+ messages in thread
From: Thomas Weißschuh @ 2024-12-16 11:30 UTC (permalink / raw)
  To: Roopa Prabhu, Nikolay Aleksandrov, David S. Miller, Eric Dumazet,
	Jakub Kicinski, Paolo Abeni, Simon Horman, Andrew Lunn,
	Heiner Kallweit, Russell King, Kalle Valo, Manish Chopra,
	Rahul Verma, GR-Linux-NIC-Dev, Andrew Lunn, Shahed Shaikh
  Cc: bridge, netdev, linux-kernel, linux-wireless,
	Thomas Weißschuh

The sysfs core now allows instances of 'struct bin_attribute' to be
moved into read-only memory. Make use of that to protect them against
accidental or malicious modifications.

Signed-off-by: Thomas Weißschuh <linux@weissschuh.net>
---
 drivers/net/wireless/ti/wlcore/sysfs.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/net/wireless/ti/wlcore/sysfs.c b/drivers/net/wireless/ti/wlcore/sysfs.c
index c07acfcbbd9c8179bd312840efda43e7e9c5e6a0..7c57d4c8744ad5d19f11c5765cc7bf27aadbf740 100644
--- a/drivers/net/wireless/ti/wlcore/sysfs.c
+++ b/drivers/net/wireless/ti/wlcore/sysfs.c
@@ -88,7 +88,7 @@ static ssize_t hw_pg_ver_show(struct device *dev,
 static DEVICE_ATTR_RO(hw_pg_ver);
 
 static ssize_t wl1271_sysfs_read_fwlog(struct file *filp, struct kobject *kobj,
-				       struct bin_attribute *bin_attr,
+				       const struct bin_attribute *bin_attr,
 				       char *buffer, loff_t pos, size_t count)
 {
 	struct device *dev = kobj_to_dev(kobj);
@@ -121,7 +121,7 @@ static ssize_t wl1271_sysfs_read_fwlog(struct file *filp, struct kobject *kobj,
 
 static const struct bin_attribute fwlog_attr = {
 	.attr = { .name = "fwlog", .mode = 0400 },
-	.read = wl1271_sysfs_read_fwlog,
+	.read_new = wl1271_sysfs_read_fwlog,
 };
 
 int wlcore_sysfs_init(struct wl1271 *wl)

-- 
2.47.1


^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [PATCH net-next 4/5] netxen_nic: constify 'struct bin_attribute'
  2024-12-16 11:30 [PATCH net-next 0/5] net: constify 'struct bin_attribute' Thomas Weißschuh
                   ` (2 preceding siblings ...)
  2024-12-16 11:30 ` [PATCH net-next 3/5] wlcore: sysfs: " Thomas Weißschuh
@ 2024-12-16 11:30 ` Thomas Weißschuh
  2024-12-17 10:28   ` Simon Horman
  2024-12-16 11:30 ` [PATCH net-next 5/5] qlcnic: " Thomas Weißschuh
  2024-12-18  3:10 ` [PATCH net-next 0/5] net: " patchwork-bot+netdevbpf
  5 siblings, 1 reply; 15+ messages in thread
From: Thomas Weißschuh @ 2024-12-16 11:30 UTC (permalink / raw)
  To: Roopa Prabhu, Nikolay Aleksandrov, David S. Miller, Eric Dumazet,
	Jakub Kicinski, Paolo Abeni, Simon Horman, Andrew Lunn,
	Heiner Kallweit, Russell King, Kalle Valo, Manish Chopra,
	Rahul Verma, GR-Linux-NIC-Dev, Andrew Lunn, Shahed Shaikh
  Cc: bridge, netdev, linux-kernel, linux-wireless,
	Thomas Weißschuh

The sysfs core now allows instances of 'struct bin_attribute' to be
moved into read-only memory. Make use of that to protect them against
accidental or malicious modifications.

Signed-off-by: Thomas Weißschuh <linux@weissschuh.net>
---
 drivers/net/ethernet/qlogic/netxen/netxen_nic_main.c | 20 ++++++++++----------
 1 file changed, 10 insertions(+), 10 deletions(-)

diff --git a/drivers/net/ethernet/qlogic/netxen/netxen_nic_main.c b/drivers/net/ethernet/qlogic/netxen/netxen_nic_main.c
index 9cff0a8ffb2c55de195983051e4e7f8568528c0f..3383ee1dad14e2cb40062b27f32a7cffb6f3fac2 100644
--- a/drivers/net/ethernet/qlogic/netxen/netxen_nic_main.c
+++ b/drivers/net/ethernet/qlogic/netxen/netxen_nic_main.c
@@ -2832,7 +2832,7 @@ netxen_sysfs_validate_crb(struct netxen_adapter *adapter,
 
 static ssize_t
 netxen_sysfs_read_crb(struct file *filp, struct kobject *kobj,
-		struct bin_attribute *attr,
+		const struct bin_attribute *attr,
 		char *buf, loff_t offset, size_t size)
 {
 	struct device *dev = kobj_to_dev(kobj);
@@ -2860,7 +2860,7 @@ netxen_sysfs_read_crb(struct file *filp, struct kobject *kobj,
 
 static ssize_t
 netxen_sysfs_write_crb(struct file *filp, struct kobject *kobj,
-		struct bin_attribute *attr,
+		const struct bin_attribute *attr,
 		char *buf, loff_t offset, size_t size)
 {
 	struct device *dev = kobj_to_dev(kobj);
@@ -2901,7 +2901,7 @@ netxen_sysfs_validate_mem(struct netxen_adapter *adapter,
 
 static ssize_t
 netxen_sysfs_read_mem(struct file *filp, struct kobject *kobj,
-		struct bin_attribute *attr,
+		const struct bin_attribute *attr,
 		char *buf, loff_t offset, size_t size)
 {
 	struct device *dev = kobj_to_dev(kobj);
@@ -2922,7 +2922,7 @@ netxen_sysfs_read_mem(struct file *filp, struct kobject *kobj,
 }
 
 static ssize_t netxen_sysfs_write_mem(struct file *filp, struct kobject *kobj,
-		struct bin_attribute *attr, char *buf,
+		const struct bin_attribute *attr, char *buf,
 		loff_t offset, size_t size)
 {
 	struct device *dev = kobj_to_dev(kobj);
@@ -2946,20 +2946,20 @@ static ssize_t netxen_sysfs_write_mem(struct file *filp, struct kobject *kobj,
 static const struct bin_attribute bin_attr_crb = {
 	.attr = { .name = "crb", .mode = 0644 },
 	.size = 0,
-	.read = netxen_sysfs_read_crb,
-	.write = netxen_sysfs_write_crb,
+	.read_new = netxen_sysfs_read_crb,
+	.write_new = netxen_sysfs_write_crb,
 };
 
 static const struct bin_attribute bin_attr_mem = {
 	.attr = { .name = "mem", .mode = 0644 },
 	.size = 0,
-	.read = netxen_sysfs_read_mem,
-	.write = netxen_sysfs_write_mem,
+	.read_new = netxen_sysfs_read_mem,
+	.write_new = netxen_sysfs_write_mem,
 };
 
 static ssize_t
 netxen_sysfs_read_dimm(struct file *filp, struct kobject *kobj,
-		struct bin_attribute *attr,
+		const struct bin_attribute *attr,
 		char *buf, loff_t offset, size_t size)
 {
 	struct device *dev = kobj_to_dev(kobj);
@@ -3082,7 +3082,7 @@ netxen_sysfs_read_dimm(struct file *filp, struct kobject *kobj,
 static const struct bin_attribute bin_attr_dimm = {
 	.attr = { .name = "dimm", .mode = 0644 },
 	.size = sizeof(struct netxen_dimm_cfg),
-	.read = netxen_sysfs_read_dimm,
+	.read_new = netxen_sysfs_read_dimm,
 };
 
 

-- 
2.47.1


^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [PATCH net-next 5/5] qlcnic: constify 'struct bin_attribute'
  2024-12-16 11:30 [PATCH net-next 0/5] net: constify 'struct bin_attribute' Thomas Weißschuh
                   ` (3 preceding siblings ...)
  2024-12-16 11:30 ` [PATCH net-next 4/5] netxen_nic: " Thomas Weißschuh
@ 2024-12-16 11:30 ` Thomas Weißschuh
  2024-12-17 10:28   ` Simon Horman
  2024-12-18  3:03   ` Jakub Kicinski
  2024-12-18  3:10 ` [PATCH net-next 0/5] net: " patchwork-bot+netdevbpf
  5 siblings, 2 replies; 15+ messages in thread
From: Thomas Weißschuh @ 2024-12-16 11:30 UTC (permalink / raw)
  To: Roopa Prabhu, Nikolay Aleksandrov, David S. Miller, Eric Dumazet,
	Jakub Kicinski, Paolo Abeni, Simon Horman, Andrew Lunn,
	Heiner Kallweit, Russell King, Kalle Valo, Manish Chopra,
	Rahul Verma, GR-Linux-NIC-Dev, Andrew Lunn, Shahed Shaikh
  Cc: bridge, netdev, linux-kernel, linux-wireless,
	Thomas Weißschuh

The sysfs core now allows instances of 'struct bin_attribute' to be
moved into read-only memory. Make use of that to protect them against
accidental or malicious modifications.

Signed-off-by: Thomas Weißschuh <linux@weissschuh.net>
---
 drivers/net/ethernet/qlogic/qlcnic/qlcnic_sysfs.c | 70 +++++++++++------------
 1 file changed, 35 insertions(+), 35 deletions(-)

diff --git a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_sysfs.c b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_sysfs.c
index 74125188beb82515f57a20ae24dcd526943d05ee..82c357865f19ba8f272426abc09f47b40d6b53da 100644
--- a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_sysfs.c
+++ b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_sysfs.c
@@ -264,7 +264,7 @@ static int qlcnic_sysfs_validate_crb(struct qlcnic_adapter *adapter,
 }
 
 static ssize_t qlcnic_sysfs_read_crb(struct file *filp, struct kobject *kobj,
-				     struct bin_attribute *attr, char *buf,
+				     const struct bin_attribute *attr, char *buf,
 				     loff_t offset, size_t size)
 {
 	struct device *dev = kobj_to_dev(kobj);
@@ -281,7 +281,7 @@ static ssize_t qlcnic_sysfs_read_crb(struct file *filp, struct kobject *kobj,
 }
 
 static ssize_t qlcnic_sysfs_write_crb(struct file *filp, struct kobject *kobj,
-				      struct bin_attribute *attr, char *buf,
+				      const struct bin_attribute *attr, char *buf,
 				      loff_t offset, size_t size)
 {
 	struct device *dev = kobj_to_dev(kobj);
@@ -310,7 +310,7 @@ static int qlcnic_sysfs_validate_mem(struct qlcnic_adapter *adapter,
 }
 
 static ssize_t qlcnic_sysfs_read_mem(struct file *filp, struct kobject *kobj,
-				     struct bin_attribute *attr, char *buf,
+				     const struct bin_attribute *attr, char *buf,
 				     loff_t offset, size_t size)
 {
 	struct device *dev = kobj_to_dev(kobj);
@@ -332,7 +332,7 @@ static ssize_t qlcnic_sysfs_read_mem(struct file *filp, struct kobject *kobj,
 }
 
 static ssize_t qlcnic_sysfs_write_mem(struct file *filp, struct kobject *kobj,
-				      struct bin_attribute *attr, char *buf,
+				      const struct bin_attribute *attr, char *buf,
 				      loff_t offset, size_t size)
 {
 	struct device *dev = kobj_to_dev(kobj);
@@ -396,7 +396,7 @@ static int validate_pm_config(struct qlcnic_adapter *adapter,
 
 static ssize_t qlcnic_sysfs_write_pm_config(struct file *filp,
 					    struct kobject *kobj,
-					    struct bin_attribute *attr,
+					    const struct bin_attribute *attr,
 					    char *buf, loff_t offset,
 					    size_t size)
 {
@@ -446,7 +446,7 @@ static ssize_t qlcnic_sysfs_write_pm_config(struct file *filp,
 
 static ssize_t qlcnic_sysfs_read_pm_config(struct file *filp,
 					   struct kobject *kobj,
-					   struct bin_attribute *attr,
+					   const struct bin_attribute *attr,
 					   char *buf, loff_t offset,
 					   size_t size)
 {
@@ -539,7 +539,7 @@ static int validate_esw_config(struct qlcnic_adapter *adapter,
 
 static ssize_t qlcnic_sysfs_write_esw_config(struct file *file,
 					     struct kobject *kobj,
-					     struct bin_attribute *attr,
+					     const struct bin_attribute *attr,
 					     char *buf, loff_t offset,
 					     size_t size)
 {
@@ -623,7 +623,7 @@ static ssize_t qlcnic_sysfs_write_esw_config(struct file *file,
 
 static ssize_t qlcnic_sysfs_read_esw_config(struct file *file,
 					    struct kobject *kobj,
-					    struct bin_attribute *attr,
+					    const struct bin_attribute *attr,
 					    char *buf, loff_t offset,
 					    size_t size)
 {
@@ -675,7 +675,7 @@ static int validate_npar_config(struct qlcnic_adapter *adapter,
 
 static ssize_t qlcnic_sysfs_write_npar_config(struct file *file,
 					      struct kobject *kobj,
-					      struct bin_attribute *attr,
+					      const struct bin_attribute *attr,
 					      char *buf, loff_t offset,
 					      size_t size)
 {
@@ -722,7 +722,7 @@ static ssize_t qlcnic_sysfs_write_npar_config(struct file *file,
 
 static ssize_t qlcnic_sysfs_read_npar_config(struct file *file,
 					     struct kobject *kobj,
-					     struct bin_attribute *attr,
+					     const struct bin_attribute *attr,
 					     char *buf, loff_t offset,
 					     size_t size)
 {
@@ -769,7 +769,7 @@ static ssize_t qlcnic_sysfs_read_npar_config(struct file *file,
 
 static ssize_t qlcnic_sysfs_get_port_stats(struct file *file,
 					   struct kobject *kobj,
-					   struct bin_attribute *attr,
+					   const struct bin_attribute *attr,
 					   char *buf, loff_t offset,
 					   size_t size)
 {
@@ -804,7 +804,7 @@ static ssize_t qlcnic_sysfs_get_port_stats(struct file *file,
 
 static ssize_t qlcnic_sysfs_get_esw_stats(struct file *file,
 					  struct kobject *kobj,
-					  struct bin_attribute *attr,
+					  const struct bin_attribute *attr,
 					  char *buf, loff_t offset,
 					  size_t size)
 {
@@ -839,7 +839,7 @@ static ssize_t qlcnic_sysfs_get_esw_stats(struct file *file,
 
 static ssize_t qlcnic_sysfs_clear_esw_stats(struct file *file,
 					    struct kobject *kobj,
-					    struct bin_attribute *attr,
+					    const struct bin_attribute *attr,
 					    char *buf, loff_t offset,
 					    size_t size)
 {
@@ -868,7 +868,7 @@ static ssize_t qlcnic_sysfs_clear_esw_stats(struct file *file,
 
 static ssize_t qlcnic_sysfs_clear_port_stats(struct file *file,
 					     struct kobject *kobj,
-					     struct bin_attribute *attr,
+					     const struct bin_attribute *attr,
 					     char *buf, loff_t offset,
 					     size_t size)
 {
@@ -898,7 +898,7 @@ static ssize_t qlcnic_sysfs_clear_port_stats(struct file *file,
 
 static ssize_t qlcnic_sysfs_read_pci_config(struct file *file,
 					    struct kobject *kobj,
-					    struct bin_attribute *attr,
+					    const struct bin_attribute *attr,
 					    char *buf, loff_t offset,
 					    size_t size)
 {
@@ -938,7 +938,7 @@ static ssize_t qlcnic_sysfs_read_pci_config(struct file *file,
 
 static ssize_t qlcnic_83xx_sysfs_flash_read_handler(struct file *filp,
 						    struct kobject *kobj,
-						    struct bin_attribute *attr,
+						    const struct bin_attribute *attr,
 						    char *buf, loff_t offset,
 						    size_t size)
 {
@@ -1115,7 +1115,7 @@ static int qlcnic_83xx_sysfs_flash_write(struct qlcnic_adapter *adapter,
 
 static ssize_t qlcnic_83xx_sysfs_flash_write_handler(struct file *filp,
 						     struct kobject *kobj,
-						     struct bin_attribute *attr,
+						     const struct bin_attribute *attr,
 						     char *buf, loff_t offset,
 						     size_t size)
 {
@@ -1195,64 +1195,64 @@ static const struct device_attribute dev_attr_beacon = {
 static const struct bin_attribute bin_attr_crb = {
 	.attr = { .name = "crb", .mode = 0644 },
 	.size = 0,
-	.read = qlcnic_sysfs_read_crb,
-	.write = qlcnic_sysfs_write_crb,
+	.read_new = qlcnic_sysfs_read_crb,
+	.write_new = qlcnic_sysfs_write_crb,
 };
 
 static const struct bin_attribute bin_attr_mem = {
 	.attr = { .name = "mem", .mode = 0644 },
 	.size = 0,
-	.read = qlcnic_sysfs_read_mem,
-	.write = qlcnic_sysfs_write_mem,
+	.read_new = qlcnic_sysfs_read_mem,
+	.write_new = qlcnic_sysfs_write_mem,
 };
 
 static const struct bin_attribute bin_attr_npar_config = {
 	.attr = { .name = "npar_config", .mode = 0644 },
 	.size = 0,
-	.read = qlcnic_sysfs_read_npar_config,
-	.write = qlcnic_sysfs_write_npar_config,
+	.read_new = qlcnic_sysfs_read_npar_config,
+	.write_new = qlcnic_sysfs_write_npar_config,
 };
 
 static const struct bin_attribute bin_attr_pci_config = {
 	.attr = { .name = "pci_config", .mode = 0644 },
 	.size = 0,
-	.read = qlcnic_sysfs_read_pci_config,
-	.write = NULL,
+	.read_new = qlcnic_sysfs_read_pci_config,
+	.write_new = NULL,
 };
 
 static const struct bin_attribute bin_attr_port_stats = {
 	.attr = { .name = "port_stats", .mode = 0644 },
 	.size = 0,
-	.read = qlcnic_sysfs_get_port_stats,
-	.write = qlcnic_sysfs_clear_port_stats,
+	.read_new = qlcnic_sysfs_get_port_stats,
+	.write_new = qlcnic_sysfs_clear_port_stats,
 };
 
 static const struct bin_attribute bin_attr_esw_stats = {
 	.attr = { .name = "esw_stats", .mode = 0644 },
 	.size = 0,
-	.read = qlcnic_sysfs_get_esw_stats,
-	.write = qlcnic_sysfs_clear_esw_stats,
+	.read_new = qlcnic_sysfs_get_esw_stats,
+	.write_new = qlcnic_sysfs_clear_esw_stats,
 };
 
 static const struct bin_attribute bin_attr_esw_config = {
 	.attr = { .name = "esw_config", .mode = 0644 },
 	.size = 0,
-	.read = qlcnic_sysfs_read_esw_config,
-	.write = qlcnic_sysfs_write_esw_config,
+	.read_new = qlcnic_sysfs_read_esw_config,
+	.write_new = qlcnic_sysfs_write_esw_config,
 };
 
 static const struct bin_attribute bin_attr_pm_config = {
 	.attr = { .name = "pm_config", .mode = 0644 },
 	.size = 0,
-	.read = qlcnic_sysfs_read_pm_config,
-	.write = qlcnic_sysfs_write_pm_config,
+	.read_new = qlcnic_sysfs_read_pm_config,
+	.write_new = qlcnic_sysfs_write_pm_config,
 };
 
 static const struct bin_attribute bin_attr_flash = {
 	.attr = { .name = "flash", .mode = 0644 },
 	.size = 0,
-	.read = qlcnic_83xx_sysfs_flash_read_handler,
-	.write = qlcnic_83xx_sysfs_flash_write_handler,
+	.read_new = qlcnic_83xx_sysfs_flash_read_handler,
+	.write_new = qlcnic_83xx_sysfs_flash_write_handler,
 };
 
 #ifdef CONFIG_QLCNIC_HWMON

-- 
2.47.1


^ permalink raw reply related	[flat|nested] 15+ messages in thread

* Re: [PATCH net-next 3/5] wlcore: sysfs: constify 'struct bin_attribute'
  2024-12-16 11:30 ` [PATCH net-next 3/5] wlcore: sysfs: " Thomas Weißschuh
@ 2024-12-16 12:46   ` Kalle Valo
  2024-12-18 18:05   ` [net-next,3/5] wifi: " Kalle Valo
  1 sibling, 0 replies; 15+ messages in thread
From: Kalle Valo @ 2024-12-16 12:46 UTC (permalink / raw)
  To: Thomas Weißschuh
  Cc: Roopa Prabhu, Nikolay Aleksandrov, David S. Miller, Eric Dumazet,
	Jakub Kicinski, Paolo Abeni, Simon Horman, Andrew Lunn,
	Heiner Kallweit, Russell King, Manish Chopra, Rahul Verma,
	GR-Linux-NIC-Dev, Andrew Lunn, Shahed Shaikh, bridge, netdev,
	linux-kernel, linux-wireless

Thomas Weißschuh <linux@weissschuh.net> writes:

> The sysfs core now allows instances of 'struct bin_attribute' to be
> moved into read-only memory. Make use of that to protect them against
> accidental or malicious modifications.
>
> Signed-off-by: Thomas Weißschuh <linux@weissschuh.net>

'wifi:' missing from subject and this should go to wireless-next. I can
take that separately from other patches.

-- 
https://patchwork.kernel.org/project/linux-wireless/list/

https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH net-next 2/5] net: phy: ks8995: constify 'struct bin_attribute'
  2024-12-16 11:30 ` [PATCH net-next 2/5] net: phy: ks8995: " Thomas Weißschuh
@ 2024-12-16 15:40   ` Andrew Lunn
  0 siblings, 0 replies; 15+ messages in thread
From: Andrew Lunn @ 2024-12-16 15:40 UTC (permalink / raw)
  To: Thomas Weißschuh
  Cc: Roopa Prabhu, Nikolay Aleksandrov, David S. Miller, Eric Dumazet,
	Jakub Kicinski, Paolo Abeni, Simon Horman, Heiner Kallweit,
	Russell King, Kalle Valo, Manish Chopra, Rahul Verma,
	GR-Linux-NIC-Dev, Andrew Lunn, Shahed Shaikh, bridge, netdev,
	linux-kernel, linux-wireless

On Mon, Dec 16, 2024 at 12:30:09PM +0100, Thomas Weißschuh wrote:
> The sysfs core now allows instances of 'struct bin_attribute' to be
> moved into read-only memory. Make use of that to protect them against
> accidental or malicious modifications.
> 
> Signed-off-by: Thomas Weißschuh <linux@weissschuh.net>

Reviewed-by: Andrew Lunn <andrew@lunn.ch>

    Andrew

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH net-next 1/5] net: bridge: constify 'struct bin_attribute'
  2024-12-16 11:30 ` [PATCH net-next 1/5] net: bridge: " Thomas Weißschuh
@ 2024-12-17 10:27   ` Simon Horman
  2024-12-17 10:43   ` Nikolay Aleksandrov
  1 sibling, 0 replies; 15+ messages in thread
From: Simon Horman @ 2024-12-17 10:27 UTC (permalink / raw)
  To: Thomas Weißschuh
  Cc: Roopa Prabhu, Nikolay Aleksandrov, David S. Miller, Eric Dumazet,
	Jakub Kicinski, Paolo Abeni, Andrew Lunn, Heiner Kallweit,
	Russell King, Kalle Valo, Manish Chopra, Rahul Verma,
	GR-Linux-NIC-Dev, Andrew Lunn, Shahed Shaikh, bridge, netdev,
	linux-kernel, linux-wireless

On Mon, Dec 16, 2024 at 12:30:08PM +0100, Thomas Weißschuh wrote:
> The sysfs core now allows instances of 'struct bin_attribute' to be
> moved into read-only memory. Make use of that to protect them against
> accidental or malicious modifications.
> 
> Signed-off-by: Thomas Weißschuh <linux@weissschuh.net>

Reviewed-by: Simon Horman <horms@kernel.org>


^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH net-next 4/5] netxen_nic: constify 'struct bin_attribute'
  2024-12-16 11:30 ` [PATCH net-next 4/5] netxen_nic: " Thomas Weißschuh
@ 2024-12-17 10:28   ` Simon Horman
  0 siblings, 0 replies; 15+ messages in thread
From: Simon Horman @ 2024-12-17 10:28 UTC (permalink / raw)
  To: Thomas Weißschuh
  Cc: Roopa Prabhu, Nikolay Aleksandrov, David S. Miller, Eric Dumazet,
	Jakub Kicinski, Paolo Abeni, Andrew Lunn, Heiner Kallweit,
	Russell King, Kalle Valo, Manish Chopra, Rahul Verma,
	GR-Linux-NIC-Dev, Andrew Lunn, Shahed Shaikh, bridge, netdev,
	linux-kernel, linux-wireless

On Mon, Dec 16, 2024 at 12:30:11PM +0100, Thomas Weißschuh wrote:
> The sysfs core now allows instances of 'struct bin_attribute' to be
> moved into read-only memory. Make use of that to protect them against
> accidental or malicious modifications.
> 
> Signed-off-by: Thomas Weißschuh <linux@weissschuh.net>

Reviewed-by: Simon Horman <horms@kernel.org>


^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH net-next 5/5] qlcnic: constify 'struct bin_attribute'
  2024-12-16 11:30 ` [PATCH net-next 5/5] qlcnic: " Thomas Weißschuh
@ 2024-12-17 10:28   ` Simon Horman
  2024-12-18  3:03   ` Jakub Kicinski
  1 sibling, 0 replies; 15+ messages in thread
From: Simon Horman @ 2024-12-17 10:28 UTC (permalink / raw)
  To: Thomas Weißschuh
  Cc: Roopa Prabhu, Nikolay Aleksandrov, David S. Miller, Eric Dumazet,
	Jakub Kicinski, Paolo Abeni, Andrew Lunn, Heiner Kallweit,
	Russell King, Kalle Valo, Manish Chopra, Rahul Verma,
	GR-Linux-NIC-Dev, Andrew Lunn, Shahed Shaikh, bridge, netdev,
	linux-kernel, linux-wireless

On Mon, Dec 16, 2024 at 12:30:12PM +0100, Thomas Weißschuh wrote:
> The sysfs core now allows instances of 'struct bin_attribute' to be
> moved into read-only memory. Make use of that to protect them against
> accidental or malicious modifications.
> 
> Signed-off-by: Thomas Weißschuh <linux@weissschuh.net>

Reviewed-by: Simon Horman <horms@kernel.org>


^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH net-next 1/5] net: bridge: constify 'struct bin_attribute'
  2024-12-16 11:30 ` [PATCH net-next 1/5] net: bridge: " Thomas Weißschuh
  2024-12-17 10:27   ` Simon Horman
@ 2024-12-17 10:43   ` Nikolay Aleksandrov
  1 sibling, 0 replies; 15+ messages in thread
From: Nikolay Aleksandrov @ 2024-12-17 10:43 UTC (permalink / raw)
  To: Thomas Weißschuh, Roopa Prabhu, David S. Miller,
	Eric Dumazet, Jakub Kicinski, Paolo Abeni, Simon Horman,
	Andrew Lunn, Heiner Kallweit, Russell King, Kalle Valo,
	Manish Chopra, Rahul Verma, GR-Linux-NIC-Dev, Andrew Lunn,
	Shahed Shaikh
  Cc: bridge, netdev, linux-kernel, linux-wireless

On 12/16/24 13:30, Thomas Weißschuh wrote:
> The sysfs core now allows instances of 'struct bin_attribute' to be
> moved into read-only memory. Make use of that to protect them against
> accidental or malicious modifications.
> 
> Signed-off-by: Thomas Weißschuh <linux@weissschuh.net>
> ---
>  net/bridge/br_sysfs_br.c | 6 +++---
>  1 file changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/net/bridge/br_sysfs_br.c b/net/bridge/br_sysfs_br.c
> index ea733542244c7e7feeffef3c993404529ba88559..c1176a5e02c43ce32cb3dc152e9aa08eb535a419 100644
> --- a/net/bridge/br_sysfs_br.c
> +++ b/net/bridge/br_sysfs_br.c
> @@ -1002,7 +1002,7 @@ static const struct attribute_group bridge_group = {
>   * Returns the number of bytes read.
>   */
>  static ssize_t brforward_read(struct file *filp, struct kobject *kobj,
> -			      struct bin_attribute *bin_attr,
> +			      const struct bin_attribute *bin_attr,
>  			      char *buf, loff_t off, size_t count)
>  {
>  	struct device *dev = kobj_to_dev(kobj);
> @@ -1023,10 +1023,10 @@ static ssize_t brforward_read(struct file *filp, struct kobject *kobj,
>  	return n;
>  }
>  
> -static struct bin_attribute bridge_forward = {
> +static const struct bin_attribute bridge_forward = {
>  	.attr = { .name = SYSFS_BRIDGE_FDB,
>  		  .mode = 0444, },
> -	.read = brforward_read,
> +	.read_new = brforward_read,
>  };
>  
>  /*
> 

Acked-by: Nikolay Aleksandrov <razor@blackwall.org>


^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH net-next 5/5] qlcnic: constify 'struct bin_attribute'
  2024-12-16 11:30 ` [PATCH net-next 5/5] qlcnic: " Thomas Weißschuh
  2024-12-17 10:28   ` Simon Horman
@ 2024-12-18  3:03   ` Jakub Kicinski
  1 sibling, 0 replies; 15+ messages in thread
From: Jakub Kicinski @ 2024-12-18  3:03 UTC (permalink / raw)
  To: Thomas Weißschuh
  Cc: Roopa Prabhu, Nikolay Aleksandrov, David S. Miller, Eric Dumazet,
	Paolo Abeni, Simon Horman, Andrew Lunn, Heiner Kallweit,
	Russell King, Kalle Valo, Manish Chopra, Rahul Verma,
	GR-Linux-NIC-Dev, Andrew Lunn, Shahed Shaikh, bridge, netdev,
	linux-kernel, linux-wireless

On Mon, 16 Dec 2024 12:30:12 +0100 Thomas Weißschuh wrote:
> -	.read = qlcnic_sysfs_read_pci_config,
> -	.write = NULL,
> +	.read_new = qlcnic_sysfs_read_pci_config,
> +	.write_new = NULL,

Please delete the NULL assignment instead.

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH net-next 0/5] net: constify 'struct bin_attribute'
  2024-12-16 11:30 [PATCH net-next 0/5] net: constify 'struct bin_attribute' Thomas Weißschuh
                   ` (4 preceding siblings ...)
  2024-12-16 11:30 ` [PATCH net-next 5/5] qlcnic: " Thomas Weißschuh
@ 2024-12-18  3:10 ` patchwork-bot+netdevbpf
  5 siblings, 0 replies; 15+ messages in thread
From: patchwork-bot+netdevbpf @ 2024-12-18  3:10 UTC (permalink / raw)
  To: =?utf-8?q?Thomas_Wei=C3=9Fschuh_=3Clinux=40weissschuh=2Enet=3E?=
  Cc: roopa, razor, davem, edumazet, kuba, pabeni, horms, andrew,
	hkallweit1, linux, kvalo, manishc, rahulv, GR-Linux-NIC-Dev,
	andrew+netdev, shshaikh, bridge, netdev, linux-kernel,
	linux-wireless

Hello:

This series was applied to netdev/net-next.git (main)
by Jakub Kicinski <kuba@kernel.org>:

On Mon, 16 Dec 2024 12:30:07 +0100 you wrote:
> The sysfs core now allows instances of 'struct bin_attribute' to be
> moved into read-only memory. Make use of that to protect them against
> accidental or malicious modifications.
> 
> Signed-off-by: Thomas Weißschuh <linux@weissschuh.net>
> ---
> Thomas Weißschuh (5):
>       net: bridge: constify 'struct bin_attribute'
>       net: phy: ks8995: constify 'struct bin_attribute'
>       wlcore: sysfs: constify 'struct bin_attribute'
>       netxen_nic: constify 'struct bin_attribute'
>       qlcnic: constify 'struct bin_attribute'
> 
> [...]

Here is the summary with links:
  - [net-next,1/5] net: bridge: constify 'struct bin_attribute'
    https://git.kernel.org/netdev/net-next/c/a2558b410de3
  - [net-next,2/5] net: phy: ks8995: constify 'struct bin_attribute'
    https://git.kernel.org/netdev/net-next/c/2d7b422fa795
  - [net-next,3/5] wlcore: sysfs: constify 'struct bin_attribute'
    (no matching commit)
  - [net-next,4/5] netxen_nic: constify 'struct bin_attribute'
    https://git.kernel.org/netdev/net-next/c/ae026eae08e7
  - [net-next,5/5] qlcnic: constify 'struct bin_attribute'
    (no matching commit)

You are awesome, thank you!
-- 
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html



^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [net-next,3/5] wifi: wlcore: sysfs: constify 'struct bin_attribute'
  2024-12-16 11:30 ` [PATCH net-next 3/5] wlcore: sysfs: " Thomas Weißschuh
  2024-12-16 12:46   ` Kalle Valo
@ 2024-12-18 18:05   ` Kalle Valo
  1 sibling, 0 replies; 15+ messages in thread
From: Kalle Valo @ 2024-12-18 18:05 UTC (permalink / raw)
  To: Thomas Weißschuh
  Cc: Roopa Prabhu, Nikolay Aleksandrov, David S. Miller, Eric Dumazet,
	Jakub Kicinski, Paolo Abeni, Simon Horman, Andrew Lunn,
	Heiner Kallweit, Russell King, Manish Chopra, Rahul Verma,
	GR-Linux-NIC-Dev, Andrew Lunn, Shahed Shaikh, bridge, netdev,
	linux-kernel, linux-wireless, Thomas Weißschuh

Thomas Weißschuh <linux@weissschuh.net> wrote:

> The sysfs core now allows instances of 'struct bin_attribute' to be
> moved into read-only memory. Make use of that to protect them against
> accidental or malicious modifications.
> 
> Signed-off-by: Thomas Weißschuh <linux@weissschuh.net>

Patch applied to wireless-next.git, thanks.

8ab3bf476413 wifi: wlcore: sysfs: constify 'struct bin_attribute'

-- 
https://patchwork.kernel.org/project/linux-wireless/patch/20241216-sysfs-const-bin_attr-net-v1-3-ec460b91f274@weissschuh.net/

https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches


^ permalink raw reply	[flat|nested] 15+ messages in thread

end of thread, other threads:[~2024-12-18 18:05 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-12-16 11:30 [PATCH net-next 0/5] net: constify 'struct bin_attribute' Thomas Weißschuh
2024-12-16 11:30 ` [PATCH net-next 1/5] net: bridge: " Thomas Weißschuh
2024-12-17 10:27   ` Simon Horman
2024-12-17 10:43   ` Nikolay Aleksandrov
2024-12-16 11:30 ` [PATCH net-next 2/5] net: phy: ks8995: " Thomas Weißschuh
2024-12-16 15:40   ` Andrew Lunn
2024-12-16 11:30 ` [PATCH net-next 3/5] wlcore: sysfs: " Thomas Weißschuh
2024-12-16 12:46   ` Kalle Valo
2024-12-18 18:05   ` [net-next,3/5] wifi: " Kalle Valo
2024-12-16 11:30 ` [PATCH net-next 4/5] netxen_nic: " Thomas Weißschuh
2024-12-17 10:28   ` Simon Horman
2024-12-16 11:30 ` [PATCH net-next 5/5] qlcnic: " Thomas Weißschuh
2024-12-17 10:28   ` Simon Horman
2024-12-18  3:03   ` Jakub Kicinski
2024-12-18  3:10 ` [PATCH net-next 0/5] net: " patchwork-bot+netdevbpf

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).