From mboxrd@z Thu Jan 1 00:00:00 1970 From: Joe Perches Subject: [PATCH 4/4] drivers/net: Use octal not symbolic permissions Date: Fri, 23 Mar 2018 15:54:39 -0700 Message-ID: <8f24a711e6b8ec7b41356c378140fb54d510205c.1521845248.git.joe@perches.com> References: Return-path: In-Reply-To: Sender: linux-kernel-owner@vger.kernel.org To: Jay Vosburgh , Veaceslav Falico , Andy Gospodarek , Dmitry Tarnyagin , Wolfgang Grandegger , Marc Kleine-Budde , Nicolas Ferre , Alexandre Belloni , Jean-Paul Roubelat , "K. Y. Srinivasan" , Haiyang Zhang , Stephen Hemminger , Alexander Aring , Stefan Schmidt , Andrew Lunn , Florian Fainelli , Paul Mackerras , Michal Ostrowski , Oliver Neukum Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org, linux-can@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-hams@vger.kernel.org, devel@linuxdriverproject.org, linux-wpan@vger.kernel.org, linux-ppp@vger.kernel.org, linux-usb@vger.kernel.org, xen-devel@lists.xenproject.org List-Id: linux-can.vger.kernel.org Prefer the direct use of octal for permissions. Done with checkpatch -f --types=SYMBOLIC_PERMS --fix-inplace and some typing. Miscellanea: o Whitespace neatening around these conversions. Signed-off-by: Joe Perches --- drivers/net/bonding/bond_procfs.c | 2 +- drivers/net/bonding/bond_sysfs.c | 73 +++++++++++++++++----------------- drivers/net/bonding/bond_sysfs_slave.c | 4 +- drivers/net/caif/caif_serial.c | 32 +++++++-------- drivers/net/caif/caif_spi.c | 16 ++++---- drivers/net/caif/caif_virtio.c | 16 ++++---- drivers/net/can/at91_can.c | 3 +- drivers/net/can/cc770/cc770.c | 4 +- drivers/net/can/cc770/cc770_isa.c | 16 ++++---- drivers/net/can/grcan.c | 4 +- drivers/net/can/janz-ican3.c | 6 +-- drivers/net/can/sja1000/sja1000_isa.c | 14 +++---- drivers/net/can/softing/softing_main.c | 4 +- drivers/net/can/spi/mcp251x.c | 2 +- drivers/net/can/usb/esd_usb2.c | 6 +-- drivers/net/can/vcan.c | 2 +- drivers/net/hamradio/bpqether.c | 3 +- drivers/net/hamradio/yam.c | 2 +- drivers/net/hyperv/netvsc_drv.c | 4 +- drivers/net/ieee802154/at86rf230.c | 2 +- drivers/net/phy/spi_ks8995.c | 2 +- drivers/net/ppp/ppp_generic.c | 2 +- drivers/net/ppp/pppoe.c | 2 +- drivers/net/usb/cdc_ncm.c | 12 +++--- drivers/net/usb/hso.c | 8 ++-- drivers/net/xen-netback/xenbus.c | 4 +- drivers/net/xen-netfront.c | 6 +-- 27 files changed, 124 insertions(+), 127 deletions(-) diff --git a/drivers/net/bonding/bond_procfs.c b/drivers/net/bonding/bond_procfs.c index f7799321dffb..01059f1a7bca 100644 --- a/drivers/net/bonding/bond_procfs.c +++ b/drivers/net/bonding/bond_procfs.c @@ -287,7 +287,7 @@ void bond_create_proc_entry(struct bonding *bond) if (bn->proc_dir) { bond->proc_entry = proc_create_data(bond_dev->name, - S_IRUGO, bn->proc_dir, + 0444, bn->proc_dir, &bond_info_fops, bond); if (bond->proc_entry == NULL) netdev_warn(bond_dev, "Cannot create /proc/net/%s/%s\n", diff --git a/drivers/net/bonding/bond_sysfs.c b/drivers/net/bonding/bond_sysfs.c index 040b493f60ae..6096440e96ea 100644 --- a/drivers/net/bonding/bond_sysfs.c +++ b/drivers/net/bonding/bond_sysfs.c @@ -147,7 +147,7 @@ static ssize_t bonding_store_bonds(struct class *cls, static const struct class_attribute class_attr_bonding_masters = { .attr = { .name = "bonding_masters", - .mode = S_IWUSR | S_IRUGO, + .mode = 0644, }, .show = bonding_show_bonds, .store = bonding_store_bonds, @@ -202,7 +202,7 @@ static ssize_t bonding_show_slaves(struct device *d, return res; } -static DEVICE_ATTR(slaves, S_IRUGO | S_IWUSR, bonding_show_slaves, +static DEVICE_ATTR(slaves, 0644, bonding_show_slaves, bonding_sysfs_store_option); /* Show the bonding mode. */ @@ -216,8 +216,7 @@ static ssize_t bonding_show_mode(struct device *d, return sprintf(buf, "%s %d\n", val->string, BOND_MODE(bond)); } -static DEVICE_ATTR(mode, S_IRUGO | S_IWUSR, - bonding_show_mode, bonding_sysfs_store_option); +static DEVICE_ATTR(mode, 0644, bonding_show_mode, bonding_sysfs_store_option); /* Show the bonding transmit hash method. */ static ssize_t bonding_show_xmit_hash(struct device *d, @@ -231,7 +230,7 @@ static ssize_t bonding_show_xmit_hash(struct device *d, return sprintf(buf, "%s %d\n", val->string, bond->params.xmit_policy); } -static DEVICE_ATTR(xmit_hash_policy, S_IRUGO | S_IWUSR, +static DEVICE_ATTR(xmit_hash_policy, 0644, bonding_show_xmit_hash, bonding_sysfs_store_option); /* Show arp_validate. */ @@ -247,7 +246,7 @@ static ssize_t bonding_show_arp_validate(struct device *d, return sprintf(buf, "%s %d\n", val->string, bond->params.arp_validate); } -static DEVICE_ATTR(arp_validate, S_IRUGO | S_IWUSR, bonding_show_arp_validate, +static DEVICE_ATTR(arp_validate, 0644, bonding_show_arp_validate, bonding_sysfs_store_option); /* Show arp_all_targets. */ @@ -263,7 +262,7 @@ static ssize_t bonding_show_arp_all_targets(struct device *d, return sprintf(buf, "%s %d\n", val->string, bond->params.arp_all_targets); } -static DEVICE_ATTR(arp_all_targets, S_IRUGO | S_IWUSR, +static DEVICE_ATTR(arp_all_targets, 0644, bonding_show_arp_all_targets, bonding_sysfs_store_option); /* Show fail_over_mac. */ @@ -279,7 +278,7 @@ static ssize_t bonding_show_fail_over_mac(struct device *d, return sprintf(buf, "%s %d\n", val->string, bond->params.fail_over_mac); } -static DEVICE_ATTR(fail_over_mac, S_IRUGO | S_IWUSR, +static DEVICE_ATTR(fail_over_mac, 0644, bonding_show_fail_over_mac, bonding_sysfs_store_option); /* Show the arp timer interval. */ @@ -291,7 +290,7 @@ static ssize_t bonding_show_arp_interval(struct device *d, return sprintf(buf, "%d\n", bond->params.arp_interval); } -static DEVICE_ATTR(arp_interval, S_IRUGO | S_IWUSR, +static DEVICE_ATTR(arp_interval, 0644, bonding_show_arp_interval, bonding_sysfs_store_option); /* Show the arp targets. */ @@ -312,7 +311,7 @@ static ssize_t bonding_show_arp_targets(struct device *d, return res; } -static DEVICE_ATTR(arp_ip_target, S_IRUGO | S_IWUSR, +static DEVICE_ATTR(arp_ip_target, 0644, bonding_show_arp_targets, bonding_sysfs_store_option); /* Show the up and down delays. */ @@ -324,7 +323,7 @@ static ssize_t bonding_show_downdelay(struct device *d, return sprintf(buf, "%d\n", bond->params.downdelay * bond->params.miimon); } -static DEVICE_ATTR(downdelay, S_IRUGO | S_IWUSR, +static DEVICE_ATTR(downdelay, 0644, bonding_show_downdelay, bonding_sysfs_store_option); static ssize_t bonding_show_updelay(struct device *d, @@ -336,7 +335,7 @@ static ssize_t bonding_show_updelay(struct device *d, return sprintf(buf, "%d\n", bond->params.updelay * bond->params.miimon); } -static DEVICE_ATTR(updelay, S_IRUGO | S_IWUSR, +static DEVICE_ATTR(updelay, 0644, bonding_show_updelay, bonding_sysfs_store_option); /* Show the LACP interval. */ @@ -351,7 +350,7 @@ static ssize_t bonding_show_lacp(struct device *d, return sprintf(buf, "%s %d\n", val->string, bond->params.lacp_fast); } -static DEVICE_ATTR(lacp_rate, S_IRUGO | S_IWUSR, +static DEVICE_ATTR(lacp_rate, 0644, bonding_show_lacp, bonding_sysfs_store_option); static ssize_t bonding_show_min_links(struct device *d, @@ -362,7 +361,7 @@ static ssize_t bonding_show_min_links(struct device *d, return sprintf(buf, "%u\n", bond->params.min_links); } -static DEVICE_ATTR(min_links, S_IRUGO | S_IWUSR, +static DEVICE_ATTR(min_links, 0644, bonding_show_min_links, bonding_sysfs_store_option); static ssize_t bonding_show_ad_select(struct device *d, @@ -376,7 +375,7 @@ static ssize_t bonding_show_ad_select(struct device *d, return sprintf(buf, "%s %d\n", val->string, bond->params.ad_select); } -static DEVICE_ATTR(ad_select, S_IRUGO | S_IWUSR, +static DEVICE_ATTR(ad_select, 0644, bonding_show_ad_select, bonding_sysfs_store_option); /* Show the number of peer notifications to send after a failover event. */ @@ -387,9 +386,9 @@ static ssize_t bonding_show_num_peer_notif(struct device *d, struct bonding *bond = to_bond(d); return sprintf(buf, "%d\n", bond->params.num_peer_notif); } -static DEVICE_ATTR(num_grat_arp, S_IRUGO | S_IWUSR, +static DEVICE_ATTR(num_grat_arp, 0644, bonding_show_num_peer_notif, bonding_sysfs_store_option); -static DEVICE_ATTR(num_unsol_na, S_IRUGO | S_IWUSR, +static DEVICE_ATTR(num_unsol_na, 0644, bonding_show_num_peer_notif, bonding_sysfs_store_option); /* Show the MII monitor interval. */ @@ -401,7 +400,7 @@ static ssize_t bonding_show_miimon(struct device *d, return sprintf(buf, "%d\n", bond->params.miimon); } -static DEVICE_ATTR(miimon, S_IRUGO | S_IWUSR, +static DEVICE_ATTR(miimon, 0644, bonding_show_miimon, bonding_sysfs_store_option); /* Show the primary slave. */ @@ -421,7 +420,7 @@ static ssize_t bonding_show_primary(struct device *d, return count; } -static DEVICE_ATTR(primary, S_IRUGO | S_IWUSR, +static DEVICE_ATTR(primary, 0644, bonding_show_primary, bonding_sysfs_store_option); /* Show the primary_reselect flag. */ @@ -438,7 +437,7 @@ static ssize_t bonding_show_primary_reselect(struct device *d, return sprintf(buf, "%s %d\n", val->string, bond->params.primary_reselect); } -static DEVICE_ATTR(primary_reselect, S_IRUGO | S_IWUSR, +static DEVICE_ATTR(primary_reselect, 0644, bonding_show_primary_reselect, bonding_sysfs_store_option); /* Show the use_carrier flag. */ @@ -450,7 +449,7 @@ static ssize_t bonding_show_carrier(struct device *d, return sprintf(buf, "%d\n", bond->params.use_carrier); } -static DEVICE_ATTR(use_carrier, S_IRUGO | S_IWUSR, +static DEVICE_ATTR(use_carrier, 0644, bonding_show_carrier, bonding_sysfs_store_option); @@ -471,7 +470,7 @@ static ssize_t bonding_show_active_slave(struct device *d, return count; } -static DEVICE_ATTR(active_slave, S_IRUGO | S_IWUSR, +static DEVICE_ATTR(active_slave, 0644, bonding_show_active_slave, bonding_sysfs_store_option); /* Show link status of the bond interface. */ @@ -484,7 +483,7 @@ static ssize_t bonding_show_mii_status(struct device *d, return sprintf(buf, "%s\n", active ? "up" : "down"); } -static DEVICE_ATTR(mii_status, S_IRUGO, bonding_show_mii_status, NULL); +static DEVICE_ATTR(mii_status, 0444, bonding_show_mii_status, NULL); /* Show current 802.3ad aggregator ID. */ static ssize_t bonding_show_ad_aggregator(struct device *d, @@ -503,7 +502,7 @@ static ssize_t bonding_show_ad_aggregator(struct device *d, return count; } -static DEVICE_ATTR(ad_aggregator, S_IRUGO, bonding_show_ad_aggregator, NULL); +static DEVICE_ATTR(ad_aggregator, 0444, bonding_show_ad_aggregator, NULL); /* Show number of active 802.3ad ports. */ @@ -523,7 +522,7 @@ static ssize_t bonding_show_ad_num_ports(struct device *d, return count; } -static DEVICE_ATTR(ad_num_ports, S_IRUGO, bonding_show_ad_num_ports, NULL); +static DEVICE_ATTR(ad_num_ports, 0444, bonding_show_ad_num_ports, NULL); /* Show current 802.3ad actor key. */ @@ -543,7 +542,7 @@ static ssize_t bonding_show_ad_actor_key(struct device *d, return count; } -static DEVICE_ATTR(ad_actor_key, S_IRUGO, bonding_show_ad_actor_key, NULL); +static DEVICE_ATTR(ad_actor_key, 0444, bonding_show_ad_actor_key, NULL); /* Show current 802.3ad partner key. */ @@ -563,7 +562,7 @@ static ssize_t bonding_show_ad_partner_key(struct device *d, return count; } -static DEVICE_ATTR(ad_partner_key, S_IRUGO, bonding_show_ad_partner_key, NULL); +static DEVICE_ATTR(ad_partner_key, 0444, bonding_show_ad_partner_key, NULL); /* Show current 802.3ad partner mac. */ @@ -582,7 +581,7 @@ static ssize_t bonding_show_ad_partner_mac(struct device *d, return count; } -static DEVICE_ATTR(ad_partner_mac, S_IRUGO, bonding_show_ad_partner_mac, NULL); +static DEVICE_ATTR(ad_partner_mac, 0444, bonding_show_ad_partner_mac, NULL); /* Show the queue_ids of the slaves in the current bond. */ static ssize_t bonding_show_queue_id(struct device *d, @@ -615,7 +614,7 @@ static ssize_t bonding_show_queue_id(struct device *d, return res; } -static DEVICE_ATTR(queue_id, S_IRUGO | S_IWUSR, bonding_show_queue_id, +static DEVICE_ATTR(queue_id, 0644, bonding_show_queue_id, bonding_sysfs_store_option); @@ -628,7 +627,7 @@ static ssize_t bonding_show_slaves_active(struct device *d, return sprintf(buf, "%d\n", bond->params.all_slaves_active); } -static DEVICE_ATTR(all_slaves_active, S_IRUGO | S_IWUSR, +static DEVICE_ATTR(all_slaves_active, 0644, bonding_show_slaves_active, bonding_sysfs_store_option); /* Show the number of IGMP membership reports to send on link failure */ @@ -640,7 +639,7 @@ static ssize_t bonding_show_resend_igmp(struct device *d, return sprintf(buf, "%d\n", bond->params.resend_igmp); } -static DEVICE_ATTR(resend_igmp, S_IRUGO | S_IWUSR, +static DEVICE_ATTR(resend_igmp, 0644, bonding_show_resend_igmp, bonding_sysfs_store_option); @@ -652,7 +651,7 @@ static ssize_t bonding_show_lp_interval(struct device *d, return sprintf(buf, "%d\n", bond->params.lp_interval); } -static DEVICE_ATTR(lp_interval, S_IRUGO | S_IWUSR, +static DEVICE_ATTR(lp_interval, 0644, bonding_show_lp_interval, bonding_sysfs_store_option); static ssize_t bonding_show_tlb_dynamic_lb(struct device *d, @@ -662,7 +661,7 @@ static ssize_t bonding_show_tlb_dynamic_lb(struct device *d, struct bonding *bond = to_bond(d); return sprintf(buf, "%d\n", bond->params.tlb_dynamic_lb); } -static DEVICE_ATTR(tlb_dynamic_lb, S_IRUGO | S_IWUSR, +static DEVICE_ATTR(tlb_dynamic_lb, 0644, bonding_show_tlb_dynamic_lb, bonding_sysfs_store_option); static ssize_t bonding_show_packets_per_slave(struct device *d, @@ -674,7 +673,7 @@ static ssize_t bonding_show_packets_per_slave(struct device *d, return sprintf(buf, "%u\n", packets_per_slave); } -static DEVICE_ATTR(packets_per_slave, S_IRUGO | S_IWUSR, +static DEVICE_ATTR(packets_per_slave, 0644, bonding_show_packets_per_slave, bonding_sysfs_store_option); static ssize_t bonding_show_ad_actor_sys_prio(struct device *d, @@ -688,7 +687,7 @@ static ssize_t bonding_show_ad_actor_sys_prio(struct device *d, return 0; } -static DEVICE_ATTR(ad_actor_sys_prio, S_IRUGO | S_IWUSR, +static DEVICE_ATTR(ad_actor_sys_prio, 0644, bonding_show_ad_actor_sys_prio, bonding_sysfs_store_option); static ssize_t bonding_show_ad_actor_system(struct device *d, @@ -703,7 +702,7 @@ static ssize_t bonding_show_ad_actor_system(struct device *d, return 0; } -static DEVICE_ATTR(ad_actor_system, S_IRUGO | S_IWUSR, +static DEVICE_ATTR(ad_actor_system, 0644, bonding_show_ad_actor_system, bonding_sysfs_store_option); static ssize_t bonding_show_ad_user_port_key(struct device *d, @@ -717,7 +716,7 @@ static ssize_t bonding_show_ad_user_port_key(struct device *d, return 0; } -static DEVICE_ATTR(ad_user_port_key, S_IRUGO | S_IWUSR, +static DEVICE_ATTR(ad_user_port_key, 0644, bonding_show_ad_user_port_key, bonding_sysfs_store_option); static struct attribute *per_bond_attrs[] = { diff --git a/drivers/net/bonding/bond_sysfs_slave.c b/drivers/net/bonding/bond_sysfs_slave.c index 7d16c51e6913..2f120b2ffef0 100644 --- a/drivers/net/bonding/bond_sysfs_slave.c +++ b/drivers/net/bonding/bond_sysfs_slave.c @@ -25,8 +25,8 @@ const struct slave_attribute slave_attr_##_name = { \ .mode = _mode }, \ .show = _show, \ }; -#define SLAVE_ATTR_RO(_name) \ - SLAVE_ATTR(_name, S_IRUGO, _name##_show) +#define SLAVE_ATTR_RO(_name) \ + SLAVE_ATTR(_name, 0444, _name##_show) static ssize_t state_show(struct slave *slave, char *buf) { diff --git a/drivers/net/caif/caif_serial.c b/drivers/net/caif/caif_serial.c index 709838e4c062..a0f954f36c09 100644 --- a/drivers/net/caif/caif_serial.c +++ b/drivers/net/caif/caif_serial.c @@ -40,20 +40,20 @@ static LIST_HEAD(ser_list); static LIST_HEAD(ser_release_list); static bool ser_loop; -module_param(ser_loop, bool, S_IRUGO); +module_param(ser_loop, bool, 0444); MODULE_PARM_DESC(ser_loop, "Run in simulated loopback mode."); static bool ser_use_stx = true; -module_param(ser_use_stx, bool, S_IRUGO); +module_param(ser_use_stx, bool, 0444); MODULE_PARM_DESC(ser_use_stx, "STX enabled or not."); static bool ser_use_fcs = true; -module_param(ser_use_fcs, bool, S_IRUGO); +module_param(ser_use_fcs, bool, 0444); MODULE_PARM_DESC(ser_use_fcs, "FCS enabled or not."); static int ser_write_chunk = MAX_WRITE_CHUNK; -module_param(ser_write_chunk, int, S_IRUGO); +module_param(ser_write_chunk, int, 0444); MODULE_PARM_DESC(ser_write_chunk, "Maximum size of data written to UART."); @@ -97,21 +97,21 @@ static inline void debugfs_init(struct ser_device *ser, struct tty_struct *tty) ser->debugfs_tty_dir = debugfs_create_dir(tty->name, debugfsdir); if (!IS_ERR(ser->debugfs_tty_dir)) { - debugfs_create_blob("last_tx_msg", S_IRUSR, - ser->debugfs_tty_dir, - &ser->tx_blob); + debugfs_create_blob("last_tx_msg", 0400, + ser->debugfs_tty_dir, + &ser->tx_blob); - debugfs_create_blob("last_rx_msg", S_IRUSR, - ser->debugfs_tty_dir, - &ser->rx_blob); + debugfs_create_blob("last_rx_msg", 0400, + ser->debugfs_tty_dir, + &ser->rx_blob); - debugfs_create_x32("ser_state", S_IRUSR, - ser->debugfs_tty_dir, - (u32 *)&ser->state); + debugfs_create_x32("ser_state", 0400, + ser->debugfs_tty_dir, + (u32 *)&ser->state); - debugfs_create_x8("tty_status", S_IRUSR, - ser->debugfs_tty_dir, - &ser->tty_status); + debugfs_create_x8("tty_status", 0400, + ser->debugfs_tty_dir, + &ser->tty_status); } ser->tx_blob.data = ser->tx_data; diff --git a/drivers/net/caif/caif_spi.c b/drivers/net/caif/caif_spi.c index 980eace53d44..d28a1398c091 100644 --- a/drivers/net/caif/caif_spi.c +++ b/drivers/net/caif/caif_spi.c @@ -35,27 +35,27 @@ MODULE_DESCRIPTION("CAIF SPI driver"); #define PAD_POW2(x, pow) ((((x)&((pow)-1))==0) ? 0 : (((pow)-((x)&((pow)-1))))) static bool spi_loop; -module_param(spi_loop, bool, S_IRUGO); +module_param(spi_loop, bool, 0444); MODULE_PARM_DESC(spi_loop, "SPI running in loopback mode."); /* SPI frame alignment. */ -module_param(spi_frm_align, int, S_IRUGO); +module_param(spi_frm_align, int, 0444); MODULE_PARM_DESC(spi_frm_align, "SPI frame alignment."); /* * SPI padding options. * Warning: must be a base of 2 (& operation used) and can not be zero ! */ -module_param(spi_up_head_align, int, S_IRUGO); +module_param(spi_up_head_align, int, 0444); MODULE_PARM_DESC(spi_up_head_align, "SPI uplink head alignment."); -module_param(spi_up_tail_align, int, S_IRUGO); +module_param(spi_up_tail_align, int, 0444); MODULE_PARM_DESC(spi_up_tail_align, "SPI uplink tail alignment."); -module_param(spi_down_head_align, int, S_IRUGO); +module_param(spi_down_head_align, int, 0444); MODULE_PARM_DESC(spi_down_head_align, "SPI downlink head alignment."); -module_param(spi_down_tail_align, int, S_IRUGO); +module_param(spi_down_tail_align, int, 0444); MODULE_PARM_DESC(spi_down_tail_align, "SPI downlink tail alignment."); #ifdef CONFIG_ARM @@ -250,10 +250,10 @@ static const struct file_operations dbgfs_frame_fops = { static inline void dev_debugfs_add(struct cfspi *cfspi) { cfspi->dbgfs_dir = debugfs_create_dir(cfspi->pdev->name, dbgfs_root); - cfspi->dbgfs_state = debugfs_create_file("state", S_IRUGO, + cfspi->dbgfs_state = debugfs_create_file("state", 0444, cfspi->dbgfs_dir, cfspi, &dbgfs_state_fops); - cfspi->dbgfs_frame = debugfs_create_file("frame", S_IRUGO, + cfspi->dbgfs_frame = debugfs_create_file("frame", 0444, cfspi->dbgfs_dir, cfspi, &dbgfs_frame_fops); } diff --git a/drivers/net/caif/caif_virtio.c b/drivers/net/caif/caif_virtio.c index c3d104feee13..2814e0dee4bb 100644 --- a/drivers/net/caif/caif_virtio.c +++ b/drivers/net/caif/caif_virtio.c @@ -629,21 +629,21 @@ static inline void debugfs_init(struct cfv_info *cfv) if (IS_ERR(cfv->debugfs)) return; - debugfs_create_u32("rx-napi-complete", S_IRUSR, cfv->debugfs, + debugfs_create_u32("rx-napi-complete", 0400, cfv->debugfs, &cfv->stats.rx_napi_complete); - debugfs_create_u32("rx-napi-resched", S_IRUSR, cfv->debugfs, + debugfs_create_u32("rx-napi-resched", 0400, cfv->debugfs, &cfv->stats.rx_napi_resched); - debugfs_create_u32("rx-nomem", S_IRUSR, cfv->debugfs, + debugfs_create_u32("rx-nomem", 0400, cfv->debugfs, &cfv->stats.rx_nomem); - debugfs_create_u32("rx-kicks", S_IRUSR, cfv->debugfs, + debugfs_create_u32("rx-kicks", 0400, cfv->debugfs, &cfv->stats.rx_kicks); - debugfs_create_u32("tx-full-ring", S_IRUSR, cfv->debugfs, + debugfs_create_u32("tx-full-ring", 0400, cfv->debugfs, &cfv->stats.tx_full_ring); - debugfs_create_u32("tx-no-mem", S_IRUSR, cfv->debugfs, + debugfs_create_u32("tx-no-mem", 0400, cfv->debugfs, &cfv->stats.tx_no_mem); - debugfs_create_u32("tx-kicks", S_IRUSR, cfv->debugfs, + debugfs_create_u32("tx-kicks", 0400, cfv->debugfs, &cfv->stats.tx_kicks); - debugfs_create_u32("tx-flow-on", S_IRUSR, cfv->debugfs, + debugfs_create_u32("tx-flow-on", 0400, cfv->debugfs, &cfv->stats.tx_flow_on); } diff --git a/drivers/net/can/at91_can.c b/drivers/net/can/at91_can.c index f37ce0e1b603..d98c69045b17 100644 --- a/drivers/net/can/at91_can.c +++ b/drivers/net/can/at91_can.c @@ -1224,8 +1224,7 @@ static ssize_t at91_sysfs_set_mb0_id(struct device *dev, return ret; } -static DEVICE_ATTR(mb0_id, S_IWUSR | S_IRUGO, - at91_sysfs_show_mb0_id, at91_sysfs_set_mb0_id); +static DEVICE_ATTR(mb0_id, 0644, at91_sysfs_show_mb0_id, at91_sysfs_set_mb0_id); static struct attribute *at91_sysfs_attrs[] = { &dev_attr_mb0_id.attr, diff --git a/drivers/net/can/cc770/cc770.c b/drivers/net/can/cc770/cc770.c index 6da69af103e6..d4dd4da23997 100644 --- a/drivers/net/can/cc770/cc770.c +++ b/drivers/net/can/cc770/cc770.c @@ -67,12 +67,12 @@ MODULE_DESCRIPTION(KBUILD_MODNAME "CAN netdevice driver"); * otherwise 11 bit SFF messages. */ static int msgobj15_eff; -module_param(msgobj15_eff, int, S_IRUGO); +module_param(msgobj15_eff, int, 0444); MODULE_PARM_DESC(msgobj15_eff, "Extended 29-bit frames for message object 15 " "(default: 11-bit standard frames)"); static int i82527_compat; -module_param(i82527_compat, int, S_IRUGO); +module_param(i82527_compat, int, 0444); MODULE_PARM_DESC(i82527_compat, "Strict Intel 82527 comptibility mode " "without using additional functions"); diff --git a/drivers/net/can/cc770/cc770_isa.c b/drivers/net/can/cc770/cc770_isa.c index 3a30fd3b4498..fcd34698074f 100644 --- a/drivers/net/can/cc770/cc770_isa.c +++ b/drivers/net/can/cc770/cc770_isa.c @@ -82,29 +82,29 @@ static u8 cor[MAXDEV] = {[0 ... (MAXDEV - 1)] = 0xff}; static u8 bcr[MAXDEV] = {[0 ... (MAXDEV - 1)] = 0xff}; static int indirect[MAXDEV] = {[0 ... (MAXDEV - 1)] = -1}; -module_param_hw_array(port, ulong, ioport, NULL, S_IRUGO); +module_param_hw_array(port, ulong, ioport, NULL, 0444); MODULE_PARM_DESC(port, "I/O port number"); -module_param_hw_array(mem, ulong, iomem, NULL, S_IRUGO); +module_param_hw_array(mem, ulong, iomem, NULL, 0444); MODULE_PARM_DESC(mem, "I/O memory address"); -module_param_hw_array(indirect, int, ioport, NULL, S_IRUGO); +module_param_hw_array(indirect, int, ioport, NULL, 0444); MODULE_PARM_DESC(indirect, "Indirect access via address and data port"); -module_param_hw_array(irq, int, irq, NULL, S_IRUGO); +module_param_hw_array(irq, int, irq, NULL, 0444); MODULE_PARM_DESC(irq, "IRQ number"); -module_param_array(clk, int, NULL, S_IRUGO); +module_param_array(clk, int, NULL, 0444); MODULE_PARM_DESC(clk, "External oscillator clock frequency " "(default=16000000 [16 MHz])"); -module_param_array(cir, byte, NULL, S_IRUGO); +module_param_array(cir, byte, NULL, 0444); MODULE_PARM_DESC(cir, "CPU interface register (default=0x40 [DSC])"); -module_param_array(cor, byte, NULL, S_IRUGO); +module_param_array(cor, byte, NULL, 0444); MODULE_PARM_DESC(cor, "Clockout register (default=0x00)"); -module_param_array(bcr, byte, NULL, S_IRUGO); +module_param_array(bcr, byte, NULL, 0444); MODULE_PARM_DESC(bcr, "Bus configuration register (default=0x40 [CBY])"); #define CC770_IOSIZE 0x20 diff --git a/drivers/net/can/grcan.c b/drivers/net/can/grcan.c index 897c6b113d3f..2d3046afa80d 100644 --- a/drivers/net/can/grcan.c +++ b/drivers/net/can/grcan.c @@ -1484,7 +1484,7 @@ static netdev_tx_t grcan_start_xmit(struct sk_buff *skb, } \ } \ module_param_named(name, grcan_module_config.name, \ - mtype, S_IRUGO); \ + mtype, 0444); \ MODULE_PARM_DESC(name, desc) #define GRCAN_CONFIG_ATTR(name, desc) \ @@ -1513,7 +1513,7 @@ static netdev_tx_t grcan_start_xmit(struct sk_buff *skb, struct grcan_priv *priv = netdev_priv(dev); \ return sprintf(buf, "%d\n", priv->config.name); \ } \ - static DEVICE_ATTR(name, S_IRUGO | S_IWUSR, \ + static DEVICE_ATTR(name, 0644, \ grcan_show_##name, \ grcan_store_##name); \ GRCAN_MODULE_PARAM(name, ushort, GRCAN_NOT_BOOL, desc) diff --git a/drivers/net/can/janz-ican3.c b/drivers/net/can/janz-ican3.c index 12a53c8e8e1d..adfdb66a486e 100644 --- a/drivers/net/can/janz-ican3.c +++ b/drivers/net/can/janz-ican3.c @@ -1865,9 +1865,9 @@ static ssize_t ican3_sysfs_show_fwinfo(struct device *dev, return scnprintf(buf, PAGE_SIZE, "%s\n", mod->fwinfo); } -static DEVICE_ATTR(termination, S_IWUSR | S_IRUGO, ican3_sysfs_show_term, - ican3_sysfs_set_term); -static DEVICE_ATTR(fwinfo, S_IRUSR | S_IRUGO, ican3_sysfs_show_fwinfo, NULL); +static DEVICE_ATTR(termination, 0644, ican3_sysfs_show_term, + ican3_sysfs_set_term); +static DEVICE_ATTR(fwinfo, 0444, ican3_sysfs_show_fwinfo, NULL); static struct attribute *ican3_sysfs_attrs[] = { &dev_attr_termination.attr, diff --git a/drivers/net/can/sja1000/sja1000_isa.c b/drivers/net/can/sja1000/sja1000_isa.c index a89c1e92554d..1a2ae6ce8d87 100644 --- a/drivers/net/can/sja1000/sja1000_isa.c +++ b/drivers/net/can/sja1000/sja1000_isa.c @@ -48,27 +48,27 @@ static unsigned char ocr[MAXDEV] = {[0 ... (MAXDEV - 1)] = 0xff}; static int indirect[MAXDEV] = {[0 ... (MAXDEV - 1)] = -1}; static spinlock_t indirect_lock[MAXDEV]; /* lock for indirect access mode */ -module_param_hw_array(port, ulong, ioport, NULL, S_IRUGO); +module_param_hw_array(port, ulong, ioport, NULL, 0444); MODULE_PARM_DESC(port, "I/O port number"); -module_param_hw_array(mem, ulong, iomem, NULL, S_IRUGO); +module_param_hw_array(mem, ulong, iomem, NULL, 0444); MODULE_PARM_DESC(mem, "I/O memory address"); -module_param_hw_array(indirect, int, ioport, NULL, S_IRUGO); +module_param_hw_array(indirect, int, ioport, NULL, 0444); MODULE_PARM_DESC(indirect, "Indirect access via address and data port"); -module_param_hw_array(irq, int, irq, NULL, S_IRUGO); +module_param_hw_array(irq, int, irq, NULL, 0444); MODULE_PARM_DESC(irq, "IRQ number"); -module_param_array(clk, int, NULL, S_IRUGO); +module_param_array(clk, int, NULL, 0444); MODULE_PARM_DESC(clk, "External oscillator clock frequency " "(default=16000000 [16 MHz])"); -module_param_array(cdr, byte, NULL, S_IRUGO); +module_param_array(cdr, byte, NULL, 0444); MODULE_PARM_DESC(cdr, "Clock divider register " "(default=0x48 [CDR_CBP | CDR_CLK_OFF])"); -module_param_array(ocr, byte, NULL, S_IRUGO); +module_param_array(ocr, byte, NULL, 0444); MODULE_PARM_DESC(ocr, "Output control register " "(default=0x18 [OCR_TX0_PUSHPULL])"); diff --git a/drivers/net/can/softing/softing_main.c b/drivers/net/can/softing/softing_main.c index 5f64deec9f6c..e22696190583 100644 --- a/drivers/net/can/softing/softing_main.c +++ b/drivers/net/can/softing/softing_main.c @@ -601,8 +601,8 @@ static ssize_t store_output(struct device *dev, struct device_attribute *attr, return count; } -static const DEVICE_ATTR(chip, S_IRUGO, show_chip, NULL); -static const DEVICE_ATTR(output, S_IRUGO | S_IWUSR, show_output, store_output); +static const DEVICE_ATTR(chip, 0444, show_chip, NULL); +static const DEVICE_ATTR(output, 0644, show_output, store_output); static const struct attribute *const netdev_sysfs_attrs[] = { &dev_attr_chip.attr, diff --git a/drivers/net/can/spi/mcp251x.c b/drivers/net/can/spi/mcp251x.c index 98d118b3aaf4..e90817608645 100644 --- a/drivers/net/can/spi/mcp251x.c +++ b/drivers/net/can/spi/mcp251x.c @@ -220,7 +220,7 @@ #define DEVICE_NAME "mcp251x" static int mcp251x_enable_dma; /* Enable SPI DMA. Default: 0 (Off) */ -module_param(mcp251x_enable_dma, int, S_IRUGO); +module_param(mcp251x_enable_dma, int, 0444); MODULE_PARM_DESC(mcp251x_enable_dma, "Enable SPI DMA. Default: 0 (Off)"); static const struct can_bittiming_const mcp251x_bittiming_const = { diff --git a/drivers/net/can/usb/esd_usb2.c b/drivers/net/can/usb/esd_usb2.c index c6dcf93675c0..5820fd5b69b5 100644 --- a/drivers/net/can/usb/esd_usb2.c +++ b/drivers/net/can/usb/esd_usb2.c @@ -496,7 +496,7 @@ static ssize_t show_firmware(struct device *d, (dev->version >> 8) & 0xf, dev->version & 0xff); } -static DEVICE_ATTR(firmware, S_IRUGO, show_firmware, NULL); +static DEVICE_ATTR(firmware, 0444, show_firmware, NULL); static ssize_t show_hardware(struct device *d, struct device_attribute *attr, char *buf) @@ -509,7 +509,7 @@ static ssize_t show_hardware(struct device *d, (dev->version >> 24) & 0xf, (dev->version >> 16) & 0xff); } -static DEVICE_ATTR(hardware, S_IRUGO, show_hardware, NULL); +static DEVICE_ATTR(hardware, 0444, show_hardware, NULL); static ssize_t show_nets(struct device *d, struct device_attribute *attr, char *buf) @@ -519,7 +519,7 @@ static ssize_t show_nets(struct device *d, return sprintf(buf, "%d", dev->net_count); } -static DEVICE_ATTR(nets, S_IRUGO, show_nets, NULL); +static DEVICE_ATTR(nets, 0444, show_nets, NULL); static int esd_usb2_send_msg(struct esd_usb2 *dev, struct esd_usb2_msg *msg) { diff --git a/drivers/net/can/vcan.c b/drivers/net/can/vcan.c index c2b04f505e16..d200a5b0651c 100644 --- a/drivers/net/can/vcan.c +++ b/drivers/net/can/vcan.c @@ -65,7 +65,7 @@ MODULE_ALIAS_RTNL_LINK(DRV_NAME); */ static bool echo; /* echo testing. Default: 0 (Off) */ -module_param(echo, bool, S_IRUGO); +module_param(echo, bool, 0444); MODULE_PARM_DESC(echo, "Echo sent frames (for testing). Default: 0 (Off)"); diff --git a/drivers/net/hamradio/bpqether.c b/drivers/net/hamradio/bpqether.c index 78a6414c5fd9..dfabbae72efd 100644 --- a/drivers/net/hamradio/bpqether.c +++ b/drivers/net/hamradio/bpqether.c @@ -590,8 +590,7 @@ static int bpq_device_event(struct notifier_block *this, static int __init bpq_init_driver(void) { #ifdef CONFIG_PROC_FS - if (!proc_create("bpqether", S_IRUGO, init_net.proc_net, - &bpq_info_fops)) { + if (!proc_create("bpqether", 0444, init_net.proc_net, &bpq_info_fops)) { printk(KERN_ERR "bpq: cannot create /proc/net/bpqether entry.\n"); return -ENOENT; diff --git a/drivers/net/hamradio/yam.c b/drivers/net/hamradio/yam.c index 14c3632b8cde..83034eb7ed4f 100644 --- a/drivers/net/hamradio/yam.c +++ b/drivers/net/hamradio/yam.c @@ -1168,7 +1168,7 @@ static int __init yam_init_driver(void) yam_timer.expires = jiffies + HZ / 100; add_timer(&yam_timer); - proc_create("yam", S_IRUGO, init_net.proc_net, &yam_info_fops); + proc_create("yam", 0444, init_net.proc_net, &yam_info_fops); return 0; error: while (--i >= 0) { diff --git a/drivers/net/hyperv/netvsc_drv.c b/drivers/net/hyperv/netvsc_drv.c index f28c85d212ce..9f43a20ee7de 100644 --- a/drivers/net/hyperv/netvsc_drv.c +++ b/drivers/net/hyperv/netvsc_drv.c @@ -55,7 +55,7 @@ #define VF_TAKEOVER_INT (HZ / 10) static unsigned int ring_size __ro_after_init = 128; -module_param(ring_size, uint, S_IRUGO); +module_param(ring_size, uint, 0444); MODULE_PARM_DESC(ring_size, "Ring buffer size (# of pages)"); unsigned int netvsc_ring_bytes __ro_after_init; struct reciprocal_value netvsc_ring_reciprocal __ro_after_init; @@ -66,7 +66,7 @@ static const u32 default_msg = NETIF_MSG_DRV | NETIF_MSG_PROBE | NETIF_MSG_TX_ERR; static int debug = -1; -module_param(debug, int, S_IRUGO); +module_param(debug, int, 0444); MODULE_PARM_DESC(debug, "Debug level (0=none,...,16=all)"); static void netvsc_change_rx_flags(struct net_device *net, int change) diff --git a/drivers/net/ieee802154/at86rf230.c b/drivers/net/ieee802154/at86rf230.c index 548d9d026a85..77abedf0b524 100644 --- a/drivers/net/ieee802154/at86rf230.c +++ b/drivers/net/ieee802154/at86rf230.c @@ -1661,7 +1661,7 @@ static int at86rf230_debugfs_init(struct at86rf230_local *lp) if (!at86rf230_debugfs_root) return -ENOMEM; - stats = debugfs_create_file("trac_stats", S_IRUGO, + stats = debugfs_create_file("trac_stats", 0444, at86rf230_debugfs_root, lp, &at86rf230_stats_fops); if (!stats) diff --git a/drivers/net/phy/spi_ks8995.c b/drivers/net/phy/spi_ks8995.c index 1e2d4f1179da..f17b3441779b 100644 --- a/drivers/net/phy/spi_ks8995.c +++ b/drivers/net/phy/spi_ks8995.c @@ -417,7 +417,7 @@ static void ks8995_parse_dt(struct ks8995_switch *ks) static const struct bin_attribute ks8995_registers_attr = { .attr = { .name = "registers", - .mode = S_IRUSR | S_IWUSR, + .mode = 0600, }, .size = KS8995_REGS_SIZE, .read = ks8995_registers_read, diff --git a/drivers/net/ppp/ppp_generic.c b/drivers/net/ppp/ppp_generic.c index 926c2c322d43..22fcff3c7a9a 100644 --- a/drivers/net/ppp/ppp_generic.c +++ b/drivers/net/ppp/ppp_generic.c @@ -1687,7 +1687,7 @@ ppp_push(struct ppp *ppp) #ifdef CONFIG_PPP_MULTILINK static bool mp_protocol_compress __read_mostly = true; -module_param(mp_protocol_compress, bool, S_IRUGO | S_IWUSR); +module_param(mp_protocol_compress, bool, 0644); MODULE_PARM_DESC(mp_protocol_compress, "compress protocol id in multilink fragments"); diff --git a/drivers/net/ppp/pppoe.c b/drivers/net/ppp/pppoe.c index c10e6181a2f0..f9552a400271 100644 --- a/drivers/net/ppp/pppoe.c +++ b/drivers/net/ppp/pppoe.c @@ -1142,7 +1142,7 @@ static __net_init int pppoe_init_net(struct net *net) rwlock_init(&pn->hash_lock); - pde = proc_create("pppoe", S_IRUGO, net->proc_net, &pppoe_seq_fops); + pde = proc_create("pppoe", 0444, net->proc_net, &pppoe_seq_fops); #ifdef CONFIG_PROC_FS if (!pde) return -ENOMEM; diff --git a/drivers/net/usb/cdc_ncm.c b/drivers/net/usb/cdc_ncm.c index 9e1b74590682..90d07ed224d5 100644 --- a/drivers/net/usb/cdc_ncm.c +++ b/drivers/net/usb/cdc_ncm.c @@ -58,7 +58,7 @@ static bool prefer_mbim = true; #else static bool prefer_mbim; #endif -module_param(prefer_mbim, bool, S_IRUGO | S_IWUSR); +module_param(prefer_mbim, bool, 0644); MODULE_PARM_DESC(prefer_mbim, "Prefer MBIM setting on dual NCM/MBIM functions"); static void cdc_ncm_txpath_bh(unsigned long param); @@ -281,10 +281,10 @@ static ssize_t cdc_ncm_store_tx_timer_usecs(struct device *d, struct device_att return len; } -static DEVICE_ATTR(min_tx_pkt, S_IRUGO | S_IWUSR, cdc_ncm_show_min_tx_pkt, cdc_ncm_store_min_tx_pkt); -static DEVICE_ATTR(rx_max, S_IRUGO | S_IWUSR, cdc_ncm_show_rx_max, cdc_ncm_store_rx_max); -static DEVICE_ATTR(tx_max, S_IRUGO | S_IWUSR, cdc_ncm_show_tx_max, cdc_ncm_store_tx_max); -static DEVICE_ATTR(tx_timer_usecs, S_IRUGO | S_IWUSR, cdc_ncm_show_tx_timer_usecs, cdc_ncm_store_tx_timer_usecs); +static DEVICE_ATTR(min_tx_pkt, 0644, cdc_ncm_show_min_tx_pkt, cdc_ncm_store_min_tx_pkt); +static DEVICE_ATTR(rx_max, 0644, cdc_ncm_show_rx_max, cdc_ncm_store_rx_max); +static DEVICE_ATTR(tx_max, 0644, cdc_ncm_show_tx_max, cdc_ncm_store_tx_max); +static DEVICE_ATTR(tx_timer_usecs, 0644, cdc_ncm_show_tx_timer_usecs, cdc_ncm_store_tx_timer_usecs); static ssize_t ndp_to_end_show(struct device *d, struct device_attribute *attr, char *buf) { @@ -335,7 +335,7 @@ static ssize_t cdc_ncm_show_##name(struct device *d, struct device_attribute *at struct cdc_ncm_ctx *ctx = (struct cdc_ncm_ctx *)dev->data[0]; \ return sprintf(buf, format "\n", tocpu(ctx->ncm_parm.name)); \ } \ -static DEVICE_ATTR(name, S_IRUGO, cdc_ncm_show_##name, NULL) +static DEVICE_ATTR(name, 0444, cdc_ncm_show_##name, NULL) NCM_PARM_ATTR(bmNtbFormatsSupported, "0x%04x", le16_to_cpu); NCM_PARM_ATTR(dwNtbInMaxSize, "%u", le32_to_cpu); diff --git a/drivers/net/usb/hso.c b/drivers/net/usb/hso.c index 981c931a7a1f..e53883ad6107 100644 --- a/drivers/net/usb/hso.c +++ b/drivers/net/usb/hso.c @@ -519,7 +519,7 @@ static ssize_t hso_sysfs_show_porttype(struct device *dev, return sprintf(buf, "%s\n", port_name); } -static DEVICE_ATTR(hsotype, S_IRUGO, hso_sysfs_show_porttype, NULL); +static DEVICE_ATTR(hsotype, 0444, hso_sysfs_show_porttype, NULL); static struct attribute *hso_serial_dev_attrs[] = { &dev_attr_hsotype.attr, @@ -3289,12 +3289,12 @@ MODULE_LICENSE("GPL"); /* change the debug level (eg: insmod hso.ko debug=0x04) */ MODULE_PARM_DESC(debug, "debug level mask [0x01 | 0x02 | 0x04 | 0x08 | 0x10]"); -module_param(debug, int, S_IRUGO | S_IWUSR); +module_param(debug, int, 0644); /* set the major tty number (eg: insmod hso.ko tty_major=245) */ MODULE_PARM_DESC(tty_major, "Set the major tty number"); -module_param(tty_major, int, S_IRUGO | S_IWUSR); +module_param(tty_major, int, 0644); /* disable network interface (eg: insmod hso.ko disable_net=1) */ MODULE_PARM_DESC(disable_net, "Disable the network interface"); -module_param(disable_net, int, S_IRUGO | S_IWUSR); +module_param(disable_net, int, 0644); diff --git a/drivers/net/xen-netback/xenbus.c b/drivers/net/xen-netback/xenbus.c index a56d3eab35dd..e1aef253601e 100644 --- a/drivers/net/xen-netback/xenbus.c +++ b/drivers/net/xen-netback/xenbus.c @@ -224,7 +224,7 @@ static void xenvif_debugfs_addif(struct xenvif *vif) snprintf(filename, sizeof(filename), "io_ring_q%d", i); pfile = debugfs_create_file(filename, - S_IRUSR | S_IWUSR, + 0600, vif->xenvif_dbg_root, &vif->queues[i], &xenvif_dbg_io_ring_ops_fops); @@ -235,7 +235,7 @@ static void xenvif_debugfs_addif(struct xenvif *vif) if (vif->ctrl_irq) { pfile = debugfs_create_file("ctrl", - S_IRUSR, + 0400, vif->xenvif_dbg_root, vif, &xenvif_dbg_ctrl_ops_fops); diff --git a/drivers/net/xen-netfront.c b/drivers/net/xen-netfront.c index 3127bc8633ca..4dd0668003e7 100644 --- a/drivers/net/xen-netfront.c +++ b/drivers/net/xen-netfront.c @@ -2113,9 +2113,9 @@ static ssize_t store_rxbuf(struct device *dev, return len; } -static DEVICE_ATTR(rxbuf_min, S_IRUGO|S_IWUSR, show_rxbuf, store_rxbuf); -static DEVICE_ATTR(rxbuf_max, S_IRUGO|S_IWUSR, show_rxbuf, store_rxbuf); -static DEVICE_ATTR(rxbuf_cur, S_IRUGO, show_rxbuf, NULL); +static DEVICE_ATTR(rxbuf_min, 0644, show_rxbuf, store_rxbuf); +static DEVICE_ATTR(rxbuf_max, 0644, show_rxbuf, store_rxbuf); +static DEVICE_ATTR(rxbuf_cur, 0444, show_rxbuf, NULL); static struct attribute *xennet_dev_attrs[] = { &dev_attr_rxbuf_min.attr, -- 2.15.0 From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Cyrus-Session-Id: sloti22d1t05-2310776-1521845793-2-9847273829699221499 X-Sieve: CMU Sieve 3.0 X-Spam-known-sender: no X-Spam-score: 0.0 X-Spam-hits: BAYES_00 -1.9, HEADER_FROM_DIFFERENT_DOMAINS 0.25, ME_NOAUTH 0.01, RCVD_IN_DNSWL_HI -5, T_RP_MATCHES_RCVD -0.01, LANGUAGES unknown, BAYES_USED global, SA_VERSION 3.4.0 X-Spam-source: IP='209.132.180.67', Host='vger.kernel.org', Country='CN', FromHeader='com', MailFrom='org' X-Spam-charsets: X-Resolved-to: greg@kroah.com X-Delivered-to: greg@kroah.com X-Mail-from: linux-usb-owner@vger.kernel.org ARC-Seal: i=1; a=rsa-sha256; cv=none; d=messagingengine.com; s=arctest; t=1521845790; b=EmEKFcLEKKgFOK3y5yhC2hTmpikvfqvwxQpsmNNEw+mJTIV 5CoMSgD2OtOIQxALu7y2vgJcb41gMBIqEUGD1RvYSr7onP5EsFfrasDv41t4D8EJ FmJUO6Ic8TfKhqlX2v04kOuzTCShCwS6yNLzKBekDU+tPsNC/0L3iJdr491MRWMb kXZbCoPiFzc+6rhtR/ZA5mPfEvaIrT8TdCCN4HJ7BBXudLsQEKaEciMFQTdxmq8T pkfH1Jc4JaefgFAN3qjA9XqC1m+rdQt0QSgWjpjhU6gKKvLIfJWgqQ6T68/A6KFK FAv75g+laC8XNLcmchzjgUco4zhCGkWSDZ3RySQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=from:to:cc:subject:date:message-id :in-reply-to:references:sender:list-id; s=arctest; t=1521845790; bh=YRY2XXx9URAlAYbLD63ajjpn64qvMRzirOkYibE7SlU=; b=dS43c92HYUgd bK5V5MoMzxJB+IhkP/g4By8F42JS7Os7YvPJFld4JQGRYLhdQXBz0syM4Vi7V1M9 trKsHMRqfgteQGMr+l8ak+qB6fuoksTeXQwB95S+UsMwNTHAEMDjQeMwyErpiuLA QX6lXpHFgQRr9y5PPol+tPjGlnq76T7dY2aUSFZjeEaeNvkO40IscWo6AKjjEz14 Qn5pBUnUO5ZmN1gWzJVr4m+m9SP+B9hw0bCim1vtlcvzEcJN22WG0NES1gQ6HZtn nlzO8nnDyluZ6n0HBqdafuiAYxO95MXTrPvlY/9g8NM5VJCPPnAlu2GBO3OUeGjR vhLqJTFtoA== ARC-Authentication-Results: i=1; mx3.messagingengine.com; arc=none (no signatures found); dkim=none (no signatures found); dmarc=none (p=none,has-list-id=yes,d=none) header.from=perches.com; iprev=pass policy.iprev=209.132.180.67 (vger.kernel.org); spf=none smtp.mailfrom=linux-usb-owner@vger.kernel.org smtp.helo=vger.kernel.org; x-aligned-from=fail; x-ptr=pass x-ptr-helo=vger.kernel.org x-ptr-lookup=vger.kernel.org; x-return-mx=pass smtp.domain=vger.kernel.org smtp.result=pass smtp_org.domain=kernel.org smtp_org.result=pass smtp_is_org_domain=no header.domain=perches.com header.result=pass header_is_org_domain=yes; x-vs=clean score=-100 state=0 Authentication-Results: mx3.messagingengine.com; arc=none (no signatures found); dkim=none (no signatures found); dmarc=none (p=none,has-list-id=yes,d=none) header.from=perches.com; iprev=pass policy.iprev=209.132.180.67 (vger.kernel.org); spf=none smtp.mailfrom=linux-usb-owner@vger.kernel.org smtp.helo=vger.kernel.org; x-aligned-from=fail; x-ptr=pass x-ptr-helo=vger.kernel.org x-ptr-lookup=vger.kernel.org; x-return-mx=pass smtp.domain=vger.kernel.org smtp.result=pass smtp_org.domain=kernel.org smtp_org.result=pass smtp_is_org_domain=no header.domain=perches.com header.result=pass header_is_org_domain=yes; x-vs=clean score=-100 state=0 X-ME-VSCategory: clean Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752639AbeCWW4Q (ORCPT ); Fri, 23 Mar 2018 18:56:16 -0400 Received: from smtprelay0081.hostedemail.com ([216.40.44.81]:55106 "EHLO smtprelay.hostedemail.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1752230AbeCWWzy (ORCPT ); Fri, 23 Mar 2018 18:55:54 -0400 X-Session-Marker: 6A6F6540706572636865732E636F6D X-Remote-Spam-Summary: X-HE-Tag: shirt15_6cc8c04ccb550 X-Filterd-Recvd-Size: 41165 From: Joe Perches To: Jay Vosburgh , Veaceslav Falico , Andy Gospodarek , Dmitry Tarnyagin , Wolfgang Grandegger , Marc Kleine-Budde , Nicolas Ferre , Alexandre Belloni , Jean-Paul Roubelat , "K. Y. Srinivasan" , Haiyang Zhang , Stephen Hemminger , Alexander Aring , Stefan Schmidt , Andrew Lunn , Florian Fainelli , Paul Mackerras , Michal Ostrowski , Oliver Neukum , Wei Liu , Paul Durrant , Boris Ostrovsky , Juergen Gross Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org, linux-can@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-hams@vger.kernel.org, devel@linuxdriverproject.org, linux-wpan@vger.kernel.org, linux-ppp@vger.kernel.org, linux-usb@vger.kernel.org, xen-devel@lists.xenproject.org Subject: [PATCH 4/4] drivers/net: Use octal not symbolic permissions Date: Fri, 23 Mar 2018 15:54:39 -0700 Message-Id: <8f24a711e6b8ec7b41356c378140fb54d510205c.1521845248.git.joe@perches.com> X-Mailer: git-send-email 2.15.0 In-Reply-To: References: Sender: linux-usb-owner@vger.kernel.org X-Mailing-List: linux-usb@vger.kernel.org X-getmail-retrieved-from-mailbox: INBOX X-Mailing-List: linux-kernel@vger.kernel.org List-ID: Prefer the direct use of octal for permissions. Done with checkpatch -f --types=SYMBOLIC_PERMS --fix-inplace and some typing. Miscellanea: o Whitespace neatening around these conversions. Signed-off-by: Joe Perches --- drivers/net/bonding/bond_procfs.c | 2 +- drivers/net/bonding/bond_sysfs.c | 73 +++++++++++++++++----------------- drivers/net/bonding/bond_sysfs_slave.c | 4 +- drivers/net/caif/caif_serial.c | 32 +++++++-------- drivers/net/caif/caif_spi.c | 16 ++++---- drivers/net/caif/caif_virtio.c | 16 ++++---- drivers/net/can/at91_can.c | 3 +- drivers/net/can/cc770/cc770.c | 4 +- drivers/net/can/cc770/cc770_isa.c | 16 ++++---- drivers/net/can/grcan.c | 4 +- drivers/net/can/janz-ican3.c | 6 +-- drivers/net/can/sja1000/sja1000_isa.c | 14 +++---- drivers/net/can/softing/softing_main.c | 4 +- drivers/net/can/spi/mcp251x.c | 2 +- drivers/net/can/usb/esd_usb2.c | 6 +-- drivers/net/can/vcan.c | 2 +- drivers/net/hamradio/bpqether.c | 3 +- drivers/net/hamradio/yam.c | 2 +- drivers/net/hyperv/netvsc_drv.c | 4 +- drivers/net/ieee802154/at86rf230.c | 2 +- drivers/net/phy/spi_ks8995.c | 2 +- drivers/net/ppp/ppp_generic.c | 2 +- drivers/net/ppp/pppoe.c | 2 +- drivers/net/usb/cdc_ncm.c | 12 +++--- drivers/net/usb/hso.c | 8 ++-- drivers/net/xen-netback/xenbus.c | 4 +- drivers/net/xen-netfront.c | 6 +-- 27 files changed, 124 insertions(+), 127 deletions(-) diff --git a/drivers/net/bonding/bond_procfs.c b/drivers/net/bonding/bond_procfs.c index f7799321dffb..01059f1a7bca 100644 --- a/drivers/net/bonding/bond_procfs.c +++ b/drivers/net/bonding/bond_procfs.c @@ -287,7 +287,7 @@ void bond_create_proc_entry(struct bonding *bond) if (bn->proc_dir) { bond->proc_entry = proc_create_data(bond_dev->name, - S_IRUGO, bn->proc_dir, + 0444, bn->proc_dir, &bond_info_fops, bond); if (bond->proc_entry == NULL) netdev_warn(bond_dev, "Cannot create /proc/net/%s/%s\n", diff --git a/drivers/net/bonding/bond_sysfs.c b/drivers/net/bonding/bond_sysfs.c index 040b493f60ae..6096440e96ea 100644 --- a/drivers/net/bonding/bond_sysfs.c +++ b/drivers/net/bonding/bond_sysfs.c @@ -147,7 +147,7 @@ static ssize_t bonding_store_bonds(struct class *cls, static const struct class_attribute class_attr_bonding_masters = { .attr = { .name = "bonding_masters", - .mode = S_IWUSR | S_IRUGO, + .mode = 0644, }, .show = bonding_show_bonds, .store = bonding_store_bonds, @@ -202,7 +202,7 @@ static ssize_t bonding_show_slaves(struct device *d, return res; } -static DEVICE_ATTR(slaves, S_IRUGO | S_IWUSR, bonding_show_slaves, +static DEVICE_ATTR(slaves, 0644, bonding_show_slaves, bonding_sysfs_store_option); /* Show the bonding mode. */ @@ -216,8 +216,7 @@ static ssize_t bonding_show_mode(struct device *d, return sprintf(buf, "%s %d\n", val->string, BOND_MODE(bond)); } -static DEVICE_ATTR(mode, S_IRUGO | S_IWUSR, - bonding_show_mode, bonding_sysfs_store_option); +static DEVICE_ATTR(mode, 0644, bonding_show_mode, bonding_sysfs_store_option); /* Show the bonding transmit hash method. */ static ssize_t bonding_show_xmit_hash(struct device *d, @@ -231,7 +230,7 @@ static ssize_t bonding_show_xmit_hash(struct device *d, return sprintf(buf, "%s %d\n", val->string, bond->params.xmit_policy); } -static DEVICE_ATTR(xmit_hash_policy, S_IRUGO | S_IWUSR, +static DEVICE_ATTR(xmit_hash_policy, 0644, bonding_show_xmit_hash, bonding_sysfs_store_option); /* Show arp_validate. */ @@ -247,7 +246,7 @@ static ssize_t bonding_show_arp_validate(struct device *d, return sprintf(buf, "%s %d\n", val->string, bond->params.arp_validate); } -static DEVICE_ATTR(arp_validate, S_IRUGO | S_IWUSR, bonding_show_arp_validate, +static DEVICE_ATTR(arp_validate, 0644, bonding_show_arp_validate, bonding_sysfs_store_option); /* Show arp_all_targets. */ @@ -263,7 +262,7 @@ static ssize_t bonding_show_arp_all_targets(struct device *d, return sprintf(buf, "%s %d\n", val->string, bond->params.arp_all_targets); } -static DEVICE_ATTR(arp_all_targets, S_IRUGO | S_IWUSR, +static DEVICE_ATTR(arp_all_targets, 0644, bonding_show_arp_all_targets, bonding_sysfs_store_option); /* Show fail_over_mac. */ @@ -279,7 +278,7 @@ static ssize_t bonding_show_fail_over_mac(struct device *d, return sprintf(buf, "%s %d\n", val->string, bond->params.fail_over_mac); } -static DEVICE_ATTR(fail_over_mac, S_IRUGO | S_IWUSR, +static DEVICE_ATTR(fail_over_mac, 0644, bonding_show_fail_over_mac, bonding_sysfs_store_option); /* Show the arp timer interval. */ @@ -291,7 +290,7 @@ static ssize_t bonding_show_arp_interval(struct device *d, return sprintf(buf, "%d\n", bond->params.arp_interval); } -static DEVICE_ATTR(arp_interval, S_IRUGO | S_IWUSR, +static DEVICE_ATTR(arp_interval, 0644, bonding_show_arp_interval, bonding_sysfs_store_option); /* Show the arp targets. */ @@ -312,7 +311,7 @@ static ssize_t bonding_show_arp_targets(struct device *d, return res; } -static DEVICE_ATTR(arp_ip_target, S_IRUGO | S_IWUSR, +static DEVICE_ATTR(arp_ip_target, 0644, bonding_show_arp_targets, bonding_sysfs_store_option); /* Show the up and down delays. */ @@ -324,7 +323,7 @@ static ssize_t bonding_show_downdelay(struct device *d, return sprintf(buf, "%d\n", bond->params.downdelay * bond->params.miimon); } -static DEVICE_ATTR(downdelay, S_IRUGO | S_IWUSR, +static DEVICE_ATTR(downdelay, 0644, bonding_show_downdelay, bonding_sysfs_store_option); static ssize_t bonding_show_updelay(struct device *d, @@ -336,7 +335,7 @@ static ssize_t bonding_show_updelay(struct device *d, return sprintf(buf, "%d\n", bond->params.updelay * bond->params.miimon); } -static DEVICE_ATTR(updelay, S_IRUGO | S_IWUSR, +static DEVICE_ATTR(updelay, 0644, bonding_show_updelay, bonding_sysfs_store_option); /* Show the LACP interval. */ @@ -351,7 +350,7 @@ static ssize_t bonding_show_lacp(struct device *d, return sprintf(buf, "%s %d\n", val->string, bond->params.lacp_fast); } -static DEVICE_ATTR(lacp_rate, S_IRUGO | S_IWUSR, +static DEVICE_ATTR(lacp_rate, 0644, bonding_show_lacp, bonding_sysfs_store_option); static ssize_t bonding_show_min_links(struct device *d, @@ -362,7 +361,7 @@ static ssize_t bonding_show_min_links(struct device *d, return sprintf(buf, "%u\n", bond->params.min_links); } -static DEVICE_ATTR(min_links, S_IRUGO | S_IWUSR, +static DEVICE_ATTR(min_links, 0644, bonding_show_min_links, bonding_sysfs_store_option); static ssize_t bonding_show_ad_select(struct device *d, @@ -376,7 +375,7 @@ static ssize_t bonding_show_ad_select(struct device *d, return sprintf(buf, "%s %d\n", val->string, bond->params.ad_select); } -static DEVICE_ATTR(ad_select, S_IRUGO | S_IWUSR, +static DEVICE_ATTR(ad_select, 0644, bonding_show_ad_select, bonding_sysfs_store_option); /* Show the number of peer notifications to send after a failover event. */ @@ -387,9 +386,9 @@ static ssize_t bonding_show_num_peer_notif(struct device *d, struct bonding *bond = to_bond(d); return sprintf(buf, "%d\n", bond->params.num_peer_notif); } -static DEVICE_ATTR(num_grat_arp, S_IRUGO | S_IWUSR, +static DEVICE_ATTR(num_grat_arp, 0644, bonding_show_num_peer_notif, bonding_sysfs_store_option); -static DEVICE_ATTR(num_unsol_na, S_IRUGO | S_IWUSR, +static DEVICE_ATTR(num_unsol_na, 0644, bonding_show_num_peer_notif, bonding_sysfs_store_option); /* Show the MII monitor interval. */ @@ -401,7 +400,7 @@ static ssize_t bonding_show_miimon(struct device *d, return sprintf(buf, "%d\n", bond->params.miimon); } -static DEVICE_ATTR(miimon, S_IRUGO | S_IWUSR, +static DEVICE_ATTR(miimon, 0644, bonding_show_miimon, bonding_sysfs_store_option); /* Show the primary slave. */ @@ -421,7 +420,7 @@ static ssize_t bonding_show_primary(struct device *d, return count; } -static DEVICE_ATTR(primary, S_IRUGO | S_IWUSR, +static DEVICE_ATTR(primary, 0644, bonding_show_primary, bonding_sysfs_store_option); /* Show the primary_reselect flag. */ @@ -438,7 +437,7 @@ static ssize_t bonding_show_primary_reselect(struct device *d, return sprintf(buf, "%s %d\n", val->string, bond->params.primary_reselect); } -static DEVICE_ATTR(primary_reselect, S_IRUGO | S_IWUSR, +static DEVICE_ATTR(primary_reselect, 0644, bonding_show_primary_reselect, bonding_sysfs_store_option); /* Show the use_carrier flag. */ @@ -450,7 +449,7 @@ static ssize_t bonding_show_carrier(struct device *d, return sprintf(buf, "%d\n", bond->params.use_carrier); } -static DEVICE_ATTR(use_carrier, S_IRUGO | S_IWUSR, +static DEVICE_ATTR(use_carrier, 0644, bonding_show_carrier, bonding_sysfs_store_option); @@ -471,7 +470,7 @@ static ssize_t bonding_show_active_slave(struct device *d, return count; } -static DEVICE_ATTR(active_slave, S_IRUGO | S_IWUSR, +static DEVICE_ATTR(active_slave, 0644, bonding_show_active_slave, bonding_sysfs_store_option); /* Show link status of the bond interface. */ @@ -484,7 +483,7 @@ static ssize_t bonding_show_mii_status(struct device *d, return sprintf(buf, "%s\n", active ? "up" : "down"); } -static DEVICE_ATTR(mii_status, S_IRUGO, bonding_show_mii_status, NULL); +static DEVICE_ATTR(mii_status, 0444, bonding_show_mii_status, NULL); /* Show current 802.3ad aggregator ID. */ static ssize_t bonding_show_ad_aggregator(struct device *d, @@ -503,7 +502,7 @@ static ssize_t bonding_show_ad_aggregator(struct device *d, return count; } -static DEVICE_ATTR(ad_aggregator, S_IRUGO, bonding_show_ad_aggregator, NULL); +static DEVICE_ATTR(ad_aggregator, 0444, bonding_show_ad_aggregator, NULL); /* Show number of active 802.3ad ports. */ @@ -523,7 +522,7 @@ static ssize_t bonding_show_ad_num_ports(struct device *d, return count; } -static DEVICE_ATTR(ad_num_ports, S_IRUGO, bonding_show_ad_num_ports, NULL); +static DEVICE_ATTR(ad_num_ports, 0444, bonding_show_ad_num_ports, NULL); /* Show current 802.3ad actor key. */ @@ -543,7 +542,7 @@ static ssize_t bonding_show_ad_actor_key(struct device *d, return count; } -static DEVICE_ATTR(ad_actor_key, S_IRUGO, bonding_show_ad_actor_key, NULL); +static DEVICE_ATTR(ad_actor_key, 0444, bonding_show_ad_actor_key, NULL); /* Show current 802.3ad partner key. */ @@ -563,7 +562,7 @@ static ssize_t bonding_show_ad_partner_key(struct device *d, return count; } -static DEVICE_ATTR(ad_partner_key, S_IRUGO, bonding_show_ad_partner_key, NULL); +static DEVICE_ATTR(ad_partner_key, 0444, bonding_show_ad_partner_key, NULL); /* Show current 802.3ad partner mac. */ @@ -582,7 +581,7 @@ static ssize_t bonding_show_ad_partner_mac(struct device *d, return count; } -static DEVICE_ATTR(ad_partner_mac, S_IRUGO, bonding_show_ad_partner_mac, NULL); +static DEVICE_ATTR(ad_partner_mac, 0444, bonding_show_ad_partner_mac, NULL); /* Show the queue_ids of the slaves in the current bond. */ static ssize_t bonding_show_queue_id(struct device *d, @@ -615,7 +614,7 @@ static ssize_t bonding_show_queue_id(struct device *d, return res; } -static DEVICE_ATTR(queue_id, S_IRUGO | S_IWUSR, bonding_show_queue_id, +static DEVICE_ATTR(queue_id, 0644, bonding_show_queue_id, bonding_sysfs_store_option); @@ -628,7 +627,7 @@ static ssize_t bonding_show_slaves_active(struct device *d, return sprintf(buf, "%d\n", bond->params.all_slaves_active); } -static DEVICE_ATTR(all_slaves_active, S_IRUGO | S_IWUSR, +static DEVICE_ATTR(all_slaves_active, 0644, bonding_show_slaves_active, bonding_sysfs_store_option); /* Show the number of IGMP membership reports to send on link failure */ @@ -640,7 +639,7 @@ static ssize_t bonding_show_resend_igmp(struct device *d, return sprintf(buf, "%d\n", bond->params.resend_igmp); } -static DEVICE_ATTR(resend_igmp, S_IRUGO | S_IWUSR, +static DEVICE_ATTR(resend_igmp, 0644, bonding_show_resend_igmp, bonding_sysfs_store_option); @@ -652,7 +651,7 @@ static ssize_t bonding_show_lp_interval(struct device *d, return sprintf(buf, "%d\n", bond->params.lp_interval); } -static DEVICE_ATTR(lp_interval, S_IRUGO | S_IWUSR, +static DEVICE_ATTR(lp_interval, 0644, bonding_show_lp_interval, bonding_sysfs_store_option); static ssize_t bonding_show_tlb_dynamic_lb(struct device *d, @@ -662,7 +661,7 @@ static ssize_t bonding_show_tlb_dynamic_lb(struct device *d, struct bonding *bond = to_bond(d); return sprintf(buf, "%d\n", bond->params.tlb_dynamic_lb); } -static DEVICE_ATTR(tlb_dynamic_lb, S_IRUGO | S_IWUSR, +static DEVICE_ATTR(tlb_dynamic_lb, 0644, bonding_show_tlb_dynamic_lb, bonding_sysfs_store_option); static ssize_t bonding_show_packets_per_slave(struct device *d, @@ -674,7 +673,7 @@ static ssize_t bonding_show_packets_per_slave(struct device *d, return sprintf(buf, "%u\n", packets_per_slave); } -static DEVICE_ATTR(packets_per_slave, S_IRUGO | S_IWUSR, +static DEVICE_ATTR(packets_per_slave, 0644, bonding_show_packets_per_slave, bonding_sysfs_store_option); static ssize_t bonding_show_ad_actor_sys_prio(struct device *d, @@ -688,7 +687,7 @@ static ssize_t bonding_show_ad_actor_sys_prio(struct device *d, return 0; } -static DEVICE_ATTR(ad_actor_sys_prio, S_IRUGO | S_IWUSR, +static DEVICE_ATTR(ad_actor_sys_prio, 0644, bonding_show_ad_actor_sys_prio, bonding_sysfs_store_option); static ssize_t bonding_show_ad_actor_system(struct device *d, @@ -703,7 +702,7 @@ static ssize_t bonding_show_ad_actor_system(struct device *d, return 0; } -static DEVICE_ATTR(ad_actor_system, S_IRUGO | S_IWUSR, +static DEVICE_ATTR(ad_actor_system, 0644, bonding_show_ad_actor_system, bonding_sysfs_store_option); static ssize_t bonding_show_ad_user_port_key(struct device *d, @@ -717,7 +716,7 @@ static ssize_t bonding_show_ad_user_port_key(struct device *d, return 0; } -static DEVICE_ATTR(ad_user_port_key, S_IRUGO | S_IWUSR, +static DEVICE_ATTR(ad_user_port_key, 0644, bonding_show_ad_user_port_key, bonding_sysfs_store_option); static struct attribute *per_bond_attrs[] = { diff --git a/drivers/net/bonding/bond_sysfs_slave.c b/drivers/net/bonding/bond_sysfs_slave.c index 7d16c51e6913..2f120b2ffef0 100644 --- a/drivers/net/bonding/bond_sysfs_slave.c +++ b/drivers/net/bonding/bond_sysfs_slave.c @@ -25,8 +25,8 @@ const struct slave_attribute slave_attr_##_name = { \ .mode = _mode }, \ .show = _show, \ }; -#define SLAVE_ATTR_RO(_name) \ - SLAVE_ATTR(_name, S_IRUGO, _name##_show) +#define SLAVE_ATTR_RO(_name) \ + SLAVE_ATTR(_name, 0444, _name##_show) static ssize_t state_show(struct slave *slave, char *buf) { diff --git a/drivers/net/caif/caif_serial.c b/drivers/net/caif/caif_serial.c index 709838e4c062..a0f954f36c09 100644 --- a/drivers/net/caif/caif_serial.c +++ b/drivers/net/caif/caif_serial.c @@ -40,20 +40,20 @@ static LIST_HEAD(ser_list); static LIST_HEAD(ser_release_list); static bool ser_loop; -module_param(ser_loop, bool, S_IRUGO); +module_param(ser_loop, bool, 0444); MODULE_PARM_DESC(ser_loop, "Run in simulated loopback mode."); static bool ser_use_stx = true; -module_param(ser_use_stx, bool, S_IRUGO); +module_param(ser_use_stx, bool, 0444); MODULE_PARM_DESC(ser_use_stx, "STX enabled or not."); static bool ser_use_fcs = true; -module_param(ser_use_fcs, bool, S_IRUGO); +module_param(ser_use_fcs, bool, 0444); MODULE_PARM_DESC(ser_use_fcs, "FCS enabled or not."); static int ser_write_chunk = MAX_WRITE_CHUNK; -module_param(ser_write_chunk, int, S_IRUGO); +module_param(ser_write_chunk, int, 0444); MODULE_PARM_DESC(ser_write_chunk, "Maximum size of data written to UART."); @@ -97,21 +97,21 @@ static inline void debugfs_init(struct ser_device *ser, struct tty_struct *tty) ser->debugfs_tty_dir = debugfs_create_dir(tty->name, debugfsdir); if (!IS_ERR(ser->debugfs_tty_dir)) { - debugfs_create_blob("last_tx_msg", S_IRUSR, - ser->debugfs_tty_dir, - &ser->tx_blob); + debugfs_create_blob("last_tx_msg", 0400, + ser->debugfs_tty_dir, + &ser->tx_blob); - debugfs_create_blob("last_rx_msg", S_IRUSR, - ser->debugfs_tty_dir, - &ser->rx_blob); + debugfs_create_blob("last_rx_msg", 0400, + ser->debugfs_tty_dir, + &ser->rx_blob); - debugfs_create_x32("ser_state", S_IRUSR, - ser->debugfs_tty_dir, - (u32 *)&ser->state); + debugfs_create_x32("ser_state", 0400, + ser->debugfs_tty_dir, + (u32 *)&ser->state); - debugfs_create_x8("tty_status", S_IRUSR, - ser->debugfs_tty_dir, - &ser->tty_status); + debugfs_create_x8("tty_status", 0400, + ser->debugfs_tty_dir, + &ser->tty_status); } ser->tx_blob.data = ser->tx_data; diff --git a/drivers/net/caif/caif_spi.c b/drivers/net/caif/caif_spi.c index 980eace53d44..d28a1398c091 100644 --- a/drivers/net/caif/caif_spi.c +++ b/drivers/net/caif/caif_spi.c @@ -35,27 +35,27 @@ MODULE_DESCRIPTION("CAIF SPI driver"); #define PAD_POW2(x, pow) ((((x)&((pow)-1))==0) ? 0 : (((pow)-((x)&((pow)-1))))) static bool spi_loop; -module_param(spi_loop, bool, S_IRUGO); +module_param(spi_loop, bool, 0444); MODULE_PARM_DESC(spi_loop, "SPI running in loopback mode."); /* SPI frame alignment. */ -module_param(spi_frm_align, int, S_IRUGO); +module_param(spi_frm_align, int, 0444); MODULE_PARM_DESC(spi_frm_align, "SPI frame alignment."); /* * SPI padding options. * Warning: must be a base of 2 (& operation used) and can not be zero ! */ -module_param(spi_up_head_align, int, S_IRUGO); +module_param(spi_up_head_align, int, 0444); MODULE_PARM_DESC(spi_up_head_align, "SPI uplink head alignment."); -module_param(spi_up_tail_align, int, S_IRUGO); +module_param(spi_up_tail_align, int, 0444); MODULE_PARM_DESC(spi_up_tail_align, "SPI uplink tail alignment."); -module_param(spi_down_head_align, int, S_IRUGO); +module_param(spi_down_head_align, int, 0444); MODULE_PARM_DESC(spi_down_head_align, "SPI downlink head alignment."); -module_param(spi_down_tail_align, int, S_IRUGO); +module_param(spi_down_tail_align, int, 0444); MODULE_PARM_DESC(spi_down_tail_align, "SPI downlink tail alignment."); #ifdef CONFIG_ARM @@ -250,10 +250,10 @@ static const struct file_operations dbgfs_frame_fops = { static inline void dev_debugfs_add(struct cfspi *cfspi) { cfspi->dbgfs_dir = debugfs_create_dir(cfspi->pdev->name, dbgfs_root); - cfspi->dbgfs_state = debugfs_create_file("state", S_IRUGO, + cfspi->dbgfs_state = debugfs_create_file("state", 0444, cfspi->dbgfs_dir, cfspi, &dbgfs_state_fops); - cfspi->dbgfs_frame = debugfs_create_file("frame", S_IRUGO, + cfspi->dbgfs_frame = debugfs_create_file("frame", 0444, cfspi->dbgfs_dir, cfspi, &dbgfs_frame_fops); } diff --git a/drivers/net/caif/caif_virtio.c b/drivers/net/caif/caif_virtio.c index c3d104feee13..2814e0dee4bb 100644 --- a/drivers/net/caif/caif_virtio.c +++ b/drivers/net/caif/caif_virtio.c @@ -629,21 +629,21 @@ static inline void debugfs_init(struct cfv_info *cfv) if (IS_ERR(cfv->debugfs)) return; - debugfs_create_u32("rx-napi-complete", S_IRUSR, cfv->debugfs, + debugfs_create_u32("rx-napi-complete", 0400, cfv->debugfs, &cfv->stats.rx_napi_complete); - debugfs_create_u32("rx-napi-resched", S_IRUSR, cfv->debugfs, + debugfs_create_u32("rx-napi-resched", 0400, cfv->debugfs, &cfv->stats.rx_napi_resched); - debugfs_create_u32("rx-nomem", S_IRUSR, cfv->debugfs, + debugfs_create_u32("rx-nomem", 0400, cfv->debugfs, &cfv->stats.rx_nomem); - debugfs_create_u32("rx-kicks", S_IRUSR, cfv->debugfs, + debugfs_create_u32("rx-kicks", 0400, cfv->debugfs, &cfv->stats.rx_kicks); - debugfs_create_u32("tx-full-ring", S_IRUSR, cfv->debugfs, + debugfs_create_u32("tx-full-ring", 0400, cfv->debugfs, &cfv->stats.tx_full_ring); - debugfs_create_u32("tx-no-mem", S_IRUSR, cfv->debugfs, + debugfs_create_u32("tx-no-mem", 0400, cfv->debugfs, &cfv->stats.tx_no_mem); - debugfs_create_u32("tx-kicks", S_IRUSR, cfv->debugfs, + debugfs_create_u32("tx-kicks", 0400, cfv->debugfs, &cfv->stats.tx_kicks); - debugfs_create_u32("tx-flow-on", S_IRUSR, cfv->debugfs, + debugfs_create_u32("tx-flow-on", 0400, cfv->debugfs, &cfv->stats.tx_flow_on); } diff --git a/drivers/net/can/at91_can.c b/drivers/net/can/at91_can.c index f37ce0e1b603..d98c69045b17 100644 --- a/drivers/net/can/at91_can.c +++ b/drivers/net/can/at91_can.c @@ -1224,8 +1224,7 @@ static ssize_t at91_sysfs_set_mb0_id(struct device *dev, return ret; } -static DEVICE_ATTR(mb0_id, S_IWUSR | S_IRUGO, - at91_sysfs_show_mb0_id, at91_sysfs_set_mb0_id); +static DEVICE_ATTR(mb0_id, 0644, at91_sysfs_show_mb0_id, at91_sysfs_set_mb0_id); static struct attribute *at91_sysfs_attrs[] = { &dev_attr_mb0_id.attr, diff --git a/drivers/net/can/cc770/cc770.c b/drivers/net/can/cc770/cc770.c index 6da69af103e6..d4dd4da23997 100644 --- a/drivers/net/can/cc770/cc770.c +++ b/drivers/net/can/cc770/cc770.c @@ -67,12 +67,12 @@ MODULE_DESCRIPTION(KBUILD_MODNAME "CAN netdevice driver"); * otherwise 11 bit SFF messages. */ static int msgobj15_eff; -module_param(msgobj15_eff, int, S_IRUGO); +module_param(msgobj15_eff, int, 0444); MODULE_PARM_DESC(msgobj15_eff, "Extended 29-bit frames for message object 15 " "(default: 11-bit standard frames)"); static int i82527_compat; -module_param(i82527_compat, int, S_IRUGO); +module_param(i82527_compat, int, 0444); MODULE_PARM_DESC(i82527_compat, "Strict Intel 82527 comptibility mode " "without using additional functions"); diff --git a/drivers/net/can/cc770/cc770_isa.c b/drivers/net/can/cc770/cc770_isa.c index 3a30fd3b4498..fcd34698074f 100644 --- a/drivers/net/can/cc770/cc770_isa.c +++ b/drivers/net/can/cc770/cc770_isa.c @@ -82,29 +82,29 @@ static u8 cor[MAXDEV] = {[0 ... (MAXDEV - 1)] = 0xff}; static u8 bcr[MAXDEV] = {[0 ... (MAXDEV - 1)] = 0xff}; static int indirect[MAXDEV] = {[0 ... (MAXDEV - 1)] = -1}; -module_param_hw_array(port, ulong, ioport, NULL, S_IRUGO); +module_param_hw_array(port, ulong, ioport, NULL, 0444); MODULE_PARM_DESC(port, "I/O port number"); -module_param_hw_array(mem, ulong, iomem, NULL, S_IRUGO); +module_param_hw_array(mem, ulong, iomem, NULL, 0444); MODULE_PARM_DESC(mem, "I/O memory address"); -module_param_hw_array(indirect, int, ioport, NULL, S_IRUGO); +module_param_hw_array(indirect, int, ioport, NULL, 0444); MODULE_PARM_DESC(indirect, "Indirect access via address and data port"); -module_param_hw_array(irq, int, irq, NULL, S_IRUGO); +module_param_hw_array(irq, int, irq, NULL, 0444); MODULE_PARM_DESC(irq, "IRQ number"); -module_param_array(clk, int, NULL, S_IRUGO); +module_param_array(clk, int, NULL, 0444); MODULE_PARM_DESC(clk, "External oscillator clock frequency " "(default=16000000 [16 MHz])"); -module_param_array(cir, byte, NULL, S_IRUGO); +module_param_array(cir, byte, NULL, 0444); MODULE_PARM_DESC(cir, "CPU interface register (default=0x40 [DSC])"); -module_param_array(cor, byte, NULL, S_IRUGO); +module_param_array(cor, byte, NULL, 0444); MODULE_PARM_DESC(cor, "Clockout register (default=0x00)"); -module_param_array(bcr, byte, NULL, S_IRUGO); +module_param_array(bcr, byte, NULL, 0444); MODULE_PARM_DESC(bcr, "Bus configuration register (default=0x40 [CBY])"); #define CC770_IOSIZE 0x20 diff --git a/drivers/net/can/grcan.c b/drivers/net/can/grcan.c index 897c6b113d3f..2d3046afa80d 100644 --- a/drivers/net/can/grcan.c +++ b/drivers/net/can/grcan.c @@ -1484,7 +1484,7 @@ static netdev_tx_t grcan_start_xmit(struct sk_buff *skb, } \ } \ module_param_named(name, grcan_module_config.name, \ - mtype, S_IRUGO); \ + mtype, 0444); \ MODULE_PARM_DESC(name, desc) #define GRCAN_CONFIG_ATTR(name, desc) \ @@ -1513,7 +1513,7 @@ static netdev_tx_t grcan_start_xmit(struct sk_buff *skb, struct grcan_priv *priv = netdev_priv(dev); \ return sprintf(buf, "%d\n", priv->config.name); \ } \ - static DEVICE_ATTR(name, S_IRUGO | S_IWUSR, \ + static DEVICE_ATTR(name, 0644, \ grcan_show_##name, \ grcan_store_##name); \ GRCAN_MODULE_PARAM(name, ushort, GRCAN_NOT_BOOL, desc) diff --git a/drivers/net/can/janz-ican3.c b/drivers/net/can/janz-ican3.c index 12a53c8e8e1d..adfdb66a486e 100644 --- a/drivers/net/can/janz-ican3.c +++ b/drivers/net/can/janz-ican3.c @@ -1865,9 +1865,9 @@ static ssize_t ican3_sysfs_show_fwinfo(struct device *dev, return scnprintf(buf, PAGE_SIZE, "%s\n", mod->fwinfo); } -static DEVICE_ATTR(termination, S_IWUSR | S_IRUGO, ican3_sysfs_show_term, - ican3_sysfs_set_term); -static DEVICE_ATTR(fwinfo, S_IRUSR | S_IRUGO, ican3_sysfs_show_fwinfo, NULL); +static DEVICE_ATTR(termination, 0644, ican3_sysfs_show_term, + ican3_sysfs_set_term); +static DEVICE_ATTR(fwinfo, 0444, ican3_sysfs_show_fwinfo, NULL); static struct attribute *ican3_sysfs_attrs[] = { &dev_attr_termination.attr, diff --git a/drivers/net/can/sja1000/sja1000_isa.c b/drivers/net/can/sja1000/sja1000_isa.c index a89c1e92554d..1a2ae6ce8d87 100644 --- a/drivers/net/can/sja1000/sja1000_isa.c +++ b/drivers/net/can/sja1000/sja1000_isa.c @@ -48,27 +48,27 @@ static unsigned char ocr[MAXDEV] = {[0 ... (MAXDEV - 1)] = 0xff}; static int indirect[MAXDEV] = {[0 ... (MAXDEV - 1)] = -1}; static spinlock_t indirect_lock[MAXDEV]; /* lock for indirect access mode */ -module_param_hw_array(port, ulong, ioport, NULL, S_IRUGO); +module_param_hw_array(port, ulong, ioport, NULL, 0444); MODULE_PARM_DESC(port, "I/O port number"); -module_param_hw_array(mem, ulong, iomem, NULL, S_IRUGO); +module_param_hw_array(mem, ulong, iomem, NULL, 0444); MODULE_PARM_DESC(mem, "I/O memory address"); -module_param_hw_array(indirect, int, ioport, NULL, S_IRUGO); +module_param_hw_array(indirect, int, ioport, NULL, 0444); MODULE_PARM_DESC(indirect, "Indirect access via address and data port"); -module_param_hw_array(irq, int, irq, NULL, S_IRUGO); +module_param_hw_array(irq, int, irq, NULL, 0444); MODULE_PARM_DESC(irq, "IRQ number"); -module_param_array(clk, int, NULL, S_IRUGO); +module_param_array(clk, int, NULL, 0444); MODULE_PARM_DESC(clk, "External oscillator clock frequency " "(default=16000000 [16 MHz])"); -module_param_array(cdr, byte, NULL, S_IRUGO); +module_param_array(cdr, byte, NULL, 0444); MODULE_PARM_DESC(cdr, "Clock divider register " "(default=0x48 [CDR_CBP | CDR_CLK_OFF])"); -module_param_array(ocr, byte, NULL, S_IRUGO); +module_param_array(ocr, byte, NULL, 0444); MODULE_PARM_DESC(ocr, "Output control register " "(default=0x18 [OCR_TX0_PUSHPULL])"); diff --git a/drivers/net/can/softing/softing_main.c b/drivers/net/can/softing/softing_main.c index 5f64deec9f6c..e22696190583 100644 --- a/drivers/net/can/softing/softing_main.c +++ b/drivers/net/can/softing/softing_main.c @@ -601,8 +601,8 @@ static ssize_t store_output(struct device *dev, struct device_attribute *attr, return count; } -static const DEVICE_ATTR(chip, S_IRUGO, show_chip, NULL); -static const DEVICE_ATTR(output, S_IRUGO | S_IWUSR, show_output, store_output); +static const DEVICE_ATTR(chip, 0444, show_chip, NULL); +static const DEVICE_ATTR(output, 0644, show_output, store_output); static const struct attribute *const netdev_sysfs_attrs[] = { &dev_attr_chip.attr, diff --git a/drivers/net/can/spi/mcp251x.c b/drivers/net/can/spi/mcp251x.c index 98d118b3aaf4..e90817608645 100644 --- a/drivers/net/can/spi/mcp251x.c +++ b/drivers/net/can/spi/mcp251x.c @@ -220,7 +220,7 @@ #define DEVICE_NAME "mcp251x" static int mcp251x_enable_dma; /* Enable SPI DMA. Default: 0 (Off) */ -module_param(mcp251x_enable_dma, int, S_IRUGO); +module_param(mcp251x_enable_dma, int, 0444); MODULE_PARM_DESC(mcp251x_enable_dma, "Enable SPI DMA. Default: 0 (Off)"); static const struct can_bittiming_const mcp251x_bittiming_const = { diff --git a/drivers/net/can/usb/esd_usb2.c b/drivers/net/can/usb/esd_usb2.c index c6dcf93675c0..5820fd5b69b5 100644 --- a/drivers/net/can/usb/esd_usb2.c +++ b/drivers/net/can/usb/esd_usb2.c @@ -496,7 +496,7 @@ static ssize_t show_firmware(struct device *d, (dev->version >> 8) & 0xf, dev->version & 0xff); } -static DEVICE_ATTR(firmware, S_IRUGO, show_firmware, NULL); +static DEVICE_ATTR(firmware, 0444, show_firmware, NULL); static ssize_t show_hardware(struct device *d, struct device_attribute *attr, char *buf) @@ -509,7 +509,7 @@ static ssize_t show_hardware(struct device *d, (dev->version >> 24) & 0xf, (dev->version >> 16) & 0xff); } -static DEVICE_ATTR(hardware, S_IRUGO, show_hardware, NULL); +static DEVICE_ATTR(hardware, 0444, show_hardware, NULL); static ssize_t show_nets(struct device *d, struct device_attribute *attr, char *buf) @@ -519,7 +519,7 @@ static ssize_t show_nets(struct device *d, return sprintf(buf, "%d", dev->net_count); } -static DEVICE_ATTR(nets, S_IRUGO, show_nets, NULL); +static DEVICE_ATTR(nets, 0444, show_nets, NULL); static int esd_usb2_send_msg(struct esd_usb2 *dev, struct esd_usb2_msg *msg) { diff --git a/drivers/net/can/vcan.c b/drivers/net/can/vcan.c index c2b04f505e16..d200a5b0651c 100644 --- a/drivers/net/can/vcan.c +++ b/drivers/net/can/vcan.c @@ -65,7 +65,7 @@ MODULE_ALIAS_RTNL_LINK(DRV_NAME); */ static bool echo; /* echo testing. Default: 0 (Off) */ -module_param(echo, bool, S_IRUGO); +module_param(echo, bool, 0444); MODULE_PARM_DESC(echo, "Echo sent frames (for testing). Default: 0 (Off)"); diff --git a/drivers/net/hamradio/bpqether.c b/drivers/net/hamradio/bpqether.c index 78a6414c5fd9..dfabbae72efd 100644 --- a/drivers/net/hamradio/bpqether.c +++ b/drivers/net/hamradio/bpqether.c @@ -590,8 +590,7 @@ static int bpq_device_event(struct notifier_block *this, static int __init bpq_init_driver(void) { #ifdef CONFIG_PROC_FS - if (!proc_create("bpqether", S_IRUGO, init_net.proc_net, - &bpq_info_fops)) { + if (!proc_create("bpqether", 0444, init_net.proc_net, &bpq_info_fops)) { printk(KERN_ERR "bpq: cannot create /proc/net/bpqether entry.\n"); return -ENOENT; diff --git a/drivers/net/hamradio/yam.c b/drivers/net/hamradio/yam.c index 14c3632b8cde..83034eb7ed4f 100644 --- a/drivers/net/hamradio/yam.c +++ b/drivers/net/hamradio/yam.c @@ -1168,7 +1168,7 @@ static int __init yam_init_driver(void) yam_timer.expires = jiffies + HZ / 100; add_timer(&yam_timer); - proc_create("yam", S_IRUGO, init_net.proc_net, &yam_info_fops); + proc_create("yam", 0444, init_net.proc_net, &yam_info_fops); return 0; error: while (--i >= 0) { diff --git a/drivers/net/hyperv/netvsc_drv.c b/drivers/net/hyperv/netvsc_drv.c index f28c85d212ce..9f43a20ee7de 100644 --- a/drivers/net/hyperv/netvsc_drv.c +++ b/drivers/net/hyperv/netvsc_drv.c @@ -55,7 +55,7 @@ #define VF_TAKEOVER_INT (HZ / 10) static unsigned int ring_size __ro_after_init = 128; -module_param(ring_size, uint, S_IRUGO); +module_param(ring_size, uint, 0444); MODULE_PARM_DESC(ring_size, "Ring buffer size (# of pages)"); unsigned int netvsc_ring_bytes __ro_after_init; struct reciprocal_value netvsc_ring_reciprocal __ro_after_init; @@ -66,7 +66,7 @@ static const u32 default_msg = NETIF_MSG_DRV | NETIF_MSG_PROBE | NETIF_MSG_TX_ERR; static int debug = -1; -module_param(debug, int, S_IRUGO); +module_param(debug, int, 0444); MODULE_PARM_DESC(debug, "Debug level (0=none,...,16=all)"); static void netvsc_change_rx_flags(struct net_device *net, int change) diff --git a/drivers/net/ieee802154/at86rf230.c b/drivers/net/ieee802154/at86rf230.c index 548d9d026a85..77abedf0b524 100644 --- a/drivers/net/ieee802154/at86rf230.c +++ b/drivers/net/ieee802154/at86rf230.c @@ -1661,7 +1661,7 @@ static int at86rf230_debugfs_init(struct at86rf230_local *lp) if (!at86rf230_debugfs_root) return -ENOMEM; - stats = debugfs_create_file("trac_stats", S_IRUGO, + stats = debugfs_create_file("trac_stats", 0444, at86rf230_debugfs_root, lp, &at86rf230_stats_fops); if (!stats) diff --git a/drivers/net/phy/spi_ks8995.c b/drivers/net/phy/spi_ks8995.c index 1e2d4f1179da..f17b3441779b 100644 --- a/drivers/net/phy/spi_ks8995.c +++ b/drivers/net/phy/spi_ks8995.c @@ -417,7 +417,7 @@ static void ks8995_parse_dt(struct ks8995_switch *ks) static const struct bin_attribute ks8995_registers_attr = { .attr = { .name = "registers", - .mode = S_IRUSR | S_IWUSR, + .mode = 0600, }, .size = KS8995_REGS_SIZE, .read = ks8995_registers_read, diff --git a/drivers/net/ppp/ppp_generic.c b/drivers/net/ppp/ppp_generic.c index 926c2c322d43..22fcff3c7a9a 100644 --- a/drivers/net/ppp/ppp_generic.c +++ b/drivers/net/ppp/ppp_generic.c @@ -1687,7 +1687,7 @@ ppp_push(struct ppp *ppp) #ifdef CONFIG_PPP_MULTILINK static bool mp_protocol_compress __read_mostly = true; -module_param(mp_protocol_compress, bool, S_IRUGO | S_IWUSR); +module_param(mp_protocol_compress, bool, 0644); MODULE_PARM_DESC(mp_protocol_compress, "compress protocol id in multilink fragments"); diff --git a/drivers/net/ppp/pppoe.c b/drivers/net/ppp/pppoe.c index c10e6181a2f0..f9552a400271 100644 --- a/drivers/net/ppp/pppoe.c +++ b/drivers/net/ppp/pppoe.c @@ -1142,7 +1142,7 @@ static __net_init int pppoe_init_net(struct net *net) rwlock_init(&pn->hash_lock); - pde = proc_create("pppoe", S_IRUGO, net->proc_net, &pppoe_seq_fops); + pde = proc_create("pppoe", 0444, net->proc_net, &pppoe_seq_fops); #ifdef CONFIG_PROC_FS if (!pde) return -ENOMEM; diff --git a/drivers/net/usb/cdc_ncm.c b/drivers/net/usb/cdc_ncm.c index 9e1b74590682..90d07ed224d5 100644 --- a/drivers/net/usb/cdc_ncm.c +++ b/drivers/net/usb/cdc_ncm.c @@ -58,7 +58,7 @@ static bool prefer_mbim = true; #else static bool prefer_mbim; #endif -module_param(prefer_mbim, bool, S_IRUGO | S_IWUSR); +module_param(prefer_mbim, bool, 0644); MODULE_PARM_DESC(prefer_mbim, "Prefer MBIM setting on dual NCM/MBIM functions"); static void cdc_ncm_txpath_bh(unsigned long param); @@ -281,10 +281,10 @@ static ssize_t cdc_ncm_store_tx_timer_usecs(struct device *d, struct device_att return len; } -static DEVICE_ATTR(min_tx_pkt, S_IRUGO | S_IWUSR, cdc_ncm_show_min_tx_pkt, cdc_ncm_store_min_tx_pkt); -static DEVICE_ATTR(rx_max, S_IRUGO | S_IWUSR, cdc_ncm_show_rx_max, cdc_ncm_store_rx_max); -static DEVICE_ATTR(tx_max, S_IRUGO | S_IWUSR, cdc_ncm_show_tx_max, cdc_ncm_store_tx_max); -static DEVICE_ATTR(tx_timer_usecs, S_IRUGO | S_IWUSR, cdc_ncm_show_tx_timer_usecs, cdc_ncm_store_tx_timer_usecs); +static DEVICE_ATTR(min_tx_pkt, 0644, cdc_ncm_show_min_tx_pkt, cdc_ncm_store_min_tx_pkt); +static DEVICE_ATTR(rx_max, 0644, cdc_ncm_show_rx_max, cdc_ncm_store_rx_max); +static DEVICE_ATTR(tx_max, 0644, cdc_ncm_show_tx_max, cdc_ncm_store_tx_max); +static DEVICE_ATTR(tx_timer_usecs, 0644, cdc_ncm_show_tx_timer_usecs, cdc_ncm_store_tx_timer_usecs); static ssize_t ndp_to_end_show(struct device *d, struct device_attribute *attr, char *buf) { @@ -335,7 +335,7 @@ static ssize_t cdc_ncm_show_##name(struct device *d, struct device_attribute *at struct cdc_ncm_ctx *ctx = (struct cdc_ncm_ctx *)dev->data[0]; \ return sprintf(buf, format "\n", tocpu(ctx->ncm_parm.name)); \ } \ -static DEVICE_ATTR(name, S_IRUGO, cdc_ncm_show_##name, NULL) +static DEVICE_ATTR(name, 0444, cdc_ncm_show_##name, NULL) NCM_PARM_ATTR(bmNtbFormatsSupported, "0x%04x", le16_to_cpu); NCM_PARM_ATTR(dwNtbInMaxSize, "%u", le32_to_cpu); diff --git a/drivers/net/usb/hso.c b/drivers/net/usb/hso.c index 981c931a7a1f..e53883ad6107 100644 --- a/drivers/net/usb/hso.c +++ b/drivers/net/usb/hso.c @@ -519,7 +519,7 @@ static ssize_t hso_sysfs_show_porttype(struct device *dev, return sprintf(buf, "%s\n", port_name); } -static DEVICE_ATTR(hsotype, S_IRUGO, hso_sysfs_show_porttype, NULL); +static DEVICE_ATTR(hsotype, 0444, hso_sysfs_show_porttype, NULL); static struct attribute *hso_serial_dev_attrs[] = { &dev_attr_hsotype.attr, @@ -3289,12 +3289,12 @@ MODULE_LICENSE("GPL"); /* change the debug level (eg: insmod hso.ko debug=0x04) */ MODULE_PARM_DESC(debug, "debug level mask [0x01 | 0x02 | 0x04 | 0x08 | 0x10]"); -module_param(debug, int, S_IRUGO | S_IWUSR); +module_param(debug, int, 0644); /* set the major tty number (eg: insmod hso.ko tty_major=245) */ MODULE_PARM_DESC(tty_major, "Set the major tty number"); -module_param(tty_major, int, S_IRUGO | S_IWUSR); +module_param(tty_major, int, 0644); /* disable network interface (eg: insmod hso.ko disable_net=1) */ MODULE_PARM_DESC(disable_net, "Disable the network interface"); -module_param(disable_net, int, S_IRUGO | S_IWUSR); +module_param(disable_net, int, 0644); diff --git a/drivers/net/xen-netback/xenbus.c b/drivers/net/xen-netback/xenbus.c index a56d3eab35dd..e1aef253601e 100644 --- a/drivers/net/xen-netback/xenbus.c +++ b/drivers/net/xen-netback/xenbus.c @@ -224,7 +224,7 @@ static void xenvif_debugfs_addif(struct xenvif *vif) snprintf(filename, sizeof(filename), "io_ring_q%d", i); pfile = debugfs_create_file(filename, - S_IRUSR | S_IWUSR, + 0600, vif->xenvif_dbg_root, &vif->queues[i], &xenvif_dbg_io_ring_ops_fops); @@ -235,7 +235,7 @@ static void xenvif_debugfs_addif(struct xenvif *vif) if (vif->ctrl_irq) { pfile = debugfs_create_file("ctrl", - S_IRUSR, + 0400, vif->xenvif_dbg_root, vif, &xenvif_dbg_ctrl_ops_fops); diff --git a/drivers/net/xen-netfront.c b/drivers/net/xen-netfront.c index 3127bc8633ca..4dd0668003e7 100644 --- a/drivers/net/xen-netfront.c +++ b/drivers/net/xen-netfront.c @@ -2113,9 +2113,9 @@ static ssize_t store_rxbuf(struct device *dev, return len; } -static DEVICE_ATTR(rxbuf_min, S_IRUGO|S_IWUSR, show_rxbuf, store_rxbuf); -static DEVICE_ATTR(rxbuf_max, S_IRUGO|S_IWUSR, show_rxbuf, store_rxbuf); -static DEVICE_ATTR(rxbuf_cur, S_IRUGO, show_rxbuf, NULL); +static DEVICE_ATTR(rxbuf_min, 0644, show_rxbuf, store_rxbuf); +static DEVICE_ATTR(rxbuf_max, 0644, show_rxbuf, store_rxbuf); +static DEVICE_ATTR(rxbuf_cur, 0444, show_rxbuf, NULL); static struct attribute *xennet_dev_attrs[] = { &dev_attr_rxbuf_min.attr, -- 2.15.0 From mboxrd@z Thu Jan 1 00:00:00 1970 From: Joe Perches Subject: [PATCH 4/4] drivers/net: Use octal not symbolic permissions Date: Fri, 23 Mar 2018 15:54:39 -0700 Message-ID: <8f24a711e6b8ec7b41356c378140fb54d510205c.1521845248.git.joe@perches.com> References: Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org, linux-can@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-hams@vger.kernel.org, devel@linuxdriverproject.org, linux-wpan@vger.kernel.org, linux-ppp@vger.kernel.org, linux-usb@vger.kernel.org, xen-devel@lists.xenproject.org To: Jay Vosburgh , Veaceslav Falico , Andy Gospodarek , Dmitry Tarnyagin , Wolfgang Grandegger , Marc Kleine-Budde , Nicolas Ferre , Alexandre Belloni , Jean-Paul Roubelat , "K. Y. Srinivasan" , Haiyang Zhang , Stephen Hemminger , Alexander Aring , Stefan Schmidt , Andrew Lunn , Florian Fainelli , Paul Mackerras , Michal Ostrowski , Oliver Neukum In-Reply-To: Sender: linux-kernel-owner@vger.kernel.org List-Id: netdev.vger.kernel.org Prefer the direct use of octal for permissions. Done with checkpatch -f --types=SYMBOLIC_PERMS --fix-inplace and some typing. Miscellanea: o Whitespace neatening around these conversions. Signed-off-by: Joe Perches --- drivers/net/bonding/bond_procfs.c | 2 +- drivers/net/bonding/bond_sysfs.c | 73 +++++++++++++++++----------------- drivers/net/bonding/bond_sysfs_slave.c | 4 +- drivers/net/caif/caif_serial.c | 32 +++++++-------- drivers/net/caif/caif_spi.c | 16 ++++---- drivers/net/caif/caif_virtio.c | 16 ++++---- drivers/net/can/at91_can.c | 3 +- drivers/net/can/cc770/cc770.c | 4 +- drivers/net/can/cc770/cc770_isa.c | 16 ++++---- drivers/net/can/grcan.c | 4 +- drivers/net/can/janz-ican3.c | 6 +-- drivers/net/can/sja1000/sja1000_isa.c | 14 +++---- drivers/net/can/softing/softing_main.c | 4 +- drivers/net/can/spi/mcp251x.c | 2 +- drivers/net/can/usb/esd_usb2.c | 6 +-- drivers/net/can/vcan.c | 2 +- drivers/net/hamradio/bpqether.c | 3 +- drivers/net/hamradio/yam.c | 2 +- drivers/net/hyperv/netvsc_drv.c | 4 +- drivers/net/ieee802154/at86rf230.c | 2 +- drivers/net/phy/spi_ks8995.c | 2 +- drivers/net/ppp/ppp_generic.c | 2 +- drivers/net/ppp/pppoe.c | 2 +- drivers/net/usb/cdc_ncm.c | 12 +++--- drivers/net/usb/hso.c | 8 ++-- drivers/net/xen-netback/xenbus.c | 4 +- drivers/net/xen-netfront.c | 6 +-- 27 files changed, 124 insertions(+), 127 deletions(-) diff --git a/drivers/net/bonding/bond_procfs.c b/drivers/net/bonding/bond_procfs.c index f7799321dffb..01059f1a7bca 100644 --- a/drivers/net/bonding/bond_procfs.c +++ b/drivers/net/bonding/bond_procfs.c @@ -287,7 +287,7 @@ void bond_create_proc_entry(struct bonding *bond) if (bn->proc_dir) { bond->proc_entry = proc_create_data(bond_dev->name, - S_IRUGO, bn->proc_dir, + 0444, bn->proc_dir, &bond_info_fops, bond); if (bond->proc_entry == NULL) netdev_warn(bond_dev, "Cannot create /proc/net/%s/%s\n", diff --git a/drivers/net/bonding/bond_sysfs.c b/drivers/net/bonding/bond_sysfs.c index 040b493f60ae..6096440e96ea 100644 --- a/drivers/net/bonding/bond_sysfs.c +++ b/drivers/net/bonding/bond_sysfs.c @@ -147,7 +147,7 @@ static ssize_t bonding_store_bonds(struct class *cls, static const struct class_attribute class_attr_bonding_masters = { .attr = { .name = "bonding_masters", - .mode = S_IWUSR | S_IRUGO, + .mode = 0644, }, .show = bonding_show_bonds, .store = bonding_store_bonds, @@ -202,7 +202,7 @@ static ssize_t bonding_show_slaves(struct device *d, return res; } -static DEVICE_ATTR(slaves, S_IRUGO | S_IWUSR, bonding_show_slaves, +static DEVICE_ATTR(slaves, 0644, bonding_show_slaves, bonding_sysfs_store_option); /* Show the bonding mode. */ @@ -216,8 +216,7 @@ static ssize_t bonding_show_mode(struct device *d, return sprintf(buf, "%s %d\n", val->string, BOND_MODE(bond)); } -static DEVICE_ATTR(mode, S_IRUGO | S_IWUSR, - bonding_show_mode, bonding_sysfs_store_option); +static DEVICE_ATTR(mode, 0644, bonding_show_mode, bonding_sysfs_store_option); /* Show the bonding transmit hash method. */ static ssize_t bonding_show_xmit_hash(struct device *d, @@ -231,7 +230,7 @@ static ssize_t bonding_show_xmit_hash(struct device *d, return sprintf(buf, "%s %d\n", val->string, bond->params.xmit_policy); } -static DEVICE_ATTR(xmit_hash_policy, S_IRUGO | S_IWUSR, +static DEVICE_ATTR(xmit_hash_policy, 0644, bonding_show_xmit_hash, bonding_sysfs_store_option); /* Show arp_validate. */ @@ -247,7 +246,7 @@ static ssize_t bonding_show_arp_validate(struct device *d, return sprintf(buf, "%s %d\n", val->string, bond->params.arp_validate); } -static DEVICE_ATTR(arp_validate, S_IRUGO | S_IWUSR, bonding_show_arp_validate, +static DEVICE_ATTR(arp_validate, 0644, bonding_show_arp_validate, bonding_sysfs_store_option); /* Show arp_all_targets. */ @@ -263,7 +262,7 @@ static ssize_t bonding_show_arp_all_targets(struct device *d, return sprintf(buf, "%s %d\n", val->string, bond->params.arp_all_targets); } -static DEVICE_ATTR(arp_all_targets, S_IRUGO | S_IWUSR, +static DEVICE_ATTR(arp_all_targets, 0644, bonding_show_arp_all_targets, bonding_sysfs_store_option); /* Show fail_over_mac. */ @@ -279,7 +278,7 @@ static ssize_t bonding_show_fail_over_mac(struct device *d, return sprintf(buf, "%s %d\n", val->string, bond->params.fail_over_mac); } -static DEVICE_ATTR(fail_over_mac, S_IRUGO | S_IWUSR, +static DEVICE_ATTR(fail_over_mac, 0644, bonding_show_fail_over_mac, bonding_sysfs_store_option); /* Show the arp timer interval. */ @@ -291,7 +290,7 @@ static ssize_t bonding_show_arp_interval(struct device *d, return sprintf(buf, "%d\n", bond->params.arp_interval); } -static DEVICE_ATTR(arp_interval, S_IRUGO | S_IWUSR, +static DEVICE_ATTR(arp_interval, 0644, bonding_show_arp_interval, bonding_sysfs_store_option); /* Show the arp targets. */ @@ -312,7 +311,7 @@ static ssize_t bonding_show_arp_targets(struct device *d, return res; } -static DEVICE_ATTR(arp_ip_target, S_IRUGO | S_IWUSR, +static DEVICE_ATTR(arp_ip_target, 0644, bonding_show_arp_targets, bonding_sysfs_store_option); /* Show the up and down delays. */ @@ -324,7 +323,7 @@ static ssize_t bonding_show_downdelay(struct device *d, return sprintf(buf, "%d\n", bond->params.downdelay * bond->params.miimon); } -static DEVICE_ATTR(downdelay, S_IRUGO | S_IWUSR, +static DEVICE_ATTR(downdelay, 0644, bonding_show_downdelay, bonding_sysfs_store_option); static ssize_t bonding_show_updelay(struct device *d, @@ -336,7 +335,7 @@ static ssize_t bonding_show_updelay(struct device *d, return sprintf(buf, "%d\n", bond->params.updelay * bond->params.miimon); } -static DEVICE_ATTR(updelay, S_IRUGO | S_IWUSR, +static DEVICE_ATTR(updelay, 0644, bonding_show_updelay, bonding_sysfs_store_option); /* Show the LACP interval. */ @@ -351,7 +350,7 @@ static ssize_t bonding_show_lacp(struct device *d, return sprintf(buf, "%s %d\n", val->string, bond->params.lacp_fast); } -static DEVICE_ATTR(lacp_rate, S_IRUGO | S_IWUSR, +static DEVICE_ATTR(lacp_rate, 0644, bonding_show_lacp, bonding_sysfs_store_option); static ssize_t bonding_show_min_links(struct device *d, @@ -362,7 +361,7 @@ static ssize_t bonding_show_min_links(struct device *d, return sprintf(buf, "%u\n", bond->params.min_links); } -static DEVICE_ATTR(min_links, S_IRUGO | S_IWUSR, +static DEVICE_ATTR(min_links, 0644, bonding_show_min_links, bonding_sysfs_store_option); static ssize_t bonding_show_ad_select(struct device *d, @@ -376,7 +375,7 @@ static ssize_t bonding_show_ad_select(struct device *d, return sprintf(buf, "%s %d\n", val->string, bond->params.ad_select); } -static DEVICE_ATTR(ad_select, S_IRUGO | S_IWUSR, +static DEVICE_ATTR(ad_select, 0644, bonding_show_ad_select, bonding_sysfs_store_option); /* Show the number of peer notifications to send after a failover event. */ @@ -387,9 +386,9 @@ static ssize_t bonding_show_num_peer_notif(struct device *d, struct bonding *bond = to_bond(d); return sprintf(buf, "%d\n", bond->params.num_peer_notif); } -static DEVICE_ATTR(num_grat_arp, S_IRUGO | S_IWUSR, +static DEVICE_ATTR(num_grat_arp, 0644, bonding_show_num_peer_notif, bonding_sysfs_store_option); -static DEVICE_ATTR(num_unsol_na, S_IRUGO | S_IWUSR, +static DEVICE_ATTR(num_unsol_na, 0644, bonding_show_num_peer_notif, bonding_sysfs_store_option); /* Show the MII monitor interval. */ @@ -401,7 +400,7 @@ static ssize_t bonding_show_miimon(struct device *d, return sprintf(buf, "%d\n", bond->params.miimon); } -static DEVICE_ATTR(miimon, S_IRUGO | S_IWUSR, +static DEVICE_ATTR(miimon, 0644, bonding_show_miimon, bonding_sysfs_store_option); /* Show the primary slave. */ @@ -421,7 +420,7 @@ static ssize_t bonding_show_primary(struct device *d, return count; } -static DEVICE_ATTR(primary, S_IRUGO | S_IWUSR, +static DEVICE_ATTR(primary, 0644, bonding_show_primary, bonding_sysfs_store_option); /* Show the primary_reselect flag. */ @@ -438,7 +437,7 @@ static ssize_t bonding_show_primary_reselect(struct device *d, return sprintf(buf, "%s %d\n", val->string, bond->params.primary_reselect); } -static DEVICE_ATTR(primary_reselect, S_IRUGO | S_IWUSR, +static DEVICE_ATTR(primary_reselect, 0644, bonding_show_primary_reselect, bonding_sysfs_store_option); /* Show the use_carrier flag. */ @@ -450,7 +449,7 @@ static ssize_t bonding_show_carrier(struct device *d, return sprintf(buf, "%d\n", bond->params.use_carrier); } -static DEVICE_ATTR(use_carrier, S_IRUGO | S_IWUSR, +static DEVICE_ATTR(use_carrier, 0644, bonding_show_carrier, bonding_sysfs_store_option); @@ -471,7 +470,7 @@ static ssize_t bonding_show_active_slave(struct device *d, return count; } -static DEVICE_ATTR(active_slave, S_IRUGO | S_IWUSR, +static DEVICE_ATTR(active_slave, 0644, bonding_show_active_slave, bonding_sysfs_store_option); /* Show link status of the bond interface. */ @@ -484,7 +483,7 @@ static ssize_t bonding_show_mii_status(struct device *d, return sprintf(buf, "%s\n", active ? "up" : "down"); } -static DEVICE_ATTR(mii_status, S_IRUGO, bonding_show_mii_status, NULL); +static DEVICE_ATTR(mii_status, 0444, bonding_show_mii_status, NULL); /* Show current 802.3ad aggregator ID. */ static ssize_t bonding_show_ad_aggregator(struct device *d, @@ -503,7 +502,7 @@ static ssize_t bonding_show_ad_aggregator(struct device *d, return count; } -static DEVICE_ATTR(ad_aggregator, S_IRUGO, bonding_show_ad_aggregator, NULL); +static DEVICE_ATTR(ad_aggregator, 0444, bonding_show_ad_aggregator, NULL); /* Show number of active 802.3ad ports. */ @@ -523,7 +522,7 @@ static ssize_t bonding_show_ad_num_ports(struct device *d, return count; } -static DEVICE_ATTR(ad_num_ports, S_IRUGO, bonding_show_ad_num_ports, NULL); +static DEVICE_ATTR(ad_num_ports, 0444, bonding_show_ad_num_ports, NULL); /* Show current 802.3ad actor key. */ @@ -543,7 +542,7 @@ static ssize_t bonding_show_ad_actor_key(struct device *d, return count; } -static DEVICE_ATTR(ad_actor_key, S_IRUGO, bonding_show_ad_actor_key, NULL); +static DEVICE_ATTR(ad_actor_key, 0444, bonding_show_ad_actor_key, NULL); /* Show current 802.3ad partner key. */ @@ -563,7 +562,7 @@ static ssize_t bonding_show_ad_partner_key(struct device *d, return count; } -static DEVICE_ATTR(ad_partner_key, S_IRUGO, bonding_show_ad_partner_key, NULL); +static DEVICE_ATTR(ad_partner_key, 0444, bonding_show_ad_partner_key, NULL); /* Show current 802.3ad partner mac. */ @@ -582,7 +581,7 @@ static ssize_t bonding_show_ad_partner_mac(struct device *d, return count; } -static DEVICE_ATTR(ad_partner_mac, S_IRUGO, bonding_show_ad_partner_mac, NULL); +static DEVICE_ATTR(ad_partner_mac, 0444, bonding_show_ad_partner_mac, NULL); /* Show the queue_ids of the slaves in the current bond. */ static ssize_t bonding_show_queue_id(struct device *d, @@ -615,7 +614,7 @@ static ssize_t bonding_show_queue_id(struct device *d, return res; } -static DEVICE_ATTR(queue_id, S_IRUGO | S_IWUSR, bonding_show_queue_id, +static DEVICE_ATTR(queue_id, 0644, bonding_show_queue_id, bonding_sysfs_store_option); @@ -628,7 +627,7 @@ static ssize_t bonding_show_slaves_active(struct device *d, return sprintf(buf, "%d\n", bond->params.all_slaves_active); } -static DEVICE_ATTR(all_slaves_active, S_IRUGO | S_IWUSR, +static DEVICE_ATTR(all_slaves_active, 0644, bonding_show_slaves_active, bonding_sysfs_store_option); /* Show the number of IGMP membership reports to send on link failure */ @@ -640,7 +639,7 @@ static ssize_t bonding_show_resend_igmp(struct device *d, return sprintf(buf, "%d\n", bond->params.resend_igmp); } -static DEVICE_ATTR(resend_igmp, S_IRUGO | S_IWUSR, +static DEVICE_ATTR(resend_igmp, 0644, bonding_show_resend_igmp, bonding_sysfs_store_option); @@ -652,7 +651,7 @@ static ssize_t bonding_show_lp_interval(struct device *d, return sprintf(buf, "%d\n", bond->params.lp_interval); } -static DEVICE_ATTR(lp_interval, S_IRUGO | S_IWUSR, +static DEVICE_ATTR(lp_interval, 0644, bonding_show_lp_interval, bonding_sysfs_store_option); static ssize_t bonding_show_tlb_dynamic_lb(struct device *d, @@ -662,7 +661,7 @@ static ssize_t bonding_show_tlb_dynamic_lb(struct device *d, struct bonding *bond = to_bond(d); return sprintf(buf, "%d\n", bond->params.tlb_dynamic_lb); } -static DEVICE_ATTR(tlb_dynamic_lb, S_IRUGO | S_IWUSR, +static DEVICE_ATTR(tlb_dynamic_lb, 0644, bonding_show_tlb_dynamic_lb, bonding_sysfs_store_option); static ssize_t bonding_show_packets_per_slave(struct device *d, @@ -674,7 +673,7 @@ static ssize_t bonding_show_packets_per_slave(struct device *d, return sprintf(buf, "%u\n", packets_per_slave); } -static DEVICE_ATTR(packets_per_slave, S_IRUGO | S_IWUSR, +static DEVICE_ATTR(packets_per_slave, 0644, bonding_show_packets_per_slave, bonding_sysfs_store_option); static ssize_t bonding_show_ad_actor_sys_prio(struct device *d, @@ -688,7 +687,7 @@ static ssize_t bonding_show_ad_actor_sys_prio(struct device *d, return 0; } -static DEVICE_ATTR(ad_actor_sys_prio, S_IRUGO | S_IWUSR, +static DEVICE_ATTR(ad_actor_sys_prio, 0644, bonding_show_ad_actor_sys_prio, bonding_sysfs_store_option); static ssize_t bonding_show_ad_actor_system(struct device *d, @@ -703,7 +702,7 @@ static ssize_t bonding_show_ad_actor_system(struct device *d, return 0; } -static DEVICE_ATTR(ad_actor_system, S_IRUGO | S_IWUSR, +static DEVICE_ATTR(ad_actor_system, 0644, bonding_show_ad_actor_system, bonding_sysfs_store_option); static ssize_t bonding_show_ad_user_port_key(struct device *d, @@ -717,7 +716,7 @@ static ssize_t bonding_show_ad_user_port_key(struct device *d, return 0; } -static DEVICE_ATTR(ad_user_port_key, S_IRUGO | S_IWUSR, +static DEVICE_ATTR(ad_user_port_key, 0644, bonding_show_ad_user_port_key, bonding_sysfs_store_option); static struct attribute *per_bond_attrs[] = { diff --git a/drivers/net/bonding/bond_sysfs_slave.c b/drivers/net/bonding/bond_sysfs_slave.c index 7d16c51e6913..2f120b2ffef0 100644 --- a/drivers/net/bonding/bond_sysfs_slave.c +++ b/drivers/net/bonding/bond_sysfs_slave.c @@ -25,8 +25,8 @@ const struct slave_attribute slave_attr_##_name = { \ .mode = _mode }, \ .show = _show, \ }; -#define SLAVE_ATTR_RO(_name) \ - SLAVE_ATTR(_name, S_IRUGO, _name##_show) +#define SLAVE_ATTR_RO(_name) \ + SLAVE_ATTR(_name, 0444, _name##_show) static ssize_t state_show(struct slave *slave, char *buf) { diff --git a/drivers/net/caif/caif_serial.c b/drivers/net/caif/caif_serial.c index 709838e4c062..a0f954f36c09 100644 --- a/drivers/net/caif/caif_serial.c +++ b/drivers/net/caif/caif_serial.c @@ -40,20 +40,20 @@ static LIST_HEAD(ser_list); static LIST_HEAD(ser_release_list); static bool ser_loop; -module_param(ser_loop, bool, S_IRUGO); +module_param(ser_loop, bool, 0444); MODULE_PARM_DESC(ser_loop, "Run in simulated loopback mode."); static bool ser_use_stx = true; -module_param(ser_use_stx, bool, S_IRUGO); +module_param(ser_use_stx, bool, 0444); MODULE_PARM_DESC(ser_use_stx, "STX enabled or not."); static bool ser_use_fcs = true; -module_param(ser_use_fcs, bool, S_IRUGO); +module_param(ser_use_fcs, bool, 0444); MODULE_PARM_DESC(ser_use_fcs, "FCS enabled or not."); static int ser_write_chunk = MAX_WRITE_CHUNK; -module_param(ser_write_chunk, int, S_IRUGO); +module_param(ser_write_chunk, int, 0444); MODULE_PARM_DESC(ser_write_chunk, "Maximum size of data written to UART."); @@ -97,21 +97,21 @@ static inline void debugfs_init(struct ser_device *ser, struct tty_struct *tty) ser->debugfs_tty_dir = debugfs_create_dir(tty->name, debugfsdir); if (!IS_ERR(ser->debugfs_tty_dir)) { - debugfs_create_blob("last_tx_msg", S_IRUSR, - ser->debugfs_tty_dir, - &ser->tx_blob); + debugfs_create_blob("last_tx_msg", 0400, + ser->debugfs_tty_dir, + &ser->tx_blob); - debugfs_create_blob("last_rx_msg", S_IRUSR, - ser->debugfs_tty_dir, - &ser->rx_blob); + debugfs_create_blob("last_rx_msg", 0400, + ser->debugfs_tty_dir, + &ser->rx_blob); - debugfs_create_x32("ser_state", S_IRUSR, - ser->debugfs_tty_dir, - (u32 *)&ser->state); + debugfs_create_x32("ser_state", 0400, + ser->debugfs_tty_dir, + (u32 *)&ser->state); - debugfs_create_x8("tty_status", S_IRUSR, - ser->debugfs_tty_dir, - &ser->tty_status); + debugfs_create_x8("tty_status", 0400, + ser->debugfs_tty_dir, + &ser->tty_status); } ser->tx_blob.data = ser->tx_data; diff --git a/drivers/net/caif/caif_spi.c b/drivers/net/caif/caif_spi.c index 980eace53d44..d28a1398c091 100644 --- a/drivers/net/caif/caif_spi.c +++ b/drivers/net/caif/caif_spi.c @@ -35,27 +35,27 @@ MODULE_DESCRIPTION("CAIF SPI driver"); #define PAD_POW2(x, pow) ((((x)&((pow)-1))==0) ? 0 : (((pow)-((x)&((pow)-1))))) static bool spi_loop; -module_param(spi_loop, bool, S_IRUGO); +module_param(spi_loop, bool, 0444); MODULE_PARM_DESC(spi_loop, "SPI running in loopback mode."); /* SPI frame alignment. */ -module_param(spi_frm_align, int, S_IRUGO); +module_param(spi_frm_align, int, 0444); MODULE_PARM_DESC(spi_frm_align, "SPI frame alignment."); /* * SPI padding options. * Warning: must be a base of 2 (& operation used) and can not be zero ! */ -module_param(spi_up_head_align, int, S_IRUGO); +module_param(spi_up_head_align, int, 0444); MODULE_PARM_DESC(spi_up_head_align, "SPI uplink head alignment."); -module_param(spi_up_tail_align, int, S_IRUGO); +module_param(spi_up_tail_align, int, 0444); MODULE_PARM_DESC(spi_up_tail_align, "SPI uplink tail alignment."); -module_param(spi_down_head_align, int, S_IRUGO); +module_param(spi_down_head_align, int, 0444); MODULE_PARM_DESC(spi_down_head_align, "SPI downlink head alignment."); -module_param(spi_down_tail_align, int, S_IRUGO); +module_param(spi_down_tail_align, int, 0444); MODULE_PARM_DESC(spi_down_tail_align, "SPI downlink tail alignment."); #ifdef CONFIG_ARM @@ -250,10 +250,10 @@ static const struct file_operations dbgfs_frame_fops = { static inline void dev_debugfs_add(struct cfspi *cfspi) { cfspi->dbgfs_dir = debugfs_create_dir(cfspi->pdev->name, dbgfs_root); - cfspi->dbgfs_state = debugfs_create_file("state", S_IRUGO, + cfspi->dbgfs_state = debugfs_create_file("state", 0444, cfspi->dbgfs_dir, cfspi, &dbgfs_state_fops); - cfspi->dbgfs_frame = debugfs_create_file("frame", S_IRUGO, + cfspi->dbgfs_frame = debugfs_create_file("frame", 0444, cfspi->dbgfs_dir, cfspi, &dbgfs_frame_fops); } diff --git a/drivers/net/caif/caif_virtio.c b/drivers/net/caif/caif_virtio.c index c3d104feee13..2814e0dee4bb 100644 --- a/drivers/net/caif/caif_virtio.c +++ b/drivers/net/caif/caif_virtio.c @@ -629,21 +629,21 @@ static inline void debugfs_init(struct cfv_info *cfv) if (IS_ERR(cfv->debugfs)) return; - debugfs_create_u32("rx-napi-complete", S_IRUSR, cfv->debugfs, + debugfs_create_u32("rx-napi-complete", 0400, cfv->debugfs, &cfv->stats.rx_napi_complete); - debugfs_create_u32("rx-napi-resched", S_IRUSR, cfv->debugfs, + debugfs_create_u32("rx-napi-resched", 0400, cfv->debugfs, &cfv->stats.rx_napi_resched); - debugfs_create_u32("rx-nomem", S_IRUSR, cfv->debugfs, + debugfs_create_u32("rx-nomem", 0400, cfv->debugfs, &cfv->stats.rx_nomem); - debugfs_create_u32("rx-kicks", S_IRUSR, cfv->debugfs, + debugfs_create_u32("rx-kicks", 0400, cfv->debugfs, &cfv->stats.rx_kicks); - debugfs_create_u32("tx-full-ring", S_IRUSR, cfv->debugfs, + debugfs_create_u32("tx-full-ring", 0400, cfv->debugfs, &cfv->stats.tx_full_ring); - debugfs_create_u32("tx-no-mem", S_IRUSR, cfv->debugfs, + debugfs_create_u32("tx-no-mem", 0400, cfv->debugfs, &cfv->stats.tx_no_mem); - debugfs_create_u32("tx-kicks", S_IRUSR, cfv->debugfs, + debugfs_create_u32("tx-kicks", 0400, cfv->debugfs, &cfv->stats.tx_kicks); - debugfs_create_u32("tx-flow-on", S_IRUSR, cfv->debugfs, + debugfs_create_u32("tx-flow-on", 0400, cfv->debugfs, &cfv->stats.tx_flow_on); } diff --git a/drivers/net/can/at91_can.c b/drivers/net/can/at91_can.c index f37ce0e1b603..d98c69045b17 100644 --- a/drivers/net/can/at91_can.c +++ b/drivers/net/can/at91_can.c @@ -1224,8 +1224,7 @@ static ssize_t at91_sysfs_set_mb0_id(struct device *dev, return ret; } -static DEVICE_ATTR(mb0_id, S_IWUSR | S_IRUGO, - at91_sysfs_show_mb0_id, at91_sysfs_set_mb0_id); +static DEVICE_ATTR(mb0_id, 0644, at91_sysfs_show_mb0_id, at91_sysfs_set_mb0_id); static struct attribute *at91_sysfs_attrs[] = { &dev_attr_mb0_id.attr, diff --git a/drivers/net/can/cc770/cc770.c b/drivers/net/can/cc770/cc770.c index 6da69af103e6..d4dd4da23997 100644 --- a/drivers/net/can/cc770/cc770.c +++ b/drivers/net/can/cc770/cc770.c @@ -67,12 +67,12 @@ MODULE_DESCRIPTION(KBUILD_MODNAME "CAN netdevice driver"); * otherwise 11 bit SFF messages. */ static int msgobj15_eff; -module_param(msgobj15_eff, int, S_IRUGO); +module_param(msgobj15_eff, int, 0444); MODULE_PARM_DESC(msgobj15_eff, "Extended 29-bit frames for message object 15 " "(default: 11-bit standard frames)"); static int i82527_compat; -module_param(i82527_compat, int, S_IRUGO); +module_param(i82527_compat, int, 0444); MODULE_PARM_DESC(i82527_compat, "Strict Intel 82527 comptibility mode " "without using additional functions"); diff --git a/drivers/net/can/cc770/cc770_isa.c b/drivers/net/can/cc770/cc770_isa.c index 3a30fd3b4498..fcd34698074f 100644 --- a/drivers/net/can/cc770/cc770_isa.c +++ b/drivers/net/can/cc770/cc770_isa.c @@ -82,29 +82,29 @@ static u8 cor[MAXDEV] = {[0 ... (MAXDEV - 1)] = 0xff}; static u8 bcr[MAXDEV] = {[0 ... (MAXDEV - 1)] = 0xff}; static int indirect[MAXDEV] = {[0 ... (MAXDEV - 1)] = -1}; -module_param_hw_array(port, ulong, ioport, NULL, S_IRUGO); +module_param_hw_array(port, ulong, ioport, NULL, 0444); MODULE_PARM_DESC(port, "I/O port number"); -module_param_hw_array(mem, ulong, iomem, NULL, S_IRUGO); +module_param_hw_array(mem, ulong, iomem, NULL, 0444); MODULE_PARM_DESC(mem, "I/O memory address"); -module_param_hw_array(indirect, int, ioport, NULL, S_IRUGO); +module_param_hw_array(indirect, int, ioport, NULL, 0444); MODULE_PARM_DESC(indirect, "Indirect access via address and data port"); -module_param_hw_array(irq, int, irq, NULL, S_IRUGO); +module_param_hw_array(irq, int, irq, NULL, 0444); MODULE_PARM_DESC(irq, "IRQ number"); -module_param_array(clk, int, NULL, S_IRUGO); +module_param_array(clk, int, NULL, 0444); MODULE_PARM_DESC(clk, "External oscillator clock frequency " "(default=16000000 [16 MHz])"); -module_param_array(cir, byte, NULL, S_IRUGO); +module_param_array(cir, byte, NULL, 0444); MODULE_PARM_DESC(cir, "CPU interface register (default=0x40 [DSC])"); -module_param_array(cor, byte, NULL, S_IRUGO); +module_param_array(cor, byte, NULL, 0444); MODULE_PARM_DESC(cor, "Clockout register (default=0x00)"); -module_param_array(bcr, byte, NULL, S_IRUGO); +module_param_array(bcr, byte, NULL, 0444); MODULE_PARM_DESC(bcr, "Bus configuration register (default=0x40 [CBY])"); #define CC770_IOSIZE 0x20 diff --git a/drivers/net/can/grcan.c b/drivers/net/can/grcan.c index 897c6b113d3f..2d3046afa80d 100644 --- a/drivers/net/can/grcan.c +++ b/drivers/net/can/grcan.c @@ -1484,7 +1484,7 @@ static netdev_tx_t grcan_start_xmit(struct sk_buff *skb, } \ } \ module_param_named(name, grcan_module_config.name, \ - mtype, S_IRUGO); \ + mtype, 0444); \ MODULE_PARM_DESC(name, desc) #define GRCAN_CONFIG_ATTR(name, desc) \ @@ -1513,7 +1513,7 @@ static netdev_tx_t grcan_start_xmit(struct sk_buff *skb, struct grcan_priv *priv = netdev_priv(dev); \ return sprintf(buf, "%d\n", priv->config.name); \ } \ - static DEVICE_ATTR(name, S_IRUGO | S_IWUSR, \ + static DEVICE_ATTR(name, 0644, \ grcan_show_##name, \ grcan_store_##name); \ GRCAN_MODULE_PARAM(name, ushort, GRCAN_NOT_BOOL, desc) diff --git a/drivers/net/can/janz-ican3.c b/drivers/net/can/janz-ican3.c index 12a53c8e8e1d..adfdb66a486e 100644 --- a/drivers/net/can/janz-ican3.c +++ b/drivers/net/can/janz-ican3.c @@ -1865,9 +1865,9 @@ static ssize_t ican3_sysfs_show_fwinfo(struct device *dev, return scnprintf(buf, PAGE_SIZE, "%s\n", mod->fwinfo); } -static DEVICE_ATTR(termination, S_IWUSR | S_IRUGO, ican3_sysfs_show_term, - ican3_sysfs_set_term); -static DEVICE_ATTR(fwinfo, S_IRUSR | S_IRUGO, ican3_sysfs_show_fwinfo, NULL); +static DEVICE_ATTR(termination, 0644, ican3_sysfs_show_term, + ican3_sysfs_set_term); +static DEVICE_ATTR(fwinfo, 0444, ican3_sysfs_show_fwinfo, NULL); static struct attribute *ican3_sysfs_attrs[] = { &dev_attr_termination.attr, diff --git a/drivers/net/can/sja1000/sja1000_isa.c b/drivers/net/can/sja1000/sja1000_isa.c index a89c1e92554d..1a2ae6ce8d87 100644 --- a/drivers/net/can/sja1000/sja1000_isa.c +++ b/drivers/net/can/sja1000/sja1000_isa.c @@ -48,27 +48,27 @@ static unsigned char ocr[MAXDEV] = {[0 ... (MAXDEV - 1)] = 0xff}; static int indirect[MAXDEV] = {[0 ... (MAXDEV - 1)] = -1}; static spinlock_t indirect_lock[MAXDEV]; /* lock for indirect access mode */ -module_param_hw_array(port, ulong, ioport, NULL, S_IRUGO); +module_param_hw_array(port, ulong, ioport, NULL, 0444); MODULE_PARM_DESC(port, "I/O port number"); -module_param_hw_array(mem, ulong, iomem, NULL, S_IRUGO); +module_param_hw_array(mem, ulong, iomem, NULL, 0444); MODULE_PARM_DESC(mem, "I/O memory address"); -module_param_hw_array(indirect, int, ioport, NULL, S_IRUGO); +module_param_hw_array(indirect, int, ioport, NULL, 0444); MODULE_PARM_DESC(indirect, "Indirect access via address and data port"); -module_param_hw_array(irq, int, irq, NULL, S_IRUGO); +module_param_hw_array(irq, int, irq, NULL, 0444); MODULE_PARM_DESC(irq, "IRQ number"); -module_param_array(clk, int, NULL, S_IRUGO); +module_param_array(clk, int, NULL, 0444); MODULE_PARM_DESC(clk, "External oscillator clock frequency " "(default=16000000 [16 MHz])"); -module_param_array(cdr, byte, NULL, S_IRUGO); +module_param_array(cdr, byte, NULL, 0444); MODULE_PARM_DESC(cdr, "Clock divider register " "(default=0x48 [CDR_CBP | CDR_CLK_OFF])"); -module_param_array(ocr, byte, NULL, S_IRUGO); +module_param_array(ocr, byte, NULL, 0444); MODULE_PARM_DESC(ocr, "Output control register " "(default=0x18 [OCR_TX0_PUSHPULL])"); diff --git a/drivers/net/can/softing/softing_main.c b/drivers/net/can/softing/softing_main.c index 5f64deec9f6c..e22696190583 100644 --- a/drivers/net/can/softing/softing_main.c +++ b/drivers/net/can/softing/softing_main.c @@ -601,8 +601,8 @@ static ssize_t store_output(struct device *dev, struct device_attribute *attr, return count; } -static const DEVICE_ATTR(chip, S_IRUGO, show_chip, NULL); -static const DEVICE_ATTR(output, S_IRUGO | S_IWUSR, show_output, store_output); +static const DEVICE_ATTR(chip, 0444, show_chip, NULL); +static const DEVICE_ATTR(output, 0644, show_output, store_output); static const struct attribute *const netdev_sysfs_attrs[] = { &dev_attr_chip.attr, diff --git a/drivers/net/can/spi/mcp251x.c b/drivers/net/can/spi/mcp251x.c index 98d118b3aaf4..e90817608645 100644 --- a/drivers/net/can/spi/mcp251x.c +++ b/drivers/net/can/spi/mcp251x.c @@ -220,7 +220,7 @@ #define DEVICE_NAME "mcp251x" static int mcp251x_enable_dma; /* Enable SPI DMA. Default: 0 (Off) */ -module_param(mcp251x_enable_dma, int, S_IRUGO); +module_param(mcp251x_enable_dma, int, 0444); MODULE_PARM_DESC(mcp251x_enable_dma, "Enable SPI DMA. Default: 0 (Off)"); static const struct can_bittiming_const mcp251x_bittiming_const = { diff --git a/drivers/net/can/usb/esd_usb2.c b/drivers/net/can/usb/esd_usb2.c index c6dcf93675c0..5820fd5b69b5 100644 --- a/drivers/net/can/usb/esd_usb2.c +++ b/drivers/net/can/usb/esd_usb2.c @@ -496,7 +496,7 @@ static ssize_t show_firmware(struct device *d, (dev->version >> 8) & 0xf, dev->version & 0xff); } -static DEVICE_ATTR(firmware, S_IRUGO, show_firmware, NULL); +static DEVICE_ATTR(firmware, 0444, show_firmware, NULL); static ssize_t show_hardware(struct device *d, struct device_attribute *attr, char *buf) @@ -509,7 +509,7 @@ static ssize_t show_hardware(struct device *d, (dev->version >> 24) & 0xf, (dev->version >> 16) & 0xff); } -static DEVICE_ATTR(hardware, S_IRUGO, show_hardware, NULL); +static DEVICE_ATTR(hardware, 0444, show_hardware, NULL); static ssize_t show_nets(struct device *d, struct device_attribute *attr, char *buf) @@ -519,7 +519,7 @@ static ssize_t show_nets(struct device *d, return sprintf(buf, "%d", dev->net_count); } -static DEVICE_ATTR(nets, S_IRUGO, show_nets, NULL); +static DEVICE_ATTR(nets, 0444, show_nets, NULL); static int esd_usb2_send_msg(struct esd_usb2 *dev, struct esd_usb2_msg *msg) { diff --git a/drivers/net/can/vcan.c b/drivers/net/can/vcan.c index c2b04f505e16..d200a5b0651c 100644 --- a/drivers/net/can/vcan.c +++ b/drivers/net/can/vcan.c @@ -65,7 +65,7 @@ MODULE_ALIAS_RTNL_LINK(DRV_NAME); */ static bool echo; /* echo testing. Default: 0 (Off) */ -module_param(echo, bool, S_IRUGO); +module_param(echo, bool, 0444); MODULE_PARM_DESC(echo, "Echo sent frames (for testing). Default: 0 (Off)"); diff --git a/drivers/net/hamradio/bpqether.c b/drivers/net/hamradio/bpqether.c index 78a6414c5fd9..dfabbae72efd 100644 --- a/drivers/net/hamradio/bpqether.c +++ b/drivers/net/hamradio/bpqether.c @@ -590,8 +590,7 @@ static int bpq_device_event(struct notifier_block *this, static int __init bpq_init_driver(void) { #ifdef CONFIG_PROC_FS - if (!proc_create("bpqether", S_IRUGO, init_net.proc_net, - &bpq_info_fops)) { + if (!proc_create("bpqether", 0444, init_net.proc_net, &bpq_info_fops)) { printk(KERN_ERR "bpq: cannot create /proc/net/bpqether entry.\n"); return -ENOENT; diff --git a/drivers/net/hamradio/yam.c b/drivers/net/hamradio/yam.c index 14c3632b8cde..83034eb7ed4f 100644 --- a/drivers/net/hamradio/yam.c +++ b/drivers/net/hamradio/yam.c @@ -1168,7 +1168,7 @@ static int __init yam_init_driver(void) yam_timer.expires = jiffies + HZ / 100; add_timer(&yam_timer); - proc_create("yam", S_IRUGO, init_net.proc_net, &yam_info_fops); + proc_create("yam", 0444, init_net.proc_net, &yam_info_fops); return 0; error: while (--i >= 0) { diff --git a/drivers/net/hyperv/netvsc_drv.c b/drivers/net/hyperv/netvsc_drv.c index f28c85d212ce..9f43a20ee7de 100644 --- a/drivers/net/hyperv/netvsc_drv.c +++ b/drivers/net/hyperv/netvsc_drv.c @@ -55,7 +55,7 @@ #define VF_TAKEOVER_INT (HZ / 10) static unsigned int ring_size __ro_after_init = 128; -module_param(ring_size, uint, S_IRUGO); +module_param(ring_size, uint, 0444); MODULE_PARM_DESC(ring_size, "Ring buffer size (# of pages)"); unsigned int netvsc_ring_bytes __ro_after_init; struct reciprocal_value netvsc_ring_reciprocal __ro_after_init; @@ -66,7 +66,7 @@ static const u32 default_msg = NETIF_MSG_DRV | NETIF_MSG_PROBE | NETIF_MSG_TX_ERR; static int debug = -1; -module_param(debug, int, S_IRUGO); +module_param(debug, int, 0444); MODULE_PARM_DESC(debug, "Debug level (0=none,...,16=all)"); static void netvsc_change_rx_flags(struct net_device *net, int change) diff --git a/drivers/net/ieee802154/at86rf230.c b/drivers/net/ieee802154/at86rf230.c index 548d9d026a85..77abedf0b524 100644 --- a/drivers/net/ieee802154/at86rf230.c +++ b/drivers/net/ieee802154/at86rf230.c @@ -1661,7 +1661,7 @@ static int at86rf230_debugfs_init(struct at86rf230_local *lp) if (!at86rf230_debugfs_root) return -ENOMEM; - stats = debugfs_create_file("trac_stats", S_IRUGO, + stats = debugfs_create_file("trac_stats", 0444, at86rf230_debugfs_root, lp, &at86rf230_stats_fops); if (!stats) diff --git a/drivers/net/phy/spi_ks8995.c b/drivers/net/phy/spi_ks8995.c index 1e2d4f1179da..f17b3441779b 100644 --- a/drivers/net/phy/spi_ks8995.c +++ b/drivers/net/phy/spi_ks8995.c @@ -417,7 +417,7 @@ static void ks8995_parse_dt(struct ks8995_switch *ks) static const struct bin_attribute ks8995_registers_attr = { .attr = { .name = "registers", - .mode = S_IRUSR | S_IWUSR, + .mode = 0600, }, .size = KS8995_REGS_SIZE, .read = ks8995_registers_read, diff --git a/drivers/net/ppp/ppp_generic.c b/drivers/net/ppp/ppp_generic.c index 926c2c322d43..22fcff3c7a9a 100644 --- a/drivers/net/ppp/ppp_generic.c +++ b/drivers/net/ppp/ppp_generic.c @@ -1687,7 +1687,7 @@ ppp_push(struct ppp *ppp) #ifdef CONFIG_PPP_MULTILINK static bool mp_protocol_compress __read_mostly = true; -module_param(mp_protocol_compress, bool, S_IRUGO | S_IWUSR); +module_param(mp_protocol_compress, bool, 0644); MODULE_PARM_DESC(mp_protocol_compress, "compress protocol id in multilink fragments"); diff --git a/drivers/net/ppp/pppoe.c b/drivers/net/ppp/pppoe.c index c10e6181a2f0..f9552a400271 100644 --- a/drivers/net/ppp/pppoe.c +++ b/drivers/net/ppp/pppoe.c @@ -1142,7 +1142,7 @@ static __net_init int pppoe_init_net(struct net *net) rwlock_init(&pn->hash_lock); - pde = proc_create("pppoe", S_IRUGO, net->proc_net, &pppoe_seq_fops); + pde = proc_create("pppoe", 0444, net->proc_net, &pppoe_seq_fops); #ifdef CONFIG_PROC_FS if (!pde) return -ENOMEM; diff --git a/drivers/net/usb/cdc_ncm.c b/drivers/net/usb/cdc_ncm.c index 9e1b74590682..90d07ed224d5 100644 --- a/drivers/net/usb/cdc_ncm.c +++ b/drivers/net/usb/cdc_ncm.c @@ -58,7 +58,7 @@ static bool prefer_mbim = true; #else static bool prefer_mbim; #endif -module_param(prefer_mbim, bool, S_IRUGO | S_IWUSR); +module_param(prefer_mbim, bool, 0644); MODULE_PARM_DESC(prefer_mbim, "Prefer MBIM setting on dual NCM/MBIM functions"); static void cdc_ncm_txpath_bh(unsigned long param); @@ -281,10 +281,10 @@ static ssize_t cdc_ncm_store_tx_timer_usecs(struct device *d, struct device_att return len; } -static DEVICE_ATTR(min_tx_pkt, S_IRUGO | S_IWUSR, cdc_ncm_show_min_tx_pkt, cdc_ncm_store_min_tx_pkt); -static DEVICE_ATTR(rx_max, S_IRUGO | S_IWUSR, cdc_ncm_show_rx_max, cdc_ncm_store_rx_max); -static DEVICE_ATTR(tx_max, S_IRUGO | S_IWUSR, cdc_ncm_show_tx_max, cdc_ncm_store_tx_max); -static DEVICE_ATTR(tx_timer_usecs, S_IRUGO | S_IWUSR, cdc_ncm_show_tx_timer_usecs, cdc_ncm_store_tx_timer_usecs); +static DEVICE_ATTR(min_tx_pkt, 0644, cdc_ncm_show_min_tx_pkt, cdc_ncm_store_min_tx_pkt); +static DEVICE_ATTR(rx_max, 0644, cdc_ncm_show_rx_max, cdc_ncm_store_rx_max); +static DEVICE_ATTR(tx_max, 0644, cdc_ncm_show_tx_max, cdc_ncm_store_tx_max); +static DEVICE_ATTR(tx_timer_usecs, 0644, cdc_ncm_show_tx_timer_usecs, cdc_ncm_store_tx_timer_usecs); static ssize_t ndp_to_end_show(struct device *d, struct device_attribute *attr, char *buf) { @@ -335,7 +335,7 @@ static ssize_t cdc_ncm_show_##name(struct device *d, struct device_attribute *at struct cdc_ncm_ctx *ctx = (struct cdc_ncm_ctx *)dev->data[0]; \ return sprintf(buf, format "\n", tocpu(ctx->ncm_parm.name)); \ } \ -static DEVICE_ATTR(name, S_IRUGO, cdc_ncm_show_##name, NULL) +static DEVICE_ATTR(name, 0444, cdc_ncm_show_##name, NULL) NCM_PARM_ATTR(bmNtbFormatsSupported, "0x%04x", le16_to_cpu); NCM_PARM_ATTR(dwNtbInMaxSize, "%u", le32_to_cpu); diff --git a/drivers/net/usb/hso.c b/drivers/net/usb/hso.c index 981c931a7a1f..e53883ad6107 100644 --- a/drivers/net/usb/hso.c +++ b/drivers/net/usb/hso.c @@ -519,7 +519,7 @@ static ssize_t hso_sysfs_show_porttype(struct device *dev, return sprintf(buf, "%s\n", port_name); } -static DEVICE_ATTR(hsotype, S_IRUGO, hso_sysfs_show_porttype, NULL); +static DEVICE_ATTR(hsotype, 0444, hso_sysfs_show_porttype, NULL); static struct attribute *hso_serial_dev_attrs[] = { &dev_attr_hsotype.attr, @@ -3289,12 +3289,12 @@ MODULE_LICENSE("GPL"); /* change the debug level (eg: insmod hso.ko debug=0x04) */ MODULE_PARM_DESC(debug, "debug level mask [0x01 | 0x02 | 0x04 | 0x08 | 0x10]"); -module_param(debug, int, S_IRUGO | S_IWUSR); +module_param(debug, int, 0644); /* set the major tty number (eg: insmod hso.ko tty_major=245) */ MODULE_PARM_DESC(tty_major, "Set the major tty number"); -module_param(tty_major, int, S_IRUGO | S_IWUSR); +module_param(tty_major, int, 0644); /* disable network interface (eg: insmod hso.ko disable_net=1) */ MODULE_PARM_DESC(disable_net, "Disable the network interface"); -module_param(disable_net, int, S_IRUGO | S_IWUSR); +module_param(disable_net, int, 0644); diff --git a/drivers/net/xen-netback/xenbus.c b/drivers/net/xen-netback/xenbus.c index a56d3eab35dd..e1aef253601e 100644 --- a/drivers/net/xen-netback/xenbus.c +++ b/drivers/net/xen-netback/xenbus.c @@ -224,7 +224,7 @@ static void xenvif_debugfs_addif(struct xenvif *vif) snprintf(filename, sizeof(filename), "io_ring_q%d", i); pfile = debugfs_create_file(filename, - S_IRUSR | S_IWUSR, + 0600, vif->xenvif_dbg_root, &vif->queues[i], &xenvif_dbg_io_ring_ops_fops); @@ -235,7 +235,7 @@ static void xenvif_debugfs_addif(struct xenvif *vif) if (vif->ctrl_irq) { pfile = debugfs_create_file("ctrl", - S_IRUSR, + 0400, vif->xenvif_dbg_root, vif, &xenvif_dbg_ctrl_ops_fops); diff --git a/drivers/net/xen-netfront.c b/drivers/net/xen-netfront.c index 3127bc8633ca..4dd0668003e7 100644 --- a/drivers/net/xen-netfront.c +++ b/drivers/net/xen-netfront.c @@ -2113,9 +2113,9 @@ static ssize_t store_rxbuf(struct device *dev, return len; } -static DEVICE_ATTR(rxbuf_min, S_IRUGO|S_IWUSR, show_rxbuf, store_rxbuf); -static DEVICE_ATTR(rxbuf_max, S_IRUGO|S_IWUSR, show_rxbuf, store_rxbuf); -static DEVICE_ATTR(rxbuf_cur, S_IRUGO, show_rxbuf, NULL); +static DEVICE_ATTR(rxbuf_min, 0644, show_rxbuf, store_rxbuf); +static DEVICE_ATTR(rxbuf_max, 0644, show_rxbuf, store_rxbuf); +static DEVICE_ATTR(rxbuf_cur, 0444, show_rxbuf, NULL); static struct attribute *xennet_dev_attrs[] = { &dev_attr_rxbuf_min.attr, -- 2.15.0 From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Subject: [4/4] drivers/net: Use octal not symbolic permissions From: Joe Perches Message-Id: <8f24a711e6b8ec7b41356c378140fb54d510205c.1521845248.git.joe@perches.com> Date: Fri, 23 Mar 2018 15:54:39 -0700 To: Jay Vosburgh , Veaceslav Falico , Andy Gospodarek , Dmitry Tarnyagin , Wolfgang Grandegger , Marc Kleine-Budde , Nicolas Ferre , Alexandre Belloni , Jean-Paul Roubelat , "K. Y. Srinivasan" , Haiyang Zhang , Stephen Hemminger , Alexander Aring , Stefan Schmidt , Andrew Lunn , Florian Fainelli , Paul Mackerras , Michal Ostrowski , Oliver Neukum , Wei Liu , Paul Durrant , Boris Ostrovsky , Juergen Gross Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org, linux-can@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-hams@vger.kernel.org, devel@linuxdriverproject.org, linux-wpan@vger.kernel.org, linux-ppp@vger.kernel.org, linux-usb@vger.kernel.org, xen-devel@lists.xenproject.org List-ID: UHJlZmVyIHRoZSBkaXJlY3QgdXNlIG9mIG9jdGFsIGZvciBwZXJtaXNzaW9ucy4KCkRvbmUgd2l0 aCBjaGVja3BhdGNoIC1mIC0tdHlwZXM9U1lNQk9MSUNfUEVSTVMgLS1maXgtaW5wbGFjZQphbmQg c29tZSB0eXBpbmcuCgpNaXNjZWxsYW5lYToKCm8gV2hpdGVzcGFjZSBuZWF0ZW5pbmcgYXJvdW5k IHRoZXNlIGNvbnZlcnNpb25zLgoKU2lnbmVkLW9mZi1ieTogSm9lIFBlcmNoZXMgPGpvZUBwZXJj aGVzLmNvbT4KLS0tCiBkcml2ZXJzL25ldC9ib25kaW5nL2JvbmRfcHJvY2ZzLmMgICAgICB8ICAy ICstCiBkcml2ZXJzL25ldC9ib25kaW5nL2JvbmRfc3lzZnMuYyAgICAgICB8IDczICsrKysrKysr KysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0KIGRyaXZlcnMvbmV0L2JvbmRpbmcvYm9uZF9zeXNm c19zbGF2ZS5jIHwgIDQgKy0KIGRyaXZlcnMvbmV0L2NhaWYvY2FpZl9zZXJpYWwuYyAgICAgICAg IHwgMzIgKysrKysrKy0tLS0tLS0tCiBkcml2ZXJzL25ldC9jYWlmL2NhaWZfc3BpLmMgICAgICAg ICAgICB8IDE2ICsrKystLS0tCiBkcml2ZXJzL25ldC9jYWlmL2NhaWZfdmlydGlvLmMgICAgICAg ICB8IDE2ICsrKystLS0tCiBkcml2ZXJzL25ldC9jYW4vYXQ5MV9jYW4uYyAgICAgICAgICAgICB8 ICAzICstCiBkcml2ZXJzL25ldC9jYW4vY2M3NzAvY2M3NzAuYyAgICAgICAgICB8ICA0ICstCiBk cml2ZXJzL25ldC9jYW4vY2M3NzAvY2M3NzBfaXNhLmMgICAgICB8IDE2ICsrKystLS0tCiBkcml2 ZXJzL25ldC9jYW4vZ3JjYW4uYyAgICAgICAgICAgICAgICB8ICA0ICstCiBkcml2ZXJzL25ldC9j YW4vamFuei1pY2FuMy5jICAgICAgICAgICB8ICA2ICstLQogZHJpdmVycy9uZXQvY2FuL3NqYTEw MDAvc2phMTAwMF9pc2EuYyAgfCAxNCArKystLS0tCiBkcml2ZXJzL25ldC9jYW4vc29mdGluZy9z b2Z0aW5nX21haW4uYyB8ICA0ICstCiBkcml2ZXJzL25ldC9jYW4vc3BpL21jcDI1MXguYyAgICAg ICAgICB8ICAyICstCiBkcml2ZXJzL25ldC9jYW4vdXNiL2VzZF91c2IyLmMgICAgICAgICB8ICA2 ICstLQogZHJpdmVycy9uZXQvY2FuL3ZjYW4uYyAgICAgICAgICAgICAgICAgfCAgMiArLQogZHJp dmVycy9uZXQvaGFtcmFkaW8vYnBxZXRoZXIuYyAgICAgICAgfCAgMyArLQogZHJpdmVycy9uZXQv aGFtcmFkaW8veWFtLmMgICAgICAgICAgICAgfCAgMiArLQogZHJpdmVycy9uZXQvaHlwZXJ2L25l dHZzY19kcnYuYyAgICAgICAgfCAgNCArLQogZHJpdmVycy9uZXQvaWVlZTgwMjE1NC9hdDg2cmYy MzAuYyAgICAgfCAgMiArLQogZHJpdmVycy9uZXQvcGh5L3NwaV9rczg5OTUuYyAgICAgICAgICAg fCAgMiArLQogZHJpdmVycy9uZXQvcHBwL3BwcF9nZW5lcmljLmMgICAgICAgICAgfCAgMiArLQog ZHJpdmVycy9uZXQvcHBwL3BwcG9lLmMgICAgICAgICAgICAgICAgfCAgMiArLQogZHJpdmVycy9u ZXQvdXNiL2NkY19uY20uYyAgICAgICAgICAgICAgfCAxMiArKystLS0KIGRyaXZlcnMvbmV0L3Vz Yi9oc28uYyAgICAgICAgICAgICAgICAgIHwgIDggKystLQogZHJpdmVycy9uZXQveGVuLW5ldGJh Y2sveGVuYnVzLmMgICAgICAgfCAgNCArLQogZHJpdmVycy9uZXQveGVuLW5ldGZyb250LmMgICAg ICAgICAgICAgfCAgNiArLS0KIDI3IGZpbGVzIGNoYW5nZWQsIDEyNCBpbnNlcnRpb25zKCspLCAx MjcgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvYm9uZGluZy9ib25kX3By b2Nmcy5jIGIvZHJpdmVycy9uZXQvYm9uZGluZy9ib25kX3Byb2Nmcy5jCmluZGV4IGY3Nzk5MzIx ZGZmYi4uMDEwNTlmMWE3YmNhIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ib25kaW5nL2JvbmRf cHJvY2ZzLmMKKysrIGIvZHJpdmVycy9uZXQvYm9uZGluZy9ib25kX3Byb2Nmcy5jCkBAIC0yODcs NyArMjg3LDcgQEAgdm9pZCBib25kX2NyZWF0ZV9wcm9jX2VudHJ5KHN0cnVjdCBib25kaW5nICpi b25kKQogCiAJaWYgKGJuLT5wcm9jX2RpcikgewogCQlib25kLT5wcm9jX2VudHJ5ID0gcHJvY19j cmVhdGVfZGF0YShib25kX2Rldi0+bmFtZSwKLQkJCQkJCSAgICBTX0lSVUdPLCBibi0+cHJvY19k aXIsCisJCQkJCQkgICAgMDQ0NCwgYm4tPnByb2NfZGlyLAogCQkJCQkJICAgICZib25kX2luZm9f Zm9wcywgYm9uZCk7CiAJCWlmIChib25kLT5wcm9jX2VudHJ5ID09IE5VTEwpCiAJCQluZXRkZXZf d2Fybihib25kX2RldiwgIkNhbm5vdCBjcmVhdGUgL3Byb2MvbmV0LyVzLyVzXG4iLApkaWZmIC0t Z2l0IGEvZHJpdmVycy9uZXQvYm9uZGluZy9ib25kX3N5c2ZzLmMgYi9kcml2ZXJzL25ldC9ib25k aW5nL2JvbmRfc3lzZnMuYwppbmRleCAwNDBiNDkzZjYwYWUuLjYwOTY0NDBlOTZlYSAxMDA2NDQK LS0tIGEvZHJpdmVycy9uZXQvYm9uZGluZy9ib25kX3N5c2ZzLmMKKysrIGIvZHJpdmVycy9uZXQv Ym9uZGluZy9ib25kX3N5c2ZzLmMKQEAgLTE0Nyw3ICsxNDcsNyBAQCBzdGF0aWMgc3NpemVfdCBi b25kaW5nX3N0b3JlX2JvbmRzKHN0cnVjdCBjbGFzcyAqY2xzLAogc3RhdGljIGNvbnN0IHN0cnVj dCBjbGFzc19hdHRyaWJ1dGUgY2xhc3NfYXR0cl9ib25kaW5nX21hc3RlcnMgPSB7CiAJLmF0dHIg PSB7CiAJCS5uYW1lID0gImJvbmRpbmdfbWFzdGVycyIsCi0JCS5tb2RlID0gU19JV1VTUiB8IFNf SVJVR08sCisJCS5tb2RlID0gMDY0NCwKIAl9LAogCS5zaG93ID0gYm9uZGluZ19zaG93X2JvbmRz LAogCS5zdG9yZSA9IGJvbmRpbmdfc3RvcmVfYm9uZHMsCkBAIC0yMDIsNyArMjAyLDcgQEAgc3Rh dGljIHNzaXplX3QgYm9uZGluZ19zaG93X3NsYXZlcyhzdHJ1Y3QgZGV2aWNlICpkLAogCiAJcmV0 dXJuIHJlczsKIH0KLXN0YXRpYyBERVZJQ0VfQVRUUihzbGF2ZXMsIFNfSVJVR08gfCBTX0lXVVNS LCBib25kaW5nX3Nob3dfc2xhdmVzLAorc3RhdGljIERFVklDRV9BVFRSKHNsYXZlcywgMDY0NCwg Ym9uZGluZ19zaG93X3NsYXZlcywKIAkJICAgYm9uZGluZ19zeXNmc19zdG9yZV9vcHRpb24pOwog CiAvKiBTaG93IHRoZSBib25kaW5nIG1vZGUuICovCkBAIC0yMTYsOCArMjE2LDcgQEAgc3RhdGlj IHNzaXplX3QgYm9uZGluZ19zaG93X21vZGUoc3RydWN0IGRldmljZSAqZCwKIAogCXJldHVybiBz cHJpbnRmKGJ1ZiwgIiVzICVkXG4iLCB2YWwtPnN0cmluZywgQk9ORF9NT0RFKGJvbmQpKTsKIH0K LXN0YXRpYyBERVZJQ0VfQVRUUihtb2RlLCBTX0lSVUdPIHwgU19JV1VTUiwKLQkJICAgYm9uZGlu Z19zaG93X21vZGUsIGJvbmRpbmdfc3lzZnNfc3RvcmVfb3B0aW9uKTsKK3N0YXRpYyBERVZJQ0Vf QVRUUihtb2RlLCAwNjQ0LCBib25kaW5nX3Nob3dfbW9kZSwgYm9uZGluZ19zeXNmc19zdG9yZV9v cHRpb24pOwogCiAvKiBTaG93IHRoZSBib25kaW5nIHRyYW5zbWl0IGhhc2ggbWV0aG9kLiAqLwog c3RhdGljIHNzaXplX3QgYm9uZGluZ19zaG93X3htaXRfaGFzaChzdHJ1Y3QgZGV2aWNlICpkLApA QCAtMjMxLDcgKzIzMCw3IEBAIHN0YXRpYyBzc2l6ZV90IGJvbmRpbmdfc2hvd194bWl0X2hhc2go c3RydWN0IGRldmljZSAqZCwKIAogCXJldHVybiBzcHJpbnRmKGJ1ZiwgIiVzICVkXG4iLCB2YWwt PnN0cmluZywgYm9uZC0+cGFyYW1zLnhtaXRfcG9saWN5KTsKIH0KLXN0YXRpYyBERVZJQ0VfQVRU Uih4bWl0X2hhc2hfcG9saWN5LCBTX0lSVUdPIHwgU19JV1VTUiwKK3N0YXRpYyBERVZJQ0VfQVRU Uih4bWl0X2hhc2hfcG9saWN5LCAwNjQ0LAogCQkgICBib25kaW5nX3Nob3dfeG1pdF9oYXNoLCBi b25kaW5nX3N5c2ZzX3N0b3JlX29wdGlvbik7CiAKIC8qIFNob3cgYXJwX3ZhbGlkYXRlLiAqLwpA QCAtMjQ3LDcgKzI0Niw3IEBAIHN0YXRpYyBzc2l6ZV90IGJvbmRpbmdfc2hvd19hcnBfdmFsaWRh dGUoc3RydWN0IGRldmljZSAqZCwKIAogCXJldHVybiBzcHJpbnRmKGJ1ZiwgIiVzICVkXG4iLCB2 YWwtPnN0cmluZywgYm9uZC0+cGFyYW1zLmFycF92YWxpZGF0ZSk7CiB9Ci1zdGF0aWMgREVWSUNF X0FUVFIoYXJwX3ZhbGlkYXRlLCBTX0lSVUdPIHwgU19JV1VTUiwgYm9uZGluZ19zaG93X2FycF92 YWxpZGF0ZSwKK3N0YXRpYyBERVZJQ0VfQVRUUihhcnBfdmFsaWRhdGUsIDA2NDQsIGJvbmRpbmdf c2hvd19hcnBfdmFsaWRhdGUsCiAJCSAgIGJvbmRpbmdfc3lzZnNfc3RvcmVfb3B0aW9uKTsKIAog LyogU2hvdyBhcnBfYWxsX3RhcmdldHMuICovCkBAIC0yNjMsNyArMjYyLDcgQEAgc3RhdGljIHNz aXplX3QgYm9uZGluZ19zaG93X2FycF9hbGxfdGFyZ2V0cyhzdHJ1Y3QgZGV2aWNlICpkLAogCXJl dHVybiBzcHJpbnRmKGJ1ZiwgIiVzICVkXG4iLAogCQkgICAgICAgdmFsLT5zdHJpbmcsIGJvbmQt PnBhcmFtcy5hcnBfYWxsX3RhcmdldHMpOwogfQotc3RhdGljIERFVklDRV9BVFRSKGFycF9hbGxf dGFyZ2V0cywgU19JUlVHTyB8IFNfSVdVU1IsCitzdGF0aWMgREVWSUNFX0FUVFIoYXJwX2FsbF90 YXJnZXRzLCAwNjQ0LAogCQkgICBib25kaW5nX3Nob3dfYXJwX2FsbF90YXJnZXRzLCBib25kaW5n X3N5c2ZzX3N0b3JlX29wdGlvbik7CiAKIC8qIFNob3cgZmFpbF9vdmVyX21hYy4gKi8KQEAgLTI3 OSw3ICsyNzgsNyBAQCBzdGF0aWMgc3NpemVfdCBib25kaW5nX3Nob3dfZmFpbF9vdmVyX21hYyhz dHJ1Y3QgZGV2aWNlICpkLAogCiAJcmV0dXJuIHNwcmludGYoYnVmLCAiJXMgJWRcbiIsIHZhbC0+ c3RyaW5nLCBib25kLT5wYXJhbXMuZmFpbF9vdmVyX21hYyk7CiB9Ci1zdGF0aWMgREVWSUNFX0FU VFIoZmFpbF9vdmVyX21hYywgU19JUlVHTyB8IFNfSVdVU1IsCitzdGF0aWMgREVWSUNFX0FUVFIo ZmFpbF9vdmVyX21hYywgMDY0NCwKIAkJICAgYm9uZGluZ19zaG93X2ZhaWxfb3Zlcl9tYWMsIGJv bmRpbmdfc3lzZnNfc3RvcmVfb3B0aW9uKTsKIAogLyogU2hvdyB0aGUgYXJwIHRpbWVyIGludGVy dmFsLiAqLwpAQCAtMjkxLDcgKzI5MCw3IEBAIHN0YXRpYyBzc2l6ZV90IGJvbmRpbmdfc2hvd19h cnBfaW50ZXJ2YWwoc3RydWN0IGRldmljZSAqZCwKIAogCXJldHVybiBzcHJpbnRmKGJ1ZiwgIiVk XG4iLCBib25kLT5wYXJhbXMuYXJwX2ludGVydmFsKTsKIH0KLXN0YXRpYyBERVZJQ0VfQVRUUihh cnBfaW50ZXJ2YWwsIFNfSVJVR08gfCBTX0lXVVNSLAorc3RhdGljIERFVklDRV9BVFRSKGFycF9p bnRlcnZhbCwgMDY0NCwKIAkJICAgYm9uZGluZ19zaG93X2FycF9pbnRlcnZhbCwgYm9uZGluZ19z eXNmc19zdG9yZV9vcHRpb24pOwogCiAvKiBTaG93IHRoZSBhcnAgdGFyZ2V0cy4gKi8KQEAgLTMx Miw3ICszMTEsNyBAQCBzdGF0aWMgc3NpemVfdCBib25kaW5nX3Nob3dfYXJwX3RhcmdldHMoc3Ry dWN0IGRldmljZSAqZCwKIAogCXJldHVybiByZXM7CiB9Ci1zdGF0aWMgREVWSUNFX0FUVFIoYXJw X2lwX3RhcmdldCwgU19JUlVHTyB8IFNfSVdVU1IsCitzdGF0aWMgREVWSUNFX0FUVFIoYXJwX2lw X3RhcmdldCwgMDY0NCwKIAkJICAgYm9uZGluZ19zaG93X2FycF90YXJnZXRzLCBib25kaW5nX3N5 c2ZzX3N0b3JlX29wdGlvbik7CiAKIC8qIFNob3cgdGhlIHVwIGFuZCBkb3duIGRlbGF5cy4gKi8K QEAgLTMyNCw3ICszMjMsNyBAQCBzdGF0aWMgc3NpemVfdCBib25kaW5nX3Nob3dfZG93bmRlbGF5 KHN0cnVjdCBkZXZpY2UgKmQsCiAKIAlyZXR1cm4gc3ByaW50ZihidWYsICIlZFxuIiwgYm9uZC0+ cGFyYW1zLmRvd25kZWxheSAqIGJvbmQtPnBhcmFtcy5taWltb24pOwogfQotc3RhdGljIERFVklD RV9BVFRSKGRvd25kZWxheSwgU19JUlVHTyB8IFNfSVdVU1IsCitzdGF0aWMgREVWSUNFX0FUVFIo ZG93bmRlbGF5LCAwNjQ0LAogCQkgICBib25kaW5nX3Nob3dfZG93bmRlbGF5LCBib25kaW5nX3N5 c2ZzX3N0b3JlX29wdGlvbik7CiAKIHN0YXRpYyBzc2l6ZV90IGJvbmRpbmdfc2hvd191cGRlbGF5 KHN0cnVjdCBkZXZpY2UgKmQsCkBAIC0zMzYsNyArMzM1LDcgQEAgc3RhdGljIHNzaXplX3QgYm9u ZGluZ19zaG93X3VwZGVsYXkoc3RydWN0IGRldmljZSAqZCwKIAlyZXR1cm4gc3ByaW50ZihidWYs ICIlZFxuIiwgYm9uZC0+cGFyYW1zLnVwZGVsYXkgKiBib25kLT5wYXJhbXMubWlpbW9uKTsKIAog fQotc3RhdGljIERFVklDRV9BVFRSKHVwZGVsYXksIFNfSVJVR08gfCBTX0lXVVNSLAorc3RhdGlj IERFVklDRV9BVFRSKHVwZGVsYXksIDA2NDQsCiAJCSAgIGJvbmRpbmdfc2hvd191cGRlbGF5LCBi b25kaW5nX3N5c2ZzX3N0b3JlX29wdGlvbik7CiAKIC8qIFNob3cgdGhlIExBQ1AgaW50ZXJ2YWwu ICovCkBAIC0zNTEsNyArMzUwLDcgQEAgc3RhdGljIHNzaXplX3QgYm9uZGluZ19zaG93X2xhY3Ao c3RydWN0IGRldmljZSAqZCwKIAogCXJldHVybiBzcHJpbnRmKGJ1ZiwgIiVzICVkXG4iLCB2YWwt PnN0cmluZywgYm9uZC0+cGFyYW1zLmxhY3BfZmFzdCk7CiB9Ci1zdGF0aWMgREVWSUNFX0FUVFIo bGFjcF9yYXRlLCBTX0lSVUdPIHwgU19JV1VTUiwKK3N0YXRpYyBERVZJQ0VfQVRUUihsYWNwX3Jh dGUsIDA2NDQsCiAJCSAgIGJvbmRpbmdfc2hvd19sYWNwLCBib25kaW5nX3N5c2ZzX3N0b3JlX29w dGlvbik7CiAKIHN0YXRpYyBzc2l6ZV90IGJvbmRpbmdfc2hvd19taW5fbGlua3Moc3RydWN0IGRl dmljZSAqZCwKQEAgLTM2Miw3ICszNjEsNyBAQCBzdGF0aWMgc3NpemVfdCBib25kaW5nX3Nob3df bWluX2xpbmtzKHN0cnVjdCBkZXZpY2UgKmQsCiAKIAlyZXR1cm4gc3ByaW50ZihidWYsICIldVxu IiwgYm9uZC0+cGFyYW1zLm1pbl9saW5rcyk7CiB9Ci1zdGF0aWMgREVWSUNFX0FUVFIobWluX2xp bmtzLCBTX0lSVUdPIHwgU19JV1VTUiwKK3N0YXRpYyBERVZJQ0VfQVRUUihtaW5fbGlua3MsIDA2 NDQsCiAJCSAgIGJvbmRpbmdfc2hvd19taW5fbGlua3MsIGJvbmRpbmdfc3lzZnNfc3RvcmVfb3B0 aW9uKTsKIAogc3RhdGljIHNzaXplX3QgYm9uZGluZ19zaG93X2FkX3NlbGVjdChzdHJ1Y3QgZGV2 aWNlICpkLApAQCAtMzc2LDcgKzM3NSw3IEBAIHN0YXRpYyBzc2l6ZV90IGJvbmRpbmdfc2hvd19h ZF9zZWxlY3Qoc3RydWN0IGRldmljZSAqZCwKIAogCXJldHVybiBzcHJpbnRmKGJ1ZiwgIiVzICVk XG4iLCB2YWwtPnN0cmluZywgYm9uZC0+cGFyYW1zLmFkX3NlbGVjdCk7CiB9Ci1zdGF0aWMgREVW SUNFX0FUVFIoYWRfc2VsZWN0LCBTX0lSVUdPIHwgU19JV1VTUiwKK3N0YXRpYyBERVZJQ0VfQVRU UihhZF9zZWxlY3QsIDA2NDQsCiAJCSAgIGJvbmRpbmdfc2hvd19hZF9zZWxlY3QsIGJvbmRpbmdf c3lzZnNfc3RvcmVfb3B0aW9uKTsKIAogLyogU2hvdyB0aGUgbnVtYmVyIG9mIHBlZXIgbm90aWZp Y2F0aW9ucyB0byBzZW5kIGFmdGVyIGEgZmFpbG92ZXIgZXZlbnQuICovCkBAIC0zODcsOSArMzg2 LDkgQEAgc3RhdGljIHNzaXplX3QgYm9uZGluZ19zaG93X251bV9wZWVyX25vdGlmKHN0cnVjdCBk ZXZpY2UgKmQsCiAJc3RydWN0IGJvbmRpbmcgKmJvbmQgPSB0b19ib25kKGQpOwogCXJldHVybiBz cHJpbnRmKGJ1ZiwgIiVkXG4iLCBib25kLT5wYXJhbXMubnVtX3BlZXJfbm90aWYpOwogfQotc3Rh dGljIERFVklDRV9BVFRSKG51bV9ncmF0X2FycCwgU19JUlVHTyB8IFNfSVdVU1IsCitzdGF0aWMg REVWSUNFX0FUVFIobnVtX2dyYXRfYXJwLCAwNjQ0LAogCQkgICBib25kaW5nX3Nob3dfbnVtX3Bl ZXJfbm90aWYsIGJvbmRpbmdfc3lzZnNfc3RvcmVfb3B0aW9uKTsKLXN0YXRpYyBERVZJQ0VfQVRU UihudW1fdW5zb2xfbmEsIFNfSVJVR08gfCBTX0lXVVNSLAorc3RhdGljIERFVklDRV9BVFRSKG51 bV91bnNvbF9uYSwgMDY0NCwKIAkJICAgYm9uZGluZ19zaG93X251bV9wZWVyX25vdGlmLCBib25k aW5nX3N5c2ZzX3N0b3JlX29wdGlvbik7CiAKIC8qIFNob3cgdGhlIE1JSSBtb25pdG9yIGludGVy dmFsLiAqLwpAQCAtNDAxLDcgKzQwMCw3IEBAIHN0YXRpYyBzc2l6ZV90IGJvbmRpbmdfc2hvd19t aWltb24oc3RydWN0IGRldmljZSAqZCwKIAogCXJldHVybiBzcHJpbnRmKGJ1ZiwgIiVkXG4iLCBi b25kLT5wYXJhbXMubWlpbW9uKTsKIH0KLXN0YXRpYyBERVZJQ0VfQVRUUihtaWltb24sIFNfSVJV R08gfCBTX0lXVVNSLAorc3RhdGljIERFVklDRV9BVFRSKG1paW1vbiwgMDY0NCwKIAkJICAgYm9u ZGluZ19zaG93X21paW1vbiwgYm9uZGluZ19zeXNmc19zdG9yZV9vcHRpb24pOwogCiAvKiBTaG93 IHRoZSBwcmltYXJ5IHNsYXZlLiAqLwpAQCAtNDIxLDcgKzQyMCw3IEBAIHN0YXRpYyBzc2l6ZV90 IGJvbmRpbmdfc2hvd19wcmltYXJ5KHN0cnVjdCBkZXZpY2UgKmQsCiAKIAlyZXR1cm4gY291bnQ7 CiB9Ci1zdGF0aWMgREVWSUNFX0FUVFIocHJpbWFyeSwgU19JUlVHTyB8IFNfSVdVU1IsCitzdGF0 aWMgREVWSUNFX0FUVFIocHJpbWFyeSwgMDY0NCwKIAkJICAgYm9uZGluZ19zaG93X3ByaW1hcnks IGJvbmRpbmdfc3lzZnNfc3RvcmVfb3B0aW9uKTsKIAogLyogU2hvdyB0aGUgcHJpbWFyeV9yZXNl bGVjdCBmbGFnLiAqLwpAQCAtNDM4LDcgKzQzNyw3IEBAIHN0YXRpYyBzc2l6ZV90IGJvbmRpbmdf c2hvd19wcmltYXJ5X3Jlc2VsZWN0KHN0cnVjdCBkZXZpY2UgKmQsCiAJcmV0dXJuIHNwcmludGYo YnVmLCAiJXMgJWRcbiIsCiAJCSAgICAgICB2YWwtPnN0cmluZywgYm9uZC0+cGFyYW1zLnByaW1h cnlfcmVzZWxlY3QpOwogfQotc3RhdGljIERFVklDRV9BVFRSKHByaW1hcnlfcmVzZWxlY3QsIFNf SVJVR08gfCBTX0lXVVNSLAorc3RhdGljIERFVklDRV9BVFRSKHByaW1hcnlfcmVzZWxlY3QsIDA2 NDQsCiAJCSAgIGJvbmRpbmdfc2hvd19wcmltYXJ5X3Jlc2VsZWN0LCBib25kaW5nX3N5c2ZzX3N0 b3JlX29wdGlvbik7CiAKIC8qIFNob3cgdGhlIHVzZV9jYXJyaWVyIGZsYWcuICovCkBAIC00NTAs NyArNDQ5LDcgQEAgc3RhdGljIHNzaXplX3QgYm9uZGluZ19zaG93X2NhcnJpZXIoc3RydWN0IGRl dmljZSAqZCwKIAogCXJldHVybiBzcHJpbnRmKGJ1ZiwgIiVkXG4iLCBib25kLT5wYXJhbXMudXNl X2NhcnJpZXIpOwogfQotc3RhdGljIERFVklDRV9BVFRSKHVzZV9jYXJyaWVyLCBTX0lSVUdPIHwg U19JV1VTUiwKK3N0YXRpYyBERVZJQ0VfQVRUUih1c2VfY2FycmllciwgMDY0NCwKIAkJICAgYm9u ZGluZ19zaG93X2NhcnJpZXIsIGJvbmRpbmdfc3lzZnNfc3RvcmVfb3B0aW9uKTsKIAogCkBAIC00 NzEsNyArNDcwLDcgQEAgc3RhdGljIHNzaXplX3QgYm9uZGluZ19zaG93X2FjdGl2ZV9zbGF2ZShz dHJ1Y3QgZGV2aWNlICpkLAogCiAJcmV0dXJuIGNvdW50OwogfQotc3RhdGljIERFVklDRV9BVFRS KGFjdGl2ZV9zbGF2ZSwgU19JUlVHTyB8IFNfSVdVU1IsCitzdGF0aWMgREVWSUNFX0FUVFIoYWN0 aXZlX3NsYXZlLCAwNjQ0LAogCQkgICBib25kaW5nX3Nob3dfYWN0aXZlX3NsYXZlLCBib25kaW5n X3N5c2ZzX3N0b3JlX29wdGlvbik7CiAKIC8qIFNob3cgbGluayBzdGF0dXMgb2YgdGhlIGJvbmQg aW50ZXJmYWNlLiAqLwpAQCAtNDg0LDcgKzQ4Myw3IEBAIHN0YXRpYyBzc2l6ZV90IGJvbmRpbmdf c2hvd19taWlfc3RhdHVzKHN0cnVjdCBkZXZpY2UgKmQsCiAKIAlyZXR1cm4gc3ByaW50ZihidWYs ICIlc1xuIiwgYWN0aXZlID8gInVwIiA6ICJkb3duIik7CiB9Ci1zdGF0aWMgREVWSUNFX0FUVFIo bWlpX3N0YXR1cywgU19JUlVHTywgYm9uZGluZ19zaG93X21paV9zdGF0dXMsIE5VTEwpOworc3Rh dGljIERFVklDRV9BVFRSKG1paV9zdGF0dXMsIDA0NDQsIGJvbmRpbmdfc2hvd19taWlfc3RhdHVz LCBOVUxMKTsKIAogLyogU2hvdyBjdXJyZW50IDgwMi4zYWQgYWdncmVnYXRvciBJRC4gKi8KIHN0 YXRpYyBzc2l6ZV90IGJvbmRpbmdfc2hvd19hZF9hZ2dyZWdhdG9yKHN0cnVjdCBkZXZpY2UgKmQs CkBAIC01MDMsNyArNTAyLDcgQEAgc3RhdGljIHNzaXplX3QgYm9uZGluZ19zaG93X2FkX2FnZ3Jl Z2F0b3Ioc3RydWN0IGRldmljZSAqZCwKIAogCXJldHVybiBjb3VudDsKIH0KLXN0YXRpYyBERVZJ Q0VfQVRUUihhZF9hZ2dyZWdhdG9yLCBTX0lSVUdPLCBib25kaW5nX3Nob3dfYWRfYWdncmVnYXRv ciwgTlVMTCk7CitzdGF0aWMgREVWSUNFX0FUVFIoYWRfYWdncmVnYXRvciwgMDQ0NCwgYm9uZGlu Z19zaG93X2FkX2FnZ3JlZ2F0b3IsIE5VTEwpOwogCiAKIC8qIFNob3cgbnVtYmVyIG9mIGFjdGl2 ZSA4MDIuM2FkIHBvcnRzLiAqLwpAQCAtNTIzLDcgKzUyMiw3IEBAIHN0YXRpYyBzc2l6ZV90IGJv bmRpbmdfc2hvd19hZF9udW1fcG9ydHMoc3RydWN0IGRldmljZSAqZCwKIAogCXJldHVybiBjb3Vu dDsKIH0KLXN0YXRpYyBERVZJQ0VfQVRUUihhZF9udW1fcG9ydHMsIFNfSVJVR08sIGJvbmRpbmdf c2hvd19hZF9udW1fcG9ydHMsIE5VTEwpOworc3RhdGljIERFVklDRV9BVFRSKGFkX251bV9wb3J0 cywgMDQ0NCwgYm9uZGluZ19zaG93X2FkX251bV9wb3J0cywgTlVMTCk7CiAKIAogLyogU2hvdyBj dXJyZW50IDgwMi4zYWQgYWN0b3Iga2V5LiAqLwpAQCAtNTQzLDcgKzU0Miw3IEBAIHN0YXRpYyBz c2l6ZV90IGJvbmRpbmdfc2hvd19hZF9hY3Rvcl9rZXkoc3RydWN0IGRldmljZSAqZCwKIAogCXJl dHVybiBjb3VudDsKIH0KLXN0YXRpYyBERVZJQ0VfQVRUUihhZF9hY3Rvcl9rZXksIFNfSVJVR08s IGJvbmRpbmdfc2hvd19hZF9hY3Rvcl9rZXksIE5VTEwpOworc3RhdGljIERFVklDRV9BVFRSKGFk X2FjdG9yX2tleSwgMDQ0NCwgYm9uZGluZ19zaG93X2FkX2FjdG9yX2tleSwgTlVMTCk7CiAKIAog LyogU2hvdyBjdXJyZW50IDgwMi4zYWQgcGFydG5lciBrZXkuICovCkBAIC01NjMsNyArNTYyLDcg QEAgc3RhdGljIHNzaXplX3QgYm9uZGluZ19zaG93X2FkX3BhcnRuZXJfa2V5KHN0cnVjdCBkZXZp Y2UgKmQsCiAKIAlyZXR1cm4gY291bnQ7CiB9Ci1zdGF0aWMgREVWSUNFX0FUVFIoYWRfcGFydG5l cl9rZXksIFNfSVJVR08sIGJvbmRpbmdfc2hvd19hZF9wYXJ0bmVyX2tleSwgTlVMTCk7CitzdGF0 aWMgREVWSUNFX0FUVFIoYWRfcGFydG5lcl9rZXksIDA0NDQsIGJvbmRpbmdfc2hvd19hZF9wYXJ0 bmVyX2tleSwgTlVMTCk7CiAKIAogLyogU2hvdyBjdXJyZW50IDgwMi4zYWQgcGFydG5lciBtYWMu ICovCkBAIC01ODIsNyArNTgxLDcgQEAgc3RhdGljIHNzaXplX3QgYm9uZGluZ19zaG93X2FkX3Bh cnRuZXJfbWFjKHN0cnVjdCBkZXZpY2UgKmQsCiAKIAlyZXR1cm4gY291bnQ7CiB9Ci1zdGF0aWMg REVWSUNFX0FUVFIoYWRfcGFydG5lcl9tYWMsIFNfSVJVR08sIGJvbmRpbmdfc2hvd19hZF9wYXJ0 bmVyX21hYywgTlVMTCk7CitzdGF0aWMgREVWSUNFX0FUVFIoYWRfcGFydG5lcl9tYWMsIDA0NDQs IGJvbmRpbmdfc2hvd19hZF9wYXJ0bmVyX21hYywgTlVMTCk7CiAKIC8qIFNob3cgdGhlIHF1ZXVl X2lkcyBvZiB0aGUgc2xhdmVzIGluIHRoZSBjdXJyZW50IGJvbmQuICovCiBzdGF0aWMgc3NpemVf dCBib25kaW5nX3Nob3dfcXVldWVfaWQoc3RydWN0IGRldmljZSAqZCwKQEAgLTYxNSw3ICs2MTQs NyBAQCBzdGF0aWMgc3NpemVfdCBib25kaW5nX3Nob3dfcXVldWVfaWQoc3RydWN0IGRldmljZSAq ZCwKIAogCXJldHVybiByZXM7CiB9Ci1zdGF0aWMgREVWSUNFX0FUVFIocXVldWVfaWQsIFNfSVJV R08gfCBTX0lXVVNSLCBib25kaW5nX3Nob3dfcXVldWVfaWQsCitzdGF0aWMgREVWSUNFX0FUVFIo cXVldWVfaWQsIDA2NDQsIGJvbmRpbmdfc2hvd19xdWV1ZV9pZCwKIAkJICAgYm9uZGluZ19zeXNm c19zdG9yZV9vcHRpb24pOwogCiAKQEAgLTYyOCw3ICs2MjcsNyBAQCBzdGF0aWMgc3NpemVfdCBi b25kaW5nX3Nob3dfc2xhdmVzX2FjdGl2ZShzdHJ1Y3QgZGV2aWNlICpkLAogCiAJcmV0dXJuIHNw cmludGYoYnVmLCAiJWRcbiIsIGJvbmQtPnBhcmFtcy5hbGxfc2xhdmVzX2FjdGl2ZSk7CiB9Ci1z dGF0aWMgREVWSUNFX0FUVFIoYWxsX3NsYXZlc19hY3RpdmUsIFNfSVJVR08gfCBTX0lXVVNSLAor c3RhdGljIERFVklDRV9BVFRSKGFsbF9zbGF2ZXNfYWN0aXZlLCAwNjQ0LAogCQkgICBib25kaW5n X3Nob3dfc2xhdmVzX2FjdGl2ZSwgYm9uZGluZ19zeXNmc19zdG9yZV9vcHRpb24pOwogCiAvKiBT aG93IHRoZSBudW1iZXIgb2YgSUdNUCBtZW1iZXJzaGlwIHJlcG9ydHMgdG8gc2VuZCBvbiBsaW5r IGZhaWx1cmUgKi8KQEAgLTY0MCw3ICs2MzksNyBAQCBzdGF0aWMgc3NpemVfdCBib25kaW5nX3No b3dfcmVzZW5kX2lnbXAoc3RydWN0IGRldmljZSAqZCwKIAogCXJldHVybiBzcHJpbnRmKGJ1Ziwg IiVkXG4iLCBib25kLT5wYXJhbXMucmVzZW5kX2lnbXApOwogfQotc3RhdGljIERFVklDRV9BVFRS KHJlc2VuZF9pZ21wLCBTX0lSVUdPIHwgU19JV1VTUiwKK3N0YXRpYyBERVZJQ0VfQVRUUihyZXNl bmRfaWdtcCwgMDY0NCwKIAkJICAgYm9uZGluZ19zaG93X3Jlc2VuZF9pZ21wLCBib25kaW5nX3N5 c2ZzX3N0b3JlX29wdGlvbik7CiAKIApAQCAtNjUyLDcgKzY1MSw3IEBAIHN0YXRpYyBzc2l6ZV90 IGJvbmRpbmdfc2hvd19scF9pbnRlcnZhbChzdHJ1Y3QgZGV2aWNlICpkLAogCiAJcmV0dXJuIHNw cmludGYoYnVmLCAiJWRcbiIsIGJvbmQtPnBhcmFtcy5scF9pbnRlcnZhbCk7CiB9Ci1zdGF0aWMg REVWSUNFX0FUVFIobHBfaW50ZXJ2YWwsIFNfSVJVR08gfCBTX0lXVVNSLAorc3RhdGljIERFVklD RV9BVFRSKGxwX2ludGVydmFsLCAwNjQ0LAogCQkgICBib25kaW5nX3Nob3dfbHBfaW50ZXJ2YWws IGJvbmRpbmdfc3lzZnNfc3RvcmVfb3B0aW9uKTsKIAogc3RhdGljIHNzaXplX3QgYm9uZGluZ19z aG93X3RsYl9keW5hbWljX2xiKHN0cnVjdCBkZXZpY2UgKmQsCkBAIC02NjIsNyArNjYxLDcgQEAg c3RhdGljIHNzaXplX3QgYm9uZGluZ19zaG93X3RsYl9keW5hbWljX2xiKHN0cnVjdCBkZXZpY2Ug KmQsCiAJc3RydWN0IGJvbmRpbmcgKmJvbmQgPSB0b19ib25kKGQpOwogCXJldHVybiBzcHJpbnRm KGJ1ZiwgIiVkXG4iLCBib25kLT5wYXJhbXMudGxiX2R5bmFtaWNfbGIpOwogfQotc3RhdGljIERF VklDRV9BVFRSKHRsYl9keW5hbWljX2xiLCBTX0lSVUdPIHwgU19JV1VTUiwKK3N0YXRpYyBERVZJ Q0VfQVRUUih0bGJfZHluYW1pY19sYiwgMDY0NCwKIAkJICAgYm9uZGluZ19zaG93X3RsYl9keW5h bWljX2xiLCBib25kaW5nX3N5c2ZzX3N0b3JlX29wdGlvbik7CiAKIHN0YXRpYyBzc2l6ZV90IGJv bmRpbmdfc2hvd19wYWNrZXRzX3Blcl9zbGF2ZShzdHJ1Y3QgZGV2aWNlICpkLApAQCAtNjc0LDcg KzY3Myw3IEBAIHN0YXRpYyBzc2l6ZV90IGJvbmRpbmdfc2hvd19wYWNrZXRzX3Blcl9zbGF2ZShz dHJ1Y3QgZGV2aWNlICpkLAogCiAJcmV0dXJuIHNwcmludGYoYnVmLCAiJXVcbiIsIHBhY2tldHNf cGVyX3NsYXZlKTsKIH0KLXN0YXRpYyBERVZJQ0VfQVRUUihwYWNrZXRzX3Blcl9zbGF2ZSwgU19J UlVHTyB8IFNfSVdVU1IsCitzdGF0aWMgREVWSUNFX0FUVFIocGFja2V0c19wZXJfc2xhdmUsIDA2 NDQsCiAJCSAgIGJvbmRpbmdfc2hvd19wYWNrZXRzX3Blcl9zbGF2ZSwgYm9uZGluZ19zeXNmc19z dG9yZV9vcHRpb24pOwogCiBzdGF0aWMgc3NpemVfdCBib25kaW5nX3Nob3dfYWRfYWN0b3Jfc3lz X3ByaW8oc3RydWN0IGRldmljZSAqZCwKQEAgLTY4OCw3ICs2ODcsNyBAQCBzdGF0aWMgc3NpemVf dCBib25kaW5nX3Nob3dfYWRfYWN0b3Jfc3lzX3ByaW8oc3RydWN0IGRldmljZSAqZCwKIAogCXJl dHVybiAwOwogfQotc3RhdGljIERFVklDRV9BVFRSKGFkX2FjdG9yX3N5c19wcmlvLCBTX0lSVUdP IHwgU19JV1VTUiwKK3N0YXRpYyBERVZJQ0VfQVRUUihhZF9hY3Rvcl9zeXNfcHJpbywgMDY0NCwK IAkJICAgYm9uZGluZ19zaG93X2FkX2FjdG9yX3N5c19wcmlvLCBib25kaW5nX3N5c2ZzX3N0b3Jl X29wdGlvbik7CiAKIHN0YXRpYyBzc2l6ZV90IGJvbmRpbmdfc2hvd19hZF9hY3Rvcl9zeXN0ZW0o c3RydWN0IGRldmljZSAqZCwKQEAgLTcwMyw3ICs3MDIsNyBAQCBzdGF0aWMgc3NpemVfdCBib25k aW5nX3Nob3dfYWRfYWN0b3Jfc3lzdGVtKHN0cnVjdCBkZXZpY2UgKmQsCiAJcmV0dXJuIDA7CiB9 CiAKLXN0YXRpYyBERVZJQ0VfQVRUUihhZF9hY3Rvcl9zeXN0ZW0sIFNfSVJVR08gfCBTX0lXVVNS LAorc3RhdGljIERFVklDRV9BVFRSKGFkX2FjdG9yX3N5c3RlbSwgMDY0NCwKIAkJICAgYm9uZGlu Z19zaG93X2FkX2FjdG9yX3N5c3RlbSwgYm9uZGluZ19zeXNmc19zdG9yZV9vcHRpb24pOwogCiBz dGF0aWMgc3NpemVfdCBib25kaW5nX3Nob3dfYWRfdXNlcl9wb3J0X2tleShzdHJ1Y3QgZGV2aWNl ICpkLApAQCAtNzE3LDcgKzcxNiw3IEBAIHN0YXRpYyBzc2l6ZV90IGJvbmRpbmdfc2hvd19hZF91 c2VyX3BvcnRfa2V5KHN0cnVjdCBkZXZpY2UgKmQsCiAKIAlyZXR1cm4gMDsKIH0KLXN0YXRpYyBE RVZJQ0VfQVRUUihhZF91c2VyX3BvcnRfa2V5LCBTX0lSVUdPIHwgU19JV1VTUiwKK3N0YXRpYyBE RVZJQ0VfQVRUUihhZF91c2VyX3BvcnRfa2V5LCAwNjQ0LAogCQkgICBib25kaW5nX3Nob3dfYWRf dXNlcl9wb3J0X2tleSwgYm9uZGluZ19zeXNmc19zdG9yZV9vcHRpb24pOwogCiBzdGF0aWMgc3Ry dWN0IGF0dHJpYnV0ZSAqcGVyX2JvbmRfYXR0cnNbXSA9IHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMv bmV0L2JvbmRpbmcvYm9uZF9zeXNmc19zbGF2ZS5jIGIvZHJpdmVycy9uZXQvYm9uZGluZy9ib25k X3N5c2ZzX3NsYXZlLmMKaW5kZXggN2QxNmM1MWU2OTEzLi4yZjEyMGIyZmZlZjAgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvbmV0L2JvbmRpbmcvYm9uZF9zeXNmc19zbGF2ZS5jCisrKyBiL2RyaXZlcnMv bmV0L2JvbmRpbmcvYm9uZF9zeXNmc19zbGF2ZS5jCkBAIC0yNSw4ICsyNSw4IEBAIGNvbnN0IHN0 cnVjdCBzbGF2ZV9hdHRyaWJ1dGUgc2xhdmVfYXR0cl8jI19uYW1lID0gewkJXAogCQkgLm1vZGUg PSBfbW9kZSB9LAkJCQlcCiAJLnNob3cJPSBfc2hvdywJCQkJCVwKIH07Ci0jZGVmaW5lIFNMQVZF X0FUVFJfUk8oX25hbWUpIFwKLQlTTEFWRV9BVFRSKF9uYW1lLCBTX0lSVUdPLCBfbmFtZSMjX3No b3cpCisjZGVmaW5lIFNMQVZFX0FUVFJfUk8oX25hbWUpCQkJCQlcCisJU0xBVkVfQVRUUihfbmFt ZSwgMDQ0NCwgX25hbWUjI19zaG93KQogCiBzdGF0aWMgc3NpemVfdCBzdGF0ZV9zaG93KHN0cnVj dCBzbGF2ZSAqc2xhdmUsIGNoYXIgKmJ1ZikKIHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2Nh aWYvY2FpZl9zZXJpYWwuYyBiL2RyaXZlcnMvbmV0L2NhaWYvY2FpZl9zZXJpYWwuYwppbmRleCA3 MDk4MzhlNGMwNjIuLmEwZjk1NGYzNmMwOSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvY2FpZi9j YWlmX3NlcmlhbC5jCisrKyBiL2RyaXZlcnMvbmV0L2NhaWYvY2FpZl9zZXJpYWwuYwpAQCAtNDAs MjAgKzQwLDIwIEBAIHN0YXRpYyBMSVNUX0hFQUQoc2VyX2xpc3QpOwogc3RhdGljIExJU1RfSEVB RChzZXJfcmVsZWFzZV9saXN0KTsKIAogc3RhdGljIGJvb2wgc2VyX2xvb3A7Ci1tb2R1bGVfcGFy YW0oc2VyX2xvb3AsIGJvb2wsIFNfSVJVR08pOworbW9kdWxlX3BhcmFtKHNlcl9sb29wLCBib29s LCAwNDQ0KTsKIE1PRFVMRV9QQVJNX0RFU0Moc2VyX2xvb3AsICJSdW4gaW4gc2ltdWxhdGVkIGxv b3BiYWNrIG1vZGUuIik7CiAKIHN0YXRpYyBib29sIHNlcl91c2Vfc3R4ID0gdHJ1ZTsKLW1vZHVs ZV9wYXJhbShzZXJfdXNlX3N0eCwgYm9vbCwgU19JUlVHTyk7Cittb2R1bGVfcGFyYW0oc2VyX3Vz ZV9zdHgsIGJvb2wsIDA0NDQpOwogTU9EVUxFX1BBUk1fREVTQyhzZXJfdXNlX3N0eCwgIlNUWCBl bmFibGVkIG9yIG5vdC4iKTsKIAogc3RhdGljIGJvb2wgc2VyX3VzZV9mY3MgPSB0cnVlOwogCi1t b2R1bGVfcGFyYW0oc2VyX3VzZV9mY3MsIGJvb2wsIFNfSVJVR08pOworbW9kdWxlX3BhcmFtKHNl cl91c2VfZmNzLCBib29sLCAwNDQ0KTsKIE1PRFVMRV9QQVJNX0RFU0Moc2VyX3VzZV9mY3MsICJG Q1MgZW5hYmxlZCBvciBub3QuIik7CiAKIHN0YXRpYyBpbnQgc2VyX3dyaXRlX2NodW5rID0gTUFY X1dSSVRFX0NIVU5LOwotbW9kdWxlX3BhcmFtKHNlcl93cml0ZV9jaHVuaywgaW50LCBTX0lSVUdP KTsKK21vZHVsZV9wYXJhbShzZXJfd3JpdGVfY2h1bmssIGludCwgMDQ0NCk7CiAKIE1PRFVMRV9Q QVJNX0RFU0Moc2VyX3dyaXRlX2NodW5rLCAiTWF4aW11bSBzaXplIG9mIGRhdGEgd3JpdHRlbiB0 byBVQVJULiIpOwogCkBAIC05NywyMSArOTcsMjEgQEAgc3RhdGljIGlubGluZSB2b2lkIGRlYnVn ZnNfaW5pdChzdHJ1Y3Qgc2VyX2RldmljZSAqc2VyLCBzdHJ1Y3QgdHR5X3N0cnVjdCAqdHR5KQog CXNlci0+ZGVidWdmc190dHlfZGlyID0KIAkJCWRlYnVnZnNfY3JlYXRlX2Rpcih0dHktPm5hbWUs IGRlYnVnZnNkaXIpOwogCWlmICghSVNfRVJSKHNlci0+ZGVidWdmc190dHlfZGlyKSkgewotCQlk ZWJ1Z2ZzX2NyZWF0ZV9ibG9iKCJsYXN0X3R4X21zZyIsIFNfSVJVU1IsCi0JCQkJc2VyLT5kZWJ1 Z2ZzX3R0eV9kaXIsCi0JCQkJJnNlci0+dHhfYmxvYik7CisJCWRlYnVnZnNfY3JlYXRlX2Jsb2Io Imxhc3RfdHhfbXNnIiwgMDQwMCwKKwkJCQkgICAgc2VyLT5kZWJ1Z2ZzX3R0eV9kaXIsCisJCQkJ ICAgICZzZXItPnR4X2Jsb2IpOwogCi0JCWRlYnVnZnNfY3JlYXRlX2Jsb2IoImxhc3RfcnhfbXNn IiwgU19JUlVTUiwKLQkJCQlzZXItPmRlYnVnZnNfdHR5X2RpciwKLQkJCQkmc2VyLT5yeF9ibG9i KTsKKwkJZGVidWdmc19jcmVhdGVfYmxvYigibGFzdF9yeF9tc2ciLCAwNDAwLAorCQkJCSAgICBz ZXItPmRlYnVnZnNfdHR5X2RpciwKKwkJCQkgICAgJnNlci0+cnhfYmxvYik7CiAKLQkJZGVidWdm c19jcmVhdGVfeDMyKCJzZXJfc3RhdGUiLCBTX0lSVVNSLAotCQkJCXNlci0+ZGVidWdmc190dHlf ZGlyLAotCQkJCSh1MzIgKikmc2VyLT5zdGF0ZSk7CisJCWRlYnVnZnNfY3JlYXRlX3gzMigic2Vy X3N0YXRlIiwgMDQwMCwKKwkJCQkgICBzZXItPmRlYnVnZnNfdHR5X2RpciwKKwkJCQkgICAodTMy ICopJnNlci0+c3RhdGUpOwogCi0JCWRlYnVnZnNfY3JlYXRlX3g4KCJ0dHlfc3RhdHVzIiwgU19J UlVTUiwKLQkJCQlzZXItPmRlYnVnZnNfdHR5X2RpciwKLQkJCQkmc2VyLT50dHlfc3RhdHVzKTsK KwkJZGVidWdmc19jcmVhdGVfeDgoInR0eV9zdGF0dXMiLCAwNDAwLAorCQkJCSAgc2VyLT5kZWJ1 Z2ZzX3R0eV9kaXIsCisJCQkJICAmc2VyLT50dHlfc3RhdHVzKTsKIAogCX0KIAlzZXItPnR4X2Js b2IuZGF0YSA9IHNlci0+dHhfZGF0YTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2NhaWYvY2Fp Zl9zcGkuYyBiL2RyaXZlcnMvbmV0L2NhaWYvY2FpZl9zcGkuYwppbmRleCA5ODBlYWNlNTNkNDQu LmQyOGExMzk4YzA5MSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvY2FpZi9jYWlmX3NwaS5jCisr KyBiL2RyaXZlcnMvbmV0L2NhaWYvY2FpZl9zcGkuYwpAQCAtMzUsMjcgKzM1LDI3IEBAIE1PRFVM RV9ERVNDUklQVElPTigiQ0FJRiBTUEkgZHJpdmVyIik7CiAjZGVmaW5lIFBBRF9QT1cyKHgsIHBv dykgKCgoKHgpJigocG93KS0xKSk9PTApID8gMCA6ICgoKHBvdyktKCh4KSYoKHBvdyktMSkpKSkp CiAKIHN0YXRpYyBib29sIHNwaV9sb29wOwotbW9kdWxlX3BhcmFtKHNwaV9sb29wLCBib29sLCBT X0lSVUdPKTsKK21vZHVsZV9wYXJhbShzcGlfbG9vcCwgYm9vbCwgMDQ0NCk7CiBNT0RVTEVfUEFS TV9ERVNDKHNwaV9sb29wLCAiU1BJIHJ1bm5pbmcgaW4gbG9vcGJhY2sgbW9kZS4iKTsKIAogLyog U1BJIGZyYW1lIGFsaWdubWVudC4gKi8KLW1vZHVsZV9wYXJhbShzcGlfZnJtX2FsaWduLCBpbnQs IFNfSVJVR08pOworbW9kdWxlX3BhcmFtKHNwaV9mcm1fYWxpZ24sIGludCwgMDQ0NCk7CiBNT0RV TEVfUEFSTV9ERVNDKHNwaV9mcm1fYWxpZ24sICJTUEkgZnJhbWUgYWxpZ25tZW50LiIpOwogCiAv KgogICogU1BJIHBhZGRpbmcgb3B0aW9ucy4KICAqIFdhcm5pbmc6IG11c3QgYmUgYSBiYXNlIG9m IDIgKCYgb3BlcmF0aW9uIHVzZWQpIGFuZCBjYW4gbm90IGJlIHplcm8gIQogICovCi1tb2R1bGVf cGFyYW0oc3BpX3VwX2hlYWRfYWxpZ24sIGludCwgU19JUlVHTyk7Cittb2R1bGVfcGFyYW0oc3Bp X3VwX2hlYWRfYWxpZ24sIGludCwgMDQ0NCk7CiBNT0RVTEVfUEFSTV9ERVNDKHNwaV91cF9oZWFk X2FsaWduLCAiU1BJIHVwbGluayBoZWFkIGFsaWdubWVudC4iKTsKIAotbW9kdWxlX3BhcmFtKHNw aV91cF90YWlsX2FsaWduLCBpbnQsIFNfSVJVR08pOworbW9kdWxlX3BhcmFtKHNwaV91cF90YWls X2FsaWduLCBpbnQsIDA0NDQpOwogTU9EVUxFX1BBUk1fREVTQyhzcGlfdXBfdGFpbF9hbGlnbiwg IlNQSSB1cGxpbmsgdGFpbCBhbGlnbm1lbnQuIik7CiAKLW1vZHVsZV9wYXJhbShzcGlfZG93bl9o ZWFkX2FsaWduLCBpbnQsIFNfSVJVR08pOworbW9kdWxlX3BhcmFtKHNwaV9kb3duX2hlYWRfYWxp Z24sIGludCwgMDQ0NCk7CiBNT0RVTEVfUEFSTV9ERVNDKHNwaV9kb3duX2hlYWRfYWxpZ24sICJT UEkgZG93bmxpbmsgaGVhZCBhbGlnbm1lbnQuIik7CiAKLW1vZHVsZV9wYXJhbShzcGlfZG93bl90 YWlsX2FsaWduLCBpbnQsIFNfSVJVR08pOworbW9kdWxlX3BhcmFtKHNwaV9kb3duX3RhaWxfYWxp Z24sIGludCwgMDQ0NCk7CiBNT0RVTEVfUEFSTV9ERVNDKHNwaV9kb3duX3RhaWxfYWxpZ24sICJT UEkgZG93bmxpbmsgdGFpbCBhbGlnbm1lbnQuIik7CiAKICNpZmRlZiBDT05GSUdfQVJNCkBAIC0y NTAsMTAgKzI1MCwxMCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyBkYmdm c19mcmFtZV9mb3BzID0gewogc3RhdGljIGlubGluZSB2b2lkIGRldl9kZWJ1Z2ZzX2FkZChzdHJ1 Y3QgY2ZzcGkgKmNmc3BpKQogewogCWNmc3BpLT5kYmdmc19kaXIgPSBkZWJ1Z2ZzX2NyZWF0ZV9k aXIoY2ZzcGktPnBkZXYtPm5hbWUsIGRiZ2ZzX3Jvb3QpOwotCWNmc3BpLT5kYmdmc19zdGF0ZSA9 IGRlYnVnZnNfY3JlYXRlX2ZpbGUoInN0YXRlIiwgU19JUlVHTywKKwljZnNwaS0+ZGJnZnNfc3Rh dGUgPSBkZWJ1Z2ZzX2NyZWF0ZV9maWxlKCJzdGF0ZSIsIDA0NDQsCiAJCQkJCQkgY2ZzcGktPmRi Z2ZzX2RpciwgY2ZzcGksCiAJCQkJCQkgJmRiZ2ZzX3N0YXRlX2ZvcHMpOwotCWNmc3BpLT5kYmdm c19mcmFtZSA9IGRlYnVnZnNfY3JlYXRlX2ZpbGUoImZyYW1lIiwgU19JUlVHTywKKwljZnNwaS0+ ZGJnZnNfZnJhbWUgPSBkZWJ1Z2ZzX2NyZWF0ZV9maWxlKCJmcmFtZSIsIDA0NDQsCiAJCQkJCQkg Y2ZzcGktPmRiZ2ZzX2RpciwgY2ZzcGksCiAJCQkJCQkgJmRiZ2ZzX2ZyYW1lX2ZvcHMpOwogfQpk aWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvY2FpZi9jYWlmX3ZpcnRpby5jIGIvZHJpdmVycy9uZXQv Y2FpZi9jYWlmX3ZpcnRpby5jCmluZGV4IGMzZDEwNGZlZWUxMy4uMjgxNGUwZGVlNGJiIDEwMDY0 NAotLS0gYS9kcml2ZXJzL25ldC9jYWlmL2NhaWZfdmlydGlvLmMKKysrIGIvZHJpdmVycy9uZXQv Y2FpZi9jYWlmX3ZpcnRpby5jCkBAIC02MjksMjEgKzYyOSwyMSBAQCBzdGF0aWMgaW5saW5lIHZv aWQgZGVidWdmc19pbml0KHN0cnVjdCBjZnZfaW5mbyAqY2Z2KQogCWlmIChJU19FUlIoY2Z2LT5k ZWJ1Z2ZzKSkKIAkJcmV0dXJuOwogCi0JZGVidWdmc19jcmVhdGVfdTMyKCJyeC1uYXBpLWNvbXBs ZXRlIiwgU19JUlVTUiwgY2Z2LT5kZWJ1Z2ZzLAorCWRlYnVnZnNfY3JlYXRlX3UzMigicngtbmFw aS1jb21wbGV0ZSIsIDA0MDAsIGNmdi0+ZGVidWdmcywKIAkJCSAgICZjZnYtPnN0YXRzLnJ4X25h cGlfY29tcGxldGUpOwotCWRlYnVnZnNfY3JlYXRlX3UzMigicngtbmFwaS1yZXNjaGVkIiwgU19J UlVTUiwgY2Z2LT5kZWJ1Z2ZzLAorCWRlYnVnZnNfY3JlYXRlX3UzMigicngtbmFwaS1yZXNjaGVk IiwgMDQwMCwgY2Z2LT5kZWJ1Z2ZzLAogCQkJICAgJmNmdi0+c3RhdHMucnhfbmFwaV9yZXNjaGVk KTsKLQlkZWJ1Z2ZzX2NyZWF0ZV91MzIoInJ4LW5vbWVtIiwgU19JUlVTUiwgY2Z2LT5kZWJ1Z2Zz LAorCWRlYnVnZnNfY3JlYXRlX3UzMigicngtbm9tZW0iLCAwNDAwLCBjZnYtPmRlYnVnZnMsCiAJ CQkgICAmY2Z2LT5zdGF0cy5yeF9ub21lbSk7Ci0JZGVidWdmc19jcmVhdGVfdTMyKCJyeC1raWNr cyIsIFNfSVJVU1IsIGNmdi0+ZGVidWdmcywKKwlkZWJ1Z2ZzX2NyZWF0ZV91MzIoInJ4LWtpY2tz IiwgMDQwMCwgY2Z2LT5kZWJ1Z2ZzLAogCQkJICAgJmNmdi0+c3RhdHMucnhfa2lja3MpOwotCWRl YnVnZnNfY3JlYXRlX3UzMigidHgtZnVsbC1yaW5nIiwgU19JUlVTUiwgY2Z2LT5kZWJ1Z2ZzLAor CWRlYnVnZnNfY3JlYXRlX3UzMigidHgtZnVsbC1yaW5nIiwgMDQwMCwgY2Z2LT5kZWJ1Z2ZzLAog CQkJICAgJmNmdi0+c3RhdHMudHhfZnVsbF9yaW5nKTsKLQlkZWJ1Z2ZzX2NyZWF0ZV91MzIoInR4 LW5vLW1lbSIsIFNfSVJVU1IsIGNmdi0+ZGVidWdmcywKKwlkZWJ1Z2ZzX2NyZWF0ZV91MzIoInR4 LW5vLW1lbSIsIDA0MDAsIGNmdi0+ZGVidWdmcywKIAkJCSAgICZjZnYtPnN0YXRzLnR4X25vX21l bSk7Ci0JZGVidWdmc19jcmVhdGVfdTMyKCJ0eC1raWNrcyIsIFNfSVJVU1IsIGNmdi0+ZGVidWdm cywKKwlkZWJ1Z2ZzX2NyZWF0ZV91MzIoInR4LWtpY2tzIiwgMDQwMCwgY2Z2LT5kZWJ1Z2ZzLAog CQkJICAgJmNmdi0+c3RhdHMudHhfa2lja3MpOwotCWRlYnVnZnNfY3JlYXRlX3UzMigidHgtZmxv dy1vbiIsIFNfSVJVU1IsIGNmdi0+ZGVidWdmcywKKwlkZWJ1Z2ZzX2NyZWF0ZV91MzIoInR4LWZs b3ctb24iLCAwNDAwLCBjZnYtPmRlYnVnZnMsCiAJCQkgICAmY2Z2LT5zdGF0cy50eF9mbG93X29u KTsKIH0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvY2FuL2F0OTFfY2FuLmMgYi9kcml2ZXJz L25ldC9jYW4vYXQ5MV9jYW4uYwppbmRleCBmMzdjZTBlMWI2MDMuLmQ5OGM2OTA0NWIxNyAxMDA2 NDQKLS0tIGEvZHJpdmVycy9uZXQvY2FuL2F0OTFfY2FuLmMKKysrIGIvZHJpdmVycy9uZXQvY2Fu L2F0OTFfY2FuLmMKQEAgLTEyMjQsOCArMTIyNCw3IEBAIHN0YXRpYyBzc2l6ZV90IGF0OTFfc3lz ZnNfc2V0X21iMF9pZChzdHJ1Y3QgZGV2aWNlICpkZXYsCiAJcmV0dXJuIHJldDsKIH0KIAotc3Rh dGljIERFVklDRV9BVFRSKG1iMF9pZCwgU19JV1VTUiB8IFNfSVJVR08sCi0JYXQ5MV9zeXNmc19z aG93X21iMF9pZCwgYXQ5MV9zeXNmc19zZXRfbWIwX2lkKTsKK3N0YXRpYyBERVZJQ0VfQVRUUiht YjBfaWQsIDA2NDQsIGF0OTFfc3lzZnNfc2hvd19tYjBfaWQsIGF0OTFfc3lzZnNfc2V0X21iMF9p ZCk7CiAKIHN0YXRpYyBzdHJ1Y3QgYXR0cmlidXRlICphdDkxX3N5c2ZzX2F0dHJzW10gPSB7CiAJ JmRldl9hdHRyX21iMF9pZC5hdHRyLApkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvY2FuL2NjNzcw L2NjNzcwLmMgYi9kcml2ZXJzL25ldC9jYW4vY2M3NzAvY2M3NzAuYwppbmRleCA2ZGE2OWFmMTAz ZTYuLmQ0ZGQ0ZGEyMzk5NyAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvY2FuL2NjNzcwL2NjNzcw LmMKKysrIGIvZHJpdmVycy9uZXQvY2FuL2NjNzcwL2NjNzcwLmMKQEAgLTY3LDEyICs2NywxMiBA QCBNT0RVTEVfREVTQ1JJUFRJT04oS0JVSUxEX01PRE5BTUUgIkNBTiBuZXRkZXZpY2UgZHJpdmVy Iik7CiAgKiBvdGhlcndpc2UgMTEgYml0IFNGRiBtZXNzYWdlcy4KICAqLwogc3RhdGljIGludCBt c2dvYmoxNV9lZmY7Ci1tb2R1bGVfcGFyYW0obXNnb2JqMTVfZWZmLCBpbnQsIFNfSVJVR08pOwor bW9kdWxlX3BhcmFtKG1zZ29iajE1X2VmZiwgaW50LCAwNDQ0KTsKIE1PRFVMRV9QQVJNX0RFU0Mo bXNnb2JqMTVfZWZmLCAiRXh0ZW5kZWQgMjktYml0IGZyYW1lcyBmb3IgbWVzc2FnZSBvYmplY3Qg MTUgIgogCQkgIihkZWZhdWx0OiAxMS1iaXQgc3RhbmRhcmQgZnJhbWVzKSIpOwogCiBzdGF0aWMg aW50IGk4MjUyN19jb21wYXQ7Ci1tb2R1bGVfcGFyYW0oaTgyNTI3X2NvbXBhdCwgaW50LCBTX0lS VUdPKTsKK21vZHVsZV9wYXJhbShpODI1MjdfY29tcGF0LCBpbnQsIDA0NDQpOwogTU9EVUxFX1BB Uk1fREVTQyhpODI1MjdfY29tcGF0LCAiU3RyaWN0IEludGVsIDgyNTI3IGNvbXB0aWJpbGl0eSBt b2RlICIKIAkJICJ3aXRob3V0IHVzaW5nIGFkZGl0aW9uYWwgZnVuY3Rpb25zIik7CiAKZGlmZiAt LWdpdCBhL2RyaXZlcnMvbmV0L2Nhbi9jYzc3MC9jYzc3MF9pc2EuYyBiL2RyaXZlcnMvbmV0L2Nh bi9jYzc3MC9jYzc3MF9pc2EuYwppbmRleCAzYTMwZmQzYjQ0OTguLmZjZDM0Njk4MDc0ZiAxMDA2 NDQKLS0tIGEvZHJpdmVycy9uZXQvY2FuL2NjNzcwL2NjNzcwX2lzYS5jCisrKyBiL2RyaXZlcnMv bmV0L2Nhbi9jYzc3MC9jYzc3MF9pc2EuYwpAQCAtODIsMjkgKzgyLDI5IEBAIHN0YXRpYyB1OCBj b3JbTUFYREVWXSA9IHtbMCAuLi4gKE1BWERFViAtIDEpXSA9IDB4ZmZ9Owogc3RhdGljIHU4IGJj cltNQVhERVZdID0ge1swIC4uLiAoTUFYREVWIC0gMSldID0gMHhmZn07CiBzdGF0aWMgaW50IGlu ZGlyZWN0W01BWERFVl0gPSB7WzAgLi4uIChNQVhERVYgLSAxKV0gPSAtMX07CiAKLW1vZHVsZV9w YXJhbV9od19hcnJheShwb3J0LCB1bG9uZywgaW9wb3J0LCBOVUxMLCBTX0lSVUdPKTsKK21vZHVs ZV9wYXJhbV9od19hcnJheShwb3J0LCB1bG9uZywgaW9wb3J0LCBOVUxMLCAwNDQ0KTsKIE1PRFVM RV9QQVJNX0RFU0MocG9ydCwgIkkvTyBwb3J0IG51bWJlciIpOwogCi1tb2R1bGVfcGFyYW1faHdf YXJyYXkobWVtLCB1bG9uZywgaW9tZW0sIE5VTEwsIFNfSVJVR08pOworbW9kdWxlX3BhcmFtX2h3 X2FycmF5KG1lbSwgdWxvbmcsIGlvbWVtLCBOVUxMLCAwNDQ0KTsKIE1PRFVMRV9QQVJNX0RFU0Mo bWVtLCAiSS9PIG1lbW9yeSBhZGRyZXNzIik7CiAKLW1vZHVsZV9wYXJhbV9od19hcnJheShpbmRp cmVjdCwgaW50LCBpb3BvcnQsIE5VTEwsIFNfSVJVR08pOworbW9kdWxlX3BhcmFtX2h3X2FycmF5 KGluZGlyZWN0LCBpbnQsIGlvcG9ydCwgTlVMTCwgMDQ0NCk7CiBNT0RVTEVfUEFSTV9ERVNDKGlu ZGlyZWN0LCAiSW5kaXJlY3QgYWNjZXNzIHZpYSBhZGRyZXNzIGFuZCBkYXRhIHBvcnQiKTsKIAot bW9kdWxlX3BhcmFtX2h3X2FycmF5KGlycSwgaW50LCBpcnEsIE5VTEwsIFNfSVJVR08pOworbW9k dWxlX3BhcmFtX2h3X2FycmF5KGlycSwgaW50LCBpcnEsIE5VTEwsIDA0NDQpOwogTU9EVUxFX1BB Uk1fREVTQyhpcnEsICJJUlEgbnVtYmVyIik7CiAKLW1vZHVsZV9wYXJhbV9hcnJheShjbGssIGlu dCwgTlVMTCwgU19JUlVHTyk7Cittb2R1bGVfcGFyYW1fYXJyYXkoY2xrLCBpbnQsIE5VTEwsIDA0 NDQpOwogTU9EVUxFX1BBUk1fREVTQyhjbGssICJFeHRlcm5hbCBvc2NpbGxhdG9yIGNsb2NrIGZy ZXF1ZW5jeSAiCiAJCSAiKGRlZmF1bHQ9MTYwMDAwMDAgWzE2IE1Iel0pIik7CiAKLW1vZHVsZV9w YXJhbV9hcnJheShjaXIsIGJ5dGUsIE5VTEwsIFNfSVJVR08pOworbW9kdWxlX3BhcmFtX2FycmF5 KGNpciwgYnl0ZSwgTlVMTCwgMDQ0NCk7CiBNT0RVTEVfUEFSTV9ERVNDKGNpciwgIkNQVSBpbnRl cmZhY2UgcmVnaXN0ZXIgKGRlZmF1bHQ9MHg0MCBbRFNDXSkiKTsKIAotbW9kdWxlX3BhcmFtX2Fy cmF5KGNvciwgYnl0ZSwgTlVMTCwgU19JUlVHTyk7Cittb2R1bGVfcGFyYW1fYXJyYXkoY29yLCBi eXRlLCBOVUxMLCAwNDQ0KTsKIE1PRFVMRV9QQVJNX0RFU0MoY29yLCAiQ2xvY2tvdXQgcmVnaXN0 ZXIgKGRlZmF1bHQ9MHgwMCkiKTsKIAotbW9kdWxlX3BhcmFtX2FycmF5KGJjciwgYnl0ZSwgTlVM TCwgU19JUlVHTyk7Cittb2R1bGVfcGFyYW1fYXJyYXkoYmNyLCBieXRlLCBOVUxMLCAwNDQ0KTsK IE1PRFVMRV9QQVJNX0RFU0MoYmNyLCAiQnVzIGNvbmZpZ3VyYXRpb24gcmVnaXN0ZXIgKGRlZmF1 bHQ9MHg0MCBbQ0JZXSkiKTsKIAogI2RlZmluZSBDQzc3MF9JT1NJWkUgICAgICAgICAgMHgyMApk aWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvY2FuL2dyY2FuLmMgYi9kcml2ZXJzL25ldC9jYW4vZ3Jj YW4uYwppbmRleCA4OTdjNmIxMTNkM2YuLjJkMzA0NmFmYTgwZCAxMDA2NDQKLS0tIGEvZHJpdmVy cy9uZXQvY2FuL2dyY2FuLmMKKysrIGIvZHJpdmVycy9uZXQvY2FuL2dyY2FuLmMKQEAgLTE0ODQs NyArMTQ4NCw3IEBAIHN0YXRpYyBuZXRkZXZfdHhfdCBncmNhbl9zdGFydF94bWl0KHN0cnVjdCBz a19idWZmICpza2IsCiAJCX0JCQkJCQkJXAogCX0JCQkJCQkJCVwKIAltb2R1bGVfcGFyYW1fbmFt ZWQobmFtZSwgZ3JjYW5fbW9kdWxlX2NvbmZpZy5uYW1lLAkJXAotCQkJICAgbXR5cGUsIFNfSVJV R08pOwkJCQlcCisJCQkgICBtdHlwZSwgMDQ0NCk7CQkJCVwKIAlNT0RVTEVfUEFSTV9ERVNDKG5h bWUsIGRlc2MpCiAKICNkZWZpbmUgR1JDQU5fQ09ORklHX0FUVFIobmFtZSwgZGVzYykJCQkJCVwK QEAgLTE1MTMsNyArMTUxMyw3IEBAIHN0YXRpYyBuZXRkZXZfdHhfdCBncmNhbl9zdGFydF94bWl0 KHN0cnVjdCBza19idWZmICpza2IsCiAJCXN0cnVjdCBncmNhbl9wcml2ICpwcml2ID0gbmV0ZGV2 X3ByaXYoZGV2KTsJCVwKIAkJcmV0dXJuIHNwcmludGYoYnVmLCAiJWRcbiIsIHByaXYtPmNvbmZp Zy5uYW1lKTsJCVwKIAl9CQkJCQkJCQlcCi0Jc3RhdGljIERFVklDRV9BVFRSKG5hbWUsIFNfSVJV R08gfCBTX0lXVVNSLAkJCVwKKwlzdGF0aWMgREVWSUNFX0FUVFIobmFtZSwgMDY0NCwJCQkJCVwK IAkJCSAgIGdyY2FuX3Nob3dfIyNuYW1lLAkJCQlcCiAJCQkgICBncmNhbl9zdG9yZV8jI25hbWUp OwkJCQlcCiAJR1JDQU5fTU9EVUxFX1BBUkFNKG5hbWUsIHVzaG9ydCwgR1JDQU5fTk9UX0JPT0ws IGRlc2MpCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9jYW4vamFuei1pY2FuMy5jIGIvZHJpdmVy cy9uZXQvY2FuL2phbnotaWNhbjMuYwppbmRleCAxMmE1M2M4ZThlMWQuLmFkZmRiNjZhNDg2ZSAx MDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvY2FuL2phbnotaWNhbjMuYworKysgYi9kcml2ZXJzL25l dC9jYW4vamFuei1pY2FuMy5jCkBAIC0xODY1LDkgKzE4NjUsOSBAQCBzdGF0aWMgc3NpemVfdCBp Y2FuM19zeXNmc19zaG93X2Z3aW5mbyhzdHJ1Y3QgZGV2aWNlICpkZXYsCiAJcmV0dXJuIHNjbnBy aW50ZihidWYsIFBBR0VfU0laRSwgIiVzXG4iLCBtb2QtPmZ3aW5mbyk7CiB9CiAKLXN0YXRpYyBE RVZJQ0VfQVRUUih0ZXJtaW5hdGlvbiwgU19JV1VTUiB8IFNfSVJVR08sIGljYW4zX3N5c2ZzX3No b3dfdGVybSwKLQkJCQkJCSAgIGljYW4zX3N5c2ZzX3NldF90ZXJtKTsKLXN0YXRpYyBERVZJQ0Vf QVRUUihmd2luZm8sIFNfSVJVU1IgfCBTX0lSVUdPLCBpY2FuM19zeXNmc19zaG93X2Z3aW5mbywg TlVMTCk7CitzdGF0aWMgREVWSUNFX0FUVFIodGVybWluYXRpb24sIDA2NDQsIGljYW4zX3N5c2Zz X3Nob3dfdGVybSwKKwkJICAgaWNhbjNfc3lzZnNfc2V0X3Rlcm0pOworc3RhdGljIERFVklDRV9B VFRSKGZ3aW5mbywgMDQ0NCwgaWNhbjNfc3lzZnNfc2hvd19md2luZm8sIE5VTEwpOwogCiBzdGF0 aWMgc3RydWN0IGF0dHJpYnV0ZSAqaWNhbjNfc3lzZnNfYXR0cnNbXSA9IHsKIAkmZGV2X2F0dHJf dGVybWluYXRpb24uYXR0ciwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2Nhbi9zamExMDAwL3Nq YTEwMDBfaXNhLmMgYi9kcml2ZXJzL25ldC9jYW4vc2phMTAwMC9zamExMDAwX2lzYS5jCmluZGV4 IGE4OWMxZTkyNTU0ZC4uMWEyYWU2Y2U4ZDg3IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9jYW4v c2phMTAwMC9zamExMDAwX2lzYS5jCisrKyBiL2RyaXZlcnMvbmV0L2Nhbi9zamExMDAwL3NqYTEw MDBfaXNhLmMKQEAgLTQ4LDI3ICs0OCwyNyBAQCBzdGF0aWMgdW5zaWduZWQgY2hhciBvY3JbTUFY REVWXSA9IHtbMCAuLi4gKE1BWERFViAtIDEpXSA9IDB4ZmZ9Owogc3RhdGljIGludCBpbmRpcmVj dFtNQVhERVZdID0ge1swIC4uLiAoTUFYREVWIC0gMSldID0gLTF9Owogc3RhdGljIHNwaW5sb2Nr X3QgaW5kaXJlY3RfbG9ja1tNQVhERVZdOyAgLyogbG9jayBmb3IgaW5kaXJlY3QgYWNjZXNzIG1v ZGUgKi8KIAotbW9kdWxlX3BhcmFtX2h3X2FycmF5KHBvcnQsIHVsb25nLCBpb3BvcnQsIE5VTEws IFNfSVJVR08pOworbW9kdWxlX3BhcmFtX2h3X2FycmF5KHBvcnQsIHVsb25nLCBpb3BvcnQsIE5V TEwsIDA0NDQpOwogTU9EVUxFX1BBUk1fREVTQyhwb3J0LCAiSS9PIHBvcnQgbnVtYmVyIik7CiAK LW1vZHVsZV9wYXJhbV9od19hcnJheShtZW0sIHVsb25nLCBpb21lbSwgTlVMTCwgU19JUlVHTyk7 Cittb2R1bGVfcGFyYW1faHdfYXJyYXkobWVtLCB1bG9uZywgaW9tZW0sIE5VTEwsIDA0NDQpOwog TU9EVUxFX1BBUk1fREVTQyhtZW0sICJJL08gbWVtb3J5IGFkZHJlc3MiKTsKIAotbW9kdWxlX3Bh cmFtX2h3X2FycmF5KGluZGlyZWN0LCBpbnQsIGlvcG9ydCwgTlVMTCwgU19JUlVHTyk7Cittb2R1 bGVfcGFyYW1faHdfYXJyYXkoaW5kaXJlY3QsIGludCwgaW9wb3J0LCBOVUxMLCAwNDQ0KTsKIE1P RFVMRV9QQVJNX0RFU0MoaW5kaXJlY3QsICJJbmRpcmVjdCBhY2Nlc3MgdmlhIGFkZHJlc3MgYW5k IGRhdGEgcG9ydCIpOwogCi1tb2R1bGVfcGFyYW1faHdfYXJyYXkoaXJxLCBpbnQsIGlycSwgTlVM TCwgU19JUlVHTyk7Cittb2R1bGVfcGFyYW1faHdfYXJyYXkoaXJxLCBpbnQsIGlycSwgTlVMTCwg MDQ0NCk7CiBNT0RVTEVfUEFSTV9ERVNDKGlycSwgIklSUSBudW1iZXIiKTsKIAotbW9kdWxlX3Bh cmFtX2FycmF5KGNsaywgaW50LCBOVUxMLCBTX0lSVUdPKTsKK21vZHVsZV9wYXJhbV9hcnJheShj bGssIGludCwgTlVMTCwgMDQ0NCk7CiBNT0RVTEVfUEFSTV9ERVNDKGNsaywgIkV4dGVybmFsIG9z Y2lsbGF0b3IgY2xvY2sgZnJlcXVlbmN5ICIKIAkJICIoZGVmYXVsdD0xNjAwMDAwMCBbMTYgTUh6 XSkiKTsKIAotbW9kdWxlX3BhcmFtX2FycmF5KGNkciwgYnl0ZSwgTlVMTCwgU19JUlVHTyk7Citt b2R1bGVfcGFyYW1fYXJyYXkoY2RyLCBieXRlLCBOVUxMLCAwNDQ0KTsKIE1PRFVMRV9QQVJNX0RF U0MoY2RyLCAiQ2xvY2sgZGl2aWRlciByZWdpc3RlciAiCiAJCSAiKGRlZmF1bHQ9MHg0OCBbQ0RS X0NCUCB8IENEUl9DTEtfT0ZGXSkiKTsKIAotbW9kdWxlX3BhcmFtX2FycmF5KG9jciwgYnl0ZSwg TlVMTCwgU19JUlVHTyk7Cittb2R1bGVfcGFyYW1fYXJyYXkob2NyLCBieXRlLCBOVUxMLCAwNDQ0 KTsKIE1PRFVMRV9QQVJNX0RFU0Mob2NyLCAiT3V0cHV0IGNvbnRyb2wgcmVnaXN0ZXIgIgogCQkg IihkZWZhdWx0PTB4MTggW09DUl9UWDBfUFVTSFBVTExdKSIpOwogCmRpZmYgLS1naXQgYS9kcml2 ZXJzL25ldC9jYW4vc29mdGluZy9zb2Z0aW5nX21haW4uYyBiL2RyaXZlcnMvbmV0L2Nhbi9zb2Z0 aW5nL3NvZnRpbmdfbWFpbi5jCmluZGV4IDVmNjRkZWVjOWY2Yy4uZTIyNjk2MTkwNTgzIDEwMDY0 NAotLS0gYS9kcml2ZXJzL25ldC9jYW4vc29mdGluZy9zb2Z0aW5nX21haW4uYworKysgYi9kcml2 ZXJzL25ldC9jYW4vc29mdGluZy9zb2Z0aW5nX21haW4uYwpAQCAtNjAxLDggKzYwMSw4IEBAIHN0 YXRpYyBzc2l6ZV90IHN0b3JlX291dHB1dChzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBkZXZp Y2VfYXR0cmlidXRlICphdHRyLAogCXJldHVybiBjb3VudDsKIH0KIAotc3RhdGljIGNvbnN0IERF VklDRV9BVFRSKGNoaXAsIFNfSVJVR08sIHNob3dfY2hpcCwgTlVMTCk7Ci1zdGF0aWMgY29uc3Qg REVWSUNFX0FUVFIob3V0cHV0LCBTX0lSVUdPIHwgU19JV1VTUiwgc2hvd19vdXRwdXQsIHN0b3Jl X291dHB1dCk7CitzdGF0aWMgY29uc3QgREVWSUNFX0FUVFIoY2hpcCwgMDQ0NCwgc2hvd19jaGlw LCBOVUxMKTsKK3N0YXRpYyBjb25zdCBERVZJQ0VfQVRUUihvdXRwdXQsIDA2NDQsIHNob3dfb3V0 cHV0LCBzdG9yZV9vdXRwdXQpOwogCiBzdGF0aWMgY29uc3Qgc3RydWN0IGF0dHJpYnV0ZSAqY29u c3QgbmV0ZGV2X3N5c2ZzX2F0dHJzW10gPSB7CiAJJmRldl9hdHRyX2NoaXAuYXR0ciwKZGlmZiAt LWdpdCBhL2RyaXZlcnMvbmV0L2Nhbi9zcGkvbWNwMjUxeC5jIGIvZHJpdmVycy9uZXQvY2FuL3Nw aS9tY3AyNTF4LmMKaW5kZXggOThkMTE4YjNhYWY0Li5lOTA4MTc2MDg2NDUgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvbmV0L2Nhbi9zcGkvbWNwMjUxeC5jCisrKyBiL2RyaXZlcnMvbmV0L2Nhbi9zcGkv bWNwMjUxeC5jCkBAIC0yMjAsNyArMjIwLDcgQEAKICNkZWZpbmUgREVWSUNFX05BTUUgIm1jcDI1 MXgiCiAKIHN0YXRpYyBpbnQgbWNwMjUxeF9lbmFibGVfZG1hOyAvKiBFbmFibGUgU1BJIERNQS4g RGVmYXVsdDogMCAoT2ZmKSAqLwotbW9kdWxlX3BhcmFtKG1jcDI1MXhfZW5hYmxlX2RtYSwgaW50 LCBTX0lSVUdPKTsKK21vZHVsZV9wYXJhbShtY3AyNTF4X2VuYWJsZV9kbWEsIGludCwgMDQ0NCk7 CiBNT0RVTEVfUEFSTV9ERVNDKG1jcDI1MXhfZW5hYmxlX2RtYSwgIkVuYWJsZSBTUEkgRE1BLiBE ZWZhdWx0OiAwIChPZmYpIik7CiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgY2FuX2JpdHRpbWluZ19j b25zdCBtY3AyNTF4X2JpdHRpbWluZ19jb25zdCA9IHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0 L2Nhbi91c2IvZXNkX3VzYjIuYyBiL2RyaXZlcnMvbmV0L2Nhbi91c2IvZXNkX3VzYjIuYwppbmRl eCBjNmRjZjkzNjc1YzAuLjU4MjBmZDViNjliNSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvY2Fu L3VzYi9lc2RfdXNiMi5jCisrKyBiL2RyaXZlcnMvbmV0L2Nhbi91c2IvZXNkX3VzYjIuYwpAQCAt NDk2LDcgKzQ5Niw3IEBAIHN0YXRpYyBzc2l6ZV90IHNob3dfZmlybXdhcmUoc3RydWN0IGRldmlj ZSAqZCwKIAkJICAgICAgIChkZXYtPnZlcnNpb24gPj4gOCkgJiAweGYsCiAJCSAgICAgICBkZXYt PnZlcnNpb24gJiAweGZmKTsKIH0KLXN0YXRpYyBERVZJQ0VfQVRUUihmaXJtd2FyZSwgU19JUlVH Tywgc2hvd19maXJtd2FyZSwgTlVMTCk7CitzdGF0aWMgREVWSUNFX0FUVFIoZmlybXdhcmUsIDA0 NDQsIHNob3dfZmlybXdhcmUsIE5VTEwpOwogCiBzdGF0aWMgc3NpemVfdCBzaG93X2hhcmR3YXJl KHN0cnVjdCBkZXZpY2UgKmQsCiAJCQkgICAgIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICphdHRy LCBjaGFyICpidWYpCkBAIC01MDksNyArNTA5LDcgQEAgc3RhdGljIHNzaXplX3Qgc2hvd19oYXJk d2FyZShzdHJ1Y3QgZGV2aWNlICpkLAogCQkgICAgICAgKGRldi0+dmVyc2lvbiA+PiAyNCkgJiAw eGYsCiAJCSAgICAgICAoZGV2LT52ZXJzaW9uID4+IDE2KSAmIDB4ZmYpOwogfQotc3RhdGljIERF VklDRV9BVFRSKGhhcmR3YXJlLCBTX0lSVUdPLCBzaG93X2hhcmR3YXJlLCBOVUxMKTsKK3N0YXRp YyBERVZJQ0VfQVRUUihoYXJkd2FyZSwgMDQ0NCwgc2hvd19oYXJkd2FyZSwgTlVMTCk7CiAKIHN0 YXRpYyBzc2l6ZV90IHNob3dfbmV0cyhzdHJ1Y3QgZGV2aWNlICpkLAogCQkJIHN0cnVjdCBkZXZp Y2VfYXR0cmlidXRlICphdHRyLCBjaGFyICpidWYpCkBAIC01MTksNyArNTE5LDcgQEAgc3RhdGlj IHNzaXplX3Qgc2hvd19uZXRzKHN0cnVjdCBkZXZpY2UgKmQsCiAKIAlyZXR1cm4gc3ByaW50Zihi dWYsICIlZCIsIGRldi0+bmV0X2NvdW50KTsKIH0KLXN0YXRpYyBERVZJQ0VfQVRUUihuZXRzLCBT X0lSVUdPLCBzaG93X25ldHMsIE5VTEwpOworc3RhdGljIERFVklDRV9BVFRSKG5ldHMsIDA0NDQs IHNob3dfbmV0cywgTlVMTCk7CiAKIHN0YXRpYyBpbnQgZXNkX3VzYjJfc2VuZF9tc2coc3RydWN0 IGVzZF91c2IyICpkZXYsIHN0cnVjdCBlc2RfdXNiMl9tc2cgKm1zZykKIHsKZGlmZiAtLWdpdCBh L2RyaXZlcnMvbmV0L2Nhbi92Y2FuLmMgYi9kcml2ZXJzL25ldC9jYW4vdmNhbi5jCmluZGV4IGMy YjA0ZjUwNWUxNi4uZDIwMGE1YjA2NTFjIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9jYW4vdmNh bi5jCisrKyBiL2RyaXZlcnMvbmV0L2Nhbi92Y2FuLmMKQEAgLTY1LDcgKzY1LDcgQEAgTU9EVUxF X0FMSUFTX1JUTkxfTElOSyhEUlZfTkFNRSk7CiAgKi8KIAogc3RhdGljIGJvb2wgZWNobzsgLyog ZWNobyB0ZXN0aW5nLiBEZWZhdWx0OiAwIChPZmYpICovCi1tb2R1bGVfcGFyYW0oZWNobywgYm9v bCwgU19JUlVHTyk7Cittb2R1bGVfcGFyYW0oZWNobywgYm9vbCwgMDQ0NCk7CiBNT0RVTEVfUEFS TV9ERVNDKGVjaG8sICJFY2hvIHNlbnQgZnJhbWVzIChmb3IgdGVzdGluZykuIERlZmF1bHQ6IDAg KE9mZikiKTsKIAogCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9oYW1yYWRpby9icHFldGhlci5j IGIvZHJpdmVycy9uZXQvaGFtcmFkaW8vYnBxZXRoZXIuYwppbmRleCA3OGE2NDE0YzVmZDkuLmRm YWJiYWU3MmVmZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvaGFtcmFkaW8vYnBxZXRoZXIuYwor KysgYi9kcml2ZXJzL25ldC9oYW1yYWRpby9icHFldGhlci5jCkBAIC01OTAsOCArNTkwLDcgQEAg c3RhdGljIGludCBicHFfZGV2aWNlX2V2ZW50KHN0cnVjdCBub3RpZmllcl9ibG9jayAqdGhpcywK IHN0YXRpYyBpbnQgX19pbml0IGJwcV9pbml0X2RyaXZlcih2b2lkKQogewogI2lmZGVmIENPTkZJ R19QUk9DX0ZTCi0JaWYgKCFwcm9jX2NyZWF0ZSgiYnBxZXRoZXIiLCBTX0lSVUdPLCBpbml0X25l dC5wcm9jX25ldCwKLQkJCSAmYnBxX2luZm9fZm9wcykpIHsKKwlpZiAoIXByb2NfY3JlYXRlKCJi cHFldGhlciIsIDA0NDQsIGluaXRfbmV0LnByb2NfbmV0LCAmYnBxX2luZm9fZm9wcykpIHsKIAkJ cHJpbnRrKEtFUk5fRVJSCiAJCQkiYnBxOiBjYW5ub3QgY3JlYXRlIC9wcm9jL25ldC9icHFldGhl ciBlbnRyeS5cbiIpOwogCQlyZXR1cm4gLUVOT0VOVDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0 L2hhbXJhZGlvL3lhbS5jIGIvZHJpdmVycy9uZXQvaGFtcmFkaW8veWFtLmMKaW5kZXggMTRjMzYz MmI4Y2RlLi44MzAzNGViN2VkNGYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2hhbXJhZGlvL3lh bS5jCisrKyBiL2RyaXZlcnMvbmV0L2hhbXJhZGlvL3lhbS5jCkBAIC0xMTY4LDcgKzExNjgsNyBA QCBzdGF0aWMgaW50IF9faW5pdCB5YW1faW5pdF9kcml2ZXIodm9pZCkKIAl5YW1fdGltZXIuZXhw aXJlcyA9IGppZmZpZXMgKyBIWiAvIDEwMDsKIAlhZGRfdGltZXIoJnlhbV90aW1lcik7CiAKLQlw cm9jX2NyZWF0ZSgieWFtIiwgU19JUlVHTywgaW5pdF9uZXQucHJvY19uZXQsICZ5YW1faW5mb19m b3BzKTsKKwlwcm9jX2NyZWF0ZSgieWFtIiwgMDQ0NCwgaW5pdF9uZXQucHJvY19uZXQsICZ5YW1f aW5mb19mb3BzKTsKIAlyZXR1cm4gMDsKICBlcnJvcjoKIAl3aGlsZSAoLS1pID49IDApIHsKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2h5cGVydi9uZXR2c2NfZHJ2LmMgYi9kcml2ZXJzL25ldC9o eXBlcnYvbmV0dnNjX2Rydi5jCmluZGV4IGYyOGM4NWQyMTJjZS4uOWY0M2EyMGVlN2RlIDEwMDY0 NAotLS0gYS9kcml2ZXJzL25ldC9oeXBlcnYvbmV0dnNjX2Rydi5jCisrKyBiL2RyaXZlcnMvbmV0 L2h5cGVydi9uZXR2c2NfZHJ2LmMKQEAgLTU1LDcgKzU1LDcgQEAKICNkZWZpbmUgVkZfVEFLRU9W RVJfSU5UIChIWiAvIDEwKQogCiBzdGF0aWMgdW5zaWduZWQgaW50IHJpbmdfc2l6ZSBfX3JvX2Fm dGVyX2luaXQgPSAxMjg7Ci1tb2R1bGVfcGFyYW0ocmluZ19zaXplLCB1aW50LCBTX0lSVUdPKTsK K21vZHVsZV9wYXJhbShyaW5nX3NpemUsIHVpbnQsIDA0NDQpOwogTU9EVUxFX1BBUk1fREVTQyhy aW5nX3NpemUsICJSaW5nIGJ1ZmZlciBzaXplICgjIG9mIHBhZ2VzKSIpOwogdW5zaWduZWQgaW50 IG5ldHZzY19yaW5nX2J5dGVzIF9fcm9fYWZ0ZXJfaW5pdDsKIHN0cnVjdCByZWNpcHJvY2FsX3Zh bHVlIG5ldHZzY19yaW5nX3JlY2lwcm9jYWwgX19yb19hZnRlcl9pbml0OwpAQCAtNjYsNyArNjYs NyBAQCBzdGF0aWMgY29uc3QgdTMyIGRlZmF1bHRfbXNnID0gTkVUSUZfTVNHX0RSViB8IE5FVElG X01TR19QUk9CRSB8CiAJCQkJTkVUSUZfTVNHX1RYX0VSUjsKIAogc3RhdGljIGludCBkZWJ1ZyA9 IC0xOwotbW9kdWxlX3BhcmFtKGRlYnVnLCBpbnQsIFNfSVJVR08pOworbW9kdWxlX3BhcmFtKGRl YnVnLCBpbnQsIDA0NDQpOwogTU9EVUxFX1BBUk1fREVTQyhkZWJ1ZywgIkRlYnVnIGxldmVsICgw PW5vbmUsLi4uLDE2PWFsbCkiKTsKIAogc3RhdGljIHZvaWQgbmV0dnNjX2NoYW5nZV9yeF9mbGFn cyhzdHJ1Y3QgbmV0X2RldmljZSAqbmV0LCBpbnQgY2hhbmdlKQpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9uZXQvaWVlZTgwMjE1NC9hdDg2cmYyMzAuYyBiL2RyaXZlcnMvbmV0L2llZWU4MDIxNTQvYXQ4 NnJmMjMwLmMKaW5kZXggNTQ4ZDlkMDI2YTg1Li43N2FiZWRmMGI1MjQgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvbmV0L2llZWU4MDIxNTQvYXQ4NnJmMjMwLmMKKysrIGIvZHJpdmVycy9uZXQvaWVlZTgw MjE1NC9hdDg2cmYyMzAuYwpAQCAtMTY2MSw3ICsxNjYxLDcgQEAgc3RhdGljIGludCBhdDg2cmYy MzBfZGVidWdmc19pbml0KHN0cnVjdCBhdDg2cmYyMzBfbG9jYWwgKmxwKQogCWlmICghYXQ4NnJm MjMwX2RlYnVnZnNfcm9vdCkKIAkJcmV0dXJuIC1FTk9NRU07CiAKLQlzdGF0cyA9IGRlYnVnZnNf Y3JlYXRlX2ZpbGUoInRyYWNfc3RhdHMiLCBTX0lSVUdPLAorCXN0YXRzID0gZGVidWdmc19jcmVh dGVfZmlsZSgidHJhY19zdGF0cyIsIDA0NDQsCiAJCQkJICAgIGF0ODZyZjIzMF9kZWJ1Z2ZzX3Jv b3QsIGxwLAogCQkJCSAgICAmYXQ4NnJmMjMwX3N0YXRzX2ZvcHMpOwogCWlmICghc3RhdHMpCmRp ZmYgLS1naXQgYS9kcml2ZXJzL25ldC9waHkvc3BpX2tzODk5NS5jIGIvZHJpdmVycy9uZXQvcGh5 L3NwaV9rczg5OTUuYwppbmRleCAxZTJkNGYxMTc5ZGEuLmYxN2IzNDQxNzc5YiAxMDA2NDQKLS0t IGEvZHJpdmVycy9uZXQvcGh5L3NwaV9rczg5OTUuYworKysgYi9kcml2ZXJzL25ldC9waHkvc3Bp X2tzODk5NS5jCkBAIC00MTcsNyArNDE3LDcgQEAgc3RhdGljIHZvaWQga3M4OTk1X3BhcnNlX2R0 KHN0cnVjdCBrczg5OTVfc3dpdGNoICprcykKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgYmluX2F0dHJp YnV0ZSBrczg5OTVfcmVnaXN0ZXJzX2F0dHIgPSB7CiAJLmF0dHIgPSB7CiAJCS5uYW1lICAgPSAi cmVnaXN0ZXJzIiwKLQkJLm1vZGUgICA9IFNfSVJVU1IgfCBTX0lXVVNSLAorCQkubW9kZSAgID0g MDYwMCwKIAl9LAogCS5zaXplICAgPSBLUzg5OTVfUkVHU19TSVpFLAogCS5yZWFkICAgPSBrczg5 OTVfcmVnaXN0ZXJzX3JlYWQsCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9wcHAvcHBwX2dlbmVy aWMuYyBiL2RyaXZlcnMvbmV0L3BwcC9wcHBfZ2VuZXJpYy5jCmluZGV4IDkyNmMyYzMyMmQ0My4u MjJmY2ZmM2M3YTlhIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9wcHAvcHBwX2dlbmVyaWMuYwor KysgYi9kcml2ZXJzL25ldC9wcHAvcHBwX2dlbmVyaWMuYwpAQCAtMTY4Nyw3ICsxNjg3LDcgQEAg cHBwX3B1c2goc3RydWN0IHBwcCAqcHBwKQogCiAjaWZkZWYgQ09ORklHX1BQUF9NVUxUSUxJTksK IHN0YXRpYyBib29sIG1wX3Byb3RvY29sX2NvbXByZXNzIF9fcmVhZF9tb3N0bHkgPSB0cnVlOwot bW9kdWxlX3BhcmFtKG1wX3Byb3RvY29sX2NvbXByZXNzLCBib29sLCBTX0lSVUdPIHwgU19JV1VT Uik7Cittb2R1bGVfcGFyYW0obXBfcHJvdG9jb2xfY29tcHJlc3MsIGJvb2wsIDA2NDQpOwogTU9E VUxFX1BBUk1fREVTQyhtcF9wcm90b2NvbF9jb21wcmVzcywKIAkJICJjb21wcmVzcyBwcm90b2Nv bCBpZCBpbiBtdWx0aWxpbmsgZnJhZ21lbnRzIik7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0 L3BwcC9wcHBvZS5jIGIvZHJpdmVycy9uZXQvcHBwL3BwcG9lLmMKaW5kZXggYzEwZTYxODFhMmYw Li5mOTU1MmE0MDAyNzEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3BwcC9wcHBvZS5jCisrKyBi L2RyaXZlcnMvbmV0L3BwcC9wcHBvZS5jCkBAIC0xMTQyLDcgKzExNDIsNyBAQCBzdGF0aWMgX19u ZXRfaW5pdCBpbnQgcHBwb2VfaW5pdF9uZXQoc3RydWN0IG5ldCAqbmV0KQogCiAJcndsb2NrX2lu aXQoJnBuLT5oYXNoX2xvY2spOwogCi0JcGRlID0gcHJvY19jcmVhdGUoInBwcG9lIiwgU19JUlVH TywgbmV0LT5wcm9jX25ldCwgJnBwcG9lX3NlcV9mb3BzKTsKKwlwZGUgPSBwcm9jX2NyZWF0ZSgi cHBwb2UiLCAwNDQ0LCBuZXQtPnByb2NfbmV0LCAmcHBwb2Vfc2VxX2ZvcHMpOwogI2lmZGVmIENP TkZJR19QUk9DX0ZTCiAJaWYgKCFwZGUpCiAJCXJldHVybiAtRU5PTUVNOwpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9uZXQvdXNiL2NkY19uY20uYyBiL2RyaXZlcnMvbmV0L3VzYi9jZGNfbmNtLmMKaW5k ZXggOWUxYjc0NTkwNjgyLi45MGQwN2VkMjI0ZDUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3Vz Yi9jZGNfbmNtLmMKKysrIGIvZHJpdmVycy9uZXQvdXNiL2NkY19uY20uYwpAQCAtNTgsNyArNTgs NyBAQCBzdGF0aWMgYm9vbCBwcmVmZXJfbWJpbSA9IHRydWU7CiAjZWxzZQogc3RhdGljIGJvb2wg cHJlZmVyX21iaW07CiAjZW5kaWYKLW1vZHVsZV9wYXJhbShwcmVmZXJfbWJpbSwgYm9vbCwgU19J UlVHTyB8IFNfSVdVU1IpOworbW9kdWxlX3BhcmFtKHByZWZlcl9tYmltLCBib29sLCAwNjQ0KTsK IE1PRFVMRV9QQVJNX0RFU0MocHJlZmVyX21iaW0sICJQcmVmZXIgTUJJTSBzZXR0aW5nIG9uIGR1 YWwgTkNNL01CSU0gZnVuY3Rpb25zIik7CiAKIHN0YXRpYyB2b2lkIGNkY19uY21fdHhwYXRoX2Jo KHVuc2lnbmVkIGxvbmcgcGFyYW0pOwpAQCAtMjgxLDEwICsyODEsMTAgQEAgc3RhdGljIHNzaXpl X3QgY2RjX25jbV9zdG9yZV90eF90aW1lcl91c2VjcyhzdHJ1Y3QgZGV2aWNlICpkLCAgc3RydWN0 IGRldmljZV9hdHQKIAlyZXR1cm4gbGVuOwogfQogCi1zdGF0aWMgREVWSUNFX0FUVFIobWluX3R4 X3BrdCwgU19JUlVHTyB8IFNfSVdVU1IsIGNkY19uY21fc2hvd19taW5fdHhfcGt0LCBjZGNfbmNt X3N0b3JlX21pbl90eF9wa3QpOwotc3RhdGljIERFVklDRV9BVFRSKHJ4X21heCwgU19JUlVHTyB8 IFNfSVdVU1IsIGNkY19uY21fc2hvd19yeF9tYXgsIGNkY19uY21fc3RvcmVfcnhfbWF4KTsKLXN0 YXRpYyBERVZJQ0VfQVRUUih0eF9tYXgsIFNfSVJVR08gfCBTX0lXVVNSLCBjZGNfbmNtX3Nob3df dHhfbWF4LCBjZGNfbmNtX3N0b3JlX3R4X21heCk7Ci1zdGF0aWMgREVWSUNFX0FUVFIodHhfdGlt ZXJfdXNlY3MsIFNfSVJVR08gfCBTX0lXVVNSLCBjZGNfbmNtX3Nob3dfdHhfdGltZXJfdXNlY3Ms IGNkY19uY21fc3RvcmVfdHhfdGltZXJfdXNlY3MpOworc3RhdGljIERFVklDRV9BVFRSKG1pbl90 eF9wa3QsIDA2NDQsIGNkY19uY21fc2hvd19taW5fdHhfcGt0LCBjZGNfbmNtX3N0b3JlX21pbl90 eF9wa3QpOworc3RhdGljIERFVklDRV9BVFRSKHJ4X21heCwgMDY0NCwgY2RjX25jbV9zaG93X3J4 X21heCwgY2RjX25jbV9zdG9yZV9yeF9tYXgpOworc3RhdGljIERFVklDRV9BVFRSKHR4X21heCwg MDY0NCwgY2RjX25jbV9zaG93X3R4X21heCwgY2RjX25jbV9zdG9yZV90eF9tYXgpOworc3RhdGlj IERFVklDRV9BVFRSKHR4X3RpbWVyX3VzZWNzLCAwNjQ0LCBjZGNfbmNtX3Nob3dfdHhfdGltZXJf dXNlY3MsIGNkY19uY21fc3RvcmVfdHhfdGltZXJfdXNlY3MpOwogCiBzdGF0aWMgc3NpemVfdCBu ZHBfdG9fZW5kX3Nob3coc3RydWN0IGRldmljZSAqZCwgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUg KmF0dHIsIGNoYXIgKmJ1ZikKIHsKQEAgLTMzNSw3ICszMzUsNyBAQCBzdGF0aWMgc3NpemVfdCBj ZGNfbmNtX3Nob3dfIyNuYW1lKHN0cnVjdCBkZXZpY2UgKmQsIHN0cnVjdCBkZXZpY2VfYXR0cmli dXRlICphdAogCXN0cnVjdCBjZGNfbmNtX2N0eCAqY3R4ID0gKHN0cnVjdCBjZGNfbmNtX2N0eCAq KWRldi0+ZGF0YVswXTsgXAogCXJldHVybiBzcHJpbnRmKGJ1ZiwgZm9ybWF0ICJcbiIsIHRvY3B1 KGN0eC0+bmNtX3Bhcm0ubmFtZSkpOwlcCiB9IFwKLXN0YXRpYyBERVZJQ0VfQVRUUihuYW1lLCBT X0lSVUdPLCBjZGNfbmNtX3Nob3dfIyNuYW1lLCBOVUxMKQorc3RhdGljIERFVklDRV9BVFRSKG5h bWUsIDA0NDQsIGNkY19uY21fc2hvd18jI25hbWUsIE5VTEwpCiAKIE5DTV9QQVJNX0FUVFIoYm1O dGJGb3JtYXRzU3VwcG9ydGVkLCAiMHglMDR4IiwgbGUxNl90b19jcHUpOwogTkNNX1BBUk1fQVRU Uihkd050YkluTWF4U2l6ZSwgIiV1IiwgbGUzMl90b19jcHUpOwpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9uZXQvdXNiL2hzby5jIGIvZHJpdmVycy9uZXQvdXNiL2hzby5jCmluZGV4IDk4MWM5MzFhN2Ex Zi4uZTUzODgzYWQ2MTA3IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC91c2IvaHNvLmMKKysrIGIv ZHJpdmVycy9uZXQvdXNiL2hzby5jCkBAIC01MTksNyArNTE5LDcgQEAgc3RhdGljIHNzaXplX3Qg aHNvX3N5c2ZzX3Nob3dfcG9ydHR5cGUoc3RydWN0IGRldmljZSAqZGV2LAogCiAJcmV0dXJuIHNw cmludGYoYnVmLCAiJXNcbiIsIHBvcnRfbmFtZSk7CiB9Ci1zdGF0aWMgREVWSUNFX0FUVFIoaHNv dHlwZSwgU19JUlVHTywgaHNvX3N5c2ZzX3Nob3dfcG9ydHR5cGUsIE5VTEwpOworc3RhdGljIERF VklDRV9BVFRSKGhzb3R5cGUsIDA0NDQsIGhzb19zeXNmc19zaG93X3BvcnR0eXBlLCBOVUxMKTsK IAogc3RhdGljIHN0cnVjdCBhdHRyaWJ1dGUgKmhzb19zZXJpYWxfZGV2X2F0dHJzW10gPSB7CiAJ JmRldl9hdHRyX2hzb3R5cGUuYXR0ciwKQEAgLTMyODksMTIgKzMyODksMTIgQEAgTU9EVUxFX0xJ Q0VOU0UoIkdQTCIpOwogCiAvKiBjaGFuZ2UgdGhlIGRlYnVnIGxldmVsIChlZzogaW5zbW9kIGhz by5rbyBkZWJ1Zz0weDA0KSAqLwogTU9EVUxFX1BBUk1fREVTQyhkZWJ1ZywgImRlYnVnIGxldmVs IG1hc2sgWzB4MDEgfCAweDAyIHwgMHgwNCB8IDB4MDggfCAweDEwXSIpOwotbW9kdWxlX3BhcmFt KGRlYnVnLCBpbnQsIFNfSVJVR08gfCBTX0lXVVNSKTsKK21vZHVsZV9wYXJhbShkZWJ1ZywgaW50 LCAwNjQ0KTsKIAogLyogc2V0IHRoZSBtYWpvciB0dHkgbnVtYmVyIChlZzogaW5zbW9kIGhzby5r byB0dHlfbWFqb3I9MjQ1KSAqLwogTU9EVUxFX1BBUk1fREVTQyh0dHlfbWFqb3IsICJTZXQgdGhl IG1ham9yIHR0eSBudW1iZXIiKTsKLW1vZHVsZV9wYXJhbSh0dHlfbWFqb3IsIGludCwgU19JUlVH TyB8IFNfSVdVU1IpOworbW9kdWxlX3BhcmFtKHR0eV9tYWpvciwgaW50LCAwNjQ0KTsKIAogLyog ZGlzYWJsZSBuZXR3b3JrIGludGVyZmFjZSAoZWc6IGluc21vZCBoc28ua28gZGlzYWJsZV9uZXQ9 MSkgKi8KIE1PRFVMRV9QQVJNX0RFU0MoZGlzYWJsZV9uZXQsICJEaXNhYmxlIHRoZSBuZXR3b3Jr IGludGVyZmFjZSIpOwotbW9kdWxlX3BhcmFtKGRpc2FibGVfbmV0LCBpbnQsIFNfSVJVR08gfCBT X0lXVVNSKTsKK21vZHVsZV9wYXJhbShkaXNhYmxlX25ldCwgaW50LCAwNjQ0KTsKZGlmZiAtLWdp dCBhL2RyaXZlcnMvbmV0L3hlbi1uZXRiYWNrL3hlbmJ1cy5jIGIvZHJpdmVycy9uZXQveGVuLW5l dGJhY2sveGVuYnVzLmMKaW5kZXggYTU2ZDNlYWIzNWRkLi5lMWFlZjI1MzYwMWUgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvbmV0L3hlbi1uZXRiYWNrL3hlbmJ1cy5jCisrKyBiL2RyaXZlcnMvbmV0L3hl bi1uZXRiYWNrL3hlbmJ1cy5jCkBAIC0yMjQsNyArMjI0LDcgQEAgc3RhdGljIHZvaWQgeGVudmlm X2RlYnVnZnNfYWRkaWYoc3RydWN0IHhlbnZpZiAqdmlmKQogCiAJCQlzbnByaW50ZihmaWxlbmFt ZSwgc2l6ZW9mKGZpbGVuYW1lKSwgImlvX3JpbmdfcSVkIiwgaSk7CiAJCQlwZmlsZSA9IGRlYnVn ZnNfY3JlYXRlX2ZpbGUoZmlsZW5hbWUsCi0JCQkJCQkgICAgU19JUlVTUiB8IFNfSVdVU1IsCisJ CQkJCQkgICAgMDYwMCwKIAkJCQkJCSAgICB2aWYtPnhlbnZpZl9kYmdfcm9vdCwKIAkJCQkJCSAg ICAmdmlmLT5xdWV1ZXNbaV0sCiAJCQkJCQkgICAgJnhlbnZpZl9kYmdfaW9fcmluZ19vcHNfZm9w cyk7CkBAIC0yMzUsNyArMjM1LDcgQEAgc3RhdGljIHZvaWQgeGVudmlmX2RlYnVnZnNfYWRkaWYo c3RydWN0IHhlbnZpZiAqdmlmKQogCiAJCWlmICh2aWYtPmN0cmxfaXJxKSB7CiAJCQlwZmlsZSA9 IGRlYnVnZnNfY3JlYXRlX2ZpbGUoImN0cmwiLAotCQkJCQkJICAgIFNfSVJVU1IsCisJCQkJCQkg ICAgMDQwMCwKIAkJCQkJCSAgICB2aWYtPnhlbnZpZl9kYmdfcm9vdCwKIAkJCQkJCSAgICB2aWYs CiAJCQkJCQkgICAgJnhlbnZpZl9kYmdfY3RybF9vcHNfZm9wcyk7CmRpZmYgLS1naXQgYS9kcml2 ZXJzL25ldC94ZW4tbmV0ZnJvbnQuYyBiL2RyaXZlcnMvbmV0L3hlbi1uZXRmcm9udC5jCmluZGV4 IDMxMjdiYzg2MzNjYS4uNGRkMDY2ODAwM2U3IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC94ZW4t bmV0ZnJvbnQuYworKysgYi9kcml2ZXJzL25ldC94ZW4tbmV0ZnJvbnQuYwpAQCAtMjExMyw5ICsy MTEzLDkgQEAgc3RhdGljIHNzaXplX3Qgc3RvcmVfcnhidWYoc3RydWN0IGRldmljZSAqZGV2LAog CXJldHVybiBsZW47CiB9CiAKLXN0YXRpYyBERVZJQ0VfQVRUUihyeGJ1Zl9taW4sIFNfSVJVR098 U19JV1VTUiwgc2hvd19yeGJ1Ziwgc3RvcmVfcnhidWYpOwotc3RhdGljIERFVklDRV9BVFRSKHJ4 YnVmX21heCwgU19JUlVHT3xTX0lXVVNSLCBzaG93X3J4YnVmLCBzdG9yZV9yeGJ1Zik7Ci1zdGF0 aWMgREVWSUNFX0FUVFIocnhidWZfY3VyLCBTX0lSVUdPLCBzaG93X3J4YnVmLCBOVUxMKTsKK3N0 YXRpYyBERVZJQ0VfQVRUUihyeGJ1Zl9taW4sIDA2NDQsIHNob3dfcnhidWYsIHN0b3JlX3J4YnVm KTsKK3N0YXRpYyBERVZJQ0VfQVRUUihyeGJ1Zl9tYXgsIDA2NDQsIHNob3dfcnhidWYsIHN0b3Jl X3J4YnVmKTsKK3N0YXRpYyBERVZJQ0VfQVRUUihyeGJ1Zl9jdXIsIDA0NDQsIHNob3dfcnhidWYs IE5VTEwpOwogCiBzdGF0aWMgc3RydWN0IGF0dHJpYnV0ZSAqeGVubmV0X2Rldl9hdHRyc1tdID0g ewogCSZkZXZfYXR0cl9yeGJ1Zl9taW4uYXR0ciwK From mboxrd@z Thu Jan 1 00:00:00 1970 From: joe@perches.com (Joe Perches) Date: Fri, 23 Mar 2018 15:54:39 -0700 Subject: [PATCH 4/4] drivers/net: Use octal not symbolic permissions In-Reply-To: References: Message-ID: <8f24a711e6b8ec7b41356c378140fb54d510205c.1521845248.git.joe@perches.com> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org Prefer the direct use of octal for permissions. Done with checkpatch -f --types=SYMBOLIC_PERMS --fix-inplace and some typing. Miscellanea: o Whitespace neatening around these conversions. Signed-off-by: Joe Perches --- drivers/net/bonding/bond_procfs.c | 2 +- drivers/net/bonding/bond_sysfs.c | 73 +++++++++++++++++----------------- drivers/net/bonding/bond_sysfs_slave.c | 4 +- drivers/net/caif/caif_serial.c | 32 +++++++-------- drivers/net/caif/caif_spi.c | 16 ++++---- drivers/net/caif/caif_virtio.c | 16 ++++---- drivers/net/can/at91_can.c | 3 +- drivers/net/can/cc770/cc770.c | 4 +- drivers/net/can/cc770/cc770_isa.c | 16 ++++---- drivers/net/can/grcan.c | 4 +- drivers/net/can/janz-ican3.c | 6 +-- drivers/net/can/sja1000/sja1000_isa.c | 14 +++---- drivers/net/can/softing/softing_main.c | 4 +- drivers/net/can/spi/mcp251x.c | 2 +- drivers/net/can/usb/esd_usb2.c | 6 +-- drivers/net/can/vcan.c | 2 +- drivers/net/hamradio/bpqether.c | 3 +- drivers/net/hamradio/yam.c | 2 +- drivers/net/hyperv/netvsc_drv.c | 4 +- drivers/net/ieee802154/at86rf230.c | 2 +- drivers/net/phy/spi_ks8995.c | 2 +- drivers/net/ppp/ppp_generic.c | 2 +- drivers/net/ppp/pppoe.c | 2 +- drivers/net/usb/cdc_ncm.c | 12 +++--- drivers/net/usb/hso.c | 8 ++-- drivers/net/xen-netback/xenbus.c | 4 +- drivers/net/xen-netfront.c | 6 +-- 27 files changed, 124 insertions(+), 127 deletions(-) diff --git a/drivers/net/bonding/bond_procfs.c b/drivers/net/bonding/bond_procfs.c index f7799321dffb..01059f1a7bca 100644 --- a/drivers/net/bonding/bond_procfs.c +++ b/drivers/net/bonding/bond_procfs.c @@ -287,7 +287,7 @@ void bond_create_proc_entry(struct bonding *bond) if (bn->proc_dir) { bond->proc_entry = proc_create_data(bond_dev->name, - S_IRUGO, bn->proc_dir, + 0444, bn->proc_dir, &bond_info_fops, bond); if (bond->proc_entry == NULL) netdev_warn(bond_dev, "Cannot create /proc/net/%s/%s\n", diff --git a/drivers/net/bonding/bond_sysfs.c b/drivers/net/bonding/bond_sysfs.c index 040b493f60ae..6096440e96ea 100644 --- a/drivers/net/bonding/bond_sysfs.c +++ b/drivers/net/bonding/bond_sysfs.c @@ -147,7 +147,7 @@ static ssize_t bonding_store_bonds(struct class *cls, static const struct class_attribute class_attr_bonding_masters = { .attr = { .name = "bonding_masters", - .mode = S_IWUSR | S_IRUGO, + .mode = 0644, }, .show = bonding_show_bonds, .store = bonding_store_bonds, @@ -202,7 +202,7 @@ static ssize_t bonding_show_slaves(struct device *d, return res; } -static DEVICE_ATTR(slaves, S_IRUGO | S_IWUSR, bonding_show_slaves, +static DEVICE_ATTR(slaves, 0644, bonding_show_slaves, bonding_sysfs_store_option); /* Show the bonding mode. */ @@ -216,8 +216,7 @@ static ssize_t bonding_show_mode(struct device *d, return sprintf(buf, "%s %d\n", val->string, BOND_MODE(bond)); } -static DEVICE_ATTR(mode, S_IRUGO | S_IWUSR, - bonding_show_mode, bonding_sysfs_store_option); +static DEVICE_ATTR(mode, 0644, bonding_show_mode, bonding_sysfs_store_option); /* Show the bonding transmit hash method. */ static ssize_t bonding_show_xmit_hash(struct device *d, @@ -231,7 +230,7 @@ static ssize_t bonding_show_xmit_hash(struct device *d, return sprintf(buf, "%s %d\n", val->string, bond->params.xmit_policy); } -static DEVICE_ATTR(xmit_hash_policy, S_IRUGO | S_IWUSR, +static DEVICE_ATTR(xmit_hash_policy, 0644, bonding_show_xmit_hash, bonding_sysfs_store_option); /* Show arp_validate. */ @@ -247,7 +246,7 @@ static ssize_t bonding_show_arp_validate(struct device *d, return sprintf(buf, "%s %d\n", val->string, bond->params.arp_validate); } -static DEVICE_ATTR(arp_validate, S_IRUGO | S_IWUSR, bonding_show_arp_validate, +static DEVICE_ATTR(arp_validate, 0644, bonding_show_arp_validate, bonding_sysfs_store_option); /* Show arp_all_targets. */ @@ -263,7 +262,7 @@ static ssize_t bonding_show_arp_all_targets(struct device *d, return sprintf(buf, "%s %d\n", val->string, bond->params.arp_all_targets); } -static DEVICE_ATTR(arp_all_targets, S_IRUGO | S_IWUSR, +static DEVICE_ATTR(arp_all_targets, 0644, bonding_show_arp_all_targets, bonding_sysfs_store_option); /* Show fail_over_mac. */ @@ -279,7 +278,7 @@ static ssize_t bonding_show_fail_over_mac(struct device *d, return sprintf(buf, "%s %d\n", val->string, bond->params.fail_over_mac); } -static DEVICE_ATTR(fail_over_mac, S_IRUGO | S_IWUSR, +static DEVICE_ATTR(fail_over_mac, 0644, bonding_show_fail_over_mac, bonding_sysfs_store_option); /* Show the arp timer interval. */ @@ -291,7 +290,7 @@ static ssize_t bonding_show_arp_interval(struct device *d, return sprintf(buf, "%d\n", bond->params.arp_interval); } -static DEVICE_ATTR(arp_interval, S_IRUGO | S_IWUSR, +static DEVICE_ATTR(arp_interval, 0644, bonding_show_arp_interval, bonding_sysfs_store_option); /* Show the arp targets. */ @@ -312,7 +311,7 @@ static ssize_t bonding_show_arp_targets(struct device *d, return res; } -static DEVICE_ATTR(arp_ip_target, S_IRUGO | S_IWUSR, +static DEVICE_ATTR(arp_ip_target, 0644, bonding_show_arp_targets, bonding_sysfs_store_option); /* Show the up and down delays. */ @@ -324,7 +323,7 @@ static ssize_t bonding_show_downdelay(struct device *d, return sprintf(buf, "%d\n", bond->params.downdelay * bond->params.miimon); } -static DEVICE_ATTR(downdelay, S_IRUGO | S_IWUSR, +static DEVICE_ATTR(downdelay, 0644, bonding_show_downdelay, bonding_sysfs_store_option); static ssize_t bonding_show_updelay(struct device *d, @@ -336,7 +335,7 @@ static ssize_t bonding_show_updelay(struct device *d, return sprintf(buf, "%d\n", bond->params.updelay * bond->params.miimon); } -static DEVICE_ATTR(updelay, S_IRUGO | S_IWUSR, +static DEVICE_ATTR(updelay, 0644, bonding_show_updelay, bonding_sysfs_store_option); /* Show the LACP interval. */ @@ -351,7 +350,7 @@ static ssize_t bonding_show_lacp(struct device *d, return sprintf(buf, "%s %d\n", val->string, bond->params.lacp_fast); } -static DEVICE_ATTR(lacp_rate, S_IRUGO | S_IWUSR, +static DEVICE_ATTR(lacp_rate, 0644, bonding_show_lacp, bonding_sysfs_store_option); static ssize_t bonding_show_min_links(struct device *d, @@ -362,7 +361,7 @@ static ssize_t bonding_show_min_links(struct device *d, return sprintf(buf, "%u\n", bond->params.min_links); } -static DEVICE_ATTR(min_links, S_IRUGO | S_IWUSR, +static DEVICE_ATTR(min_links, 0644, bonding_show_min_links, bonding_sysfs_store_option); static ssize_t bonding_show_ad_select(struct device *d, @@ -376,7 +375,7 @@ static ssize_t bonding_show_ad_select(struct device *d, return sprintf(buf, "%s %d\n", val->string, bond->params.ad_select); } -static DEVICE_ATTR(ad_select, S_IRUGO | S_IWUSR, +static DEVICE_ATTR(ad_select, 0644, bonding_show_ad_select, bonding_sysfs_store_option); /* Show the number of peer notifications to send after a failover event. */ @@ -387,9 +386,9 @@ static ssize_t bonding_show_num_peer_notif(struct device *d, struct bonding *bond = to_bond(d); return sprintf(buf, "%d\n", bond->params.num_peer_notif); } -static DEVICE_ATTR(num_grat_arp, S_IRUGO | S_IWUSR, +static DEVICE_ATTR(num_grat_arp, 0644, bonding_show_num_peer_notif, bonding_sysfs_store_option); -static DEVICE_ATTR(num_unsol_na, S_IRUGO | S_IWUSR, +static DEVICE_ATTR(num_unsol_na, 0644, bonding_show_num_peer_notif, bonding_sysfs_store_option); /* Show the MII monitor interval. */ @@ -401,7 +400,7 @@ static ssize_t bonding_show_miimon(struct device *d, return sprintf(buf, "%d\n", bond->params.miimon); } -static DEVICE_ATTR(miimon, S_IRUGO | S_IWUSR, +static DEVICE_ATTR(miimon, 0644, bonding_show_miimon, bonding_sysfs_store_option); /* Show the primary slave. */ @@ -421,7 +420,7 @@ static ssize_t bonding_show_primary(struct device *d, return count; } -static DEVICE_ATTR(primary, S_IRUGO | S_IWUSR, +static DEVICE_ATTR(primary, 0644, bonding_show_primary, bonding_sysfs_store_option); /* Show the primary_reselect flag. */ @@ -438,7 +437,7 @@ static ssize_t bonding_show_primary_reselect(struct device *d, return sprintf(buf, "%s %d\n", val->string, bond->params.primary_reselect); } -static DEVICE_ATTR(primary_reselect, S_IRUGO | S_IWUSR, +static DEVICE_ATTR(primary_reselect, 0644, bonding_show_primary_reselect, bonding_sysfs_store_option); /* Show the use_carrier flag. */ @@ -450,7 +449,7 @@ static ssize_t bonding_show_carrier(struct device *d, return sprintf(buf, "%d\n", bond->params.use_carrier); } -static DEVICE_ATTR(use_carrier, S_IRUGO | S_IWUSR, +static DEVICE_ATTR(use_carrier, 0644, bonding_show_carrier, bonding_sysfs_store_option); @@ -471,7 +470,7 @@ static ssize_t bonding_show_active_slave(struct device *d, return count; } -static DEVICE_ATTR(active_slave, S_IRUGO | S_IWUSR, +static DEVICE_ATTR(active_slave, 0644, bonding_show_active_slave, bonding_sysfs_store_option); /* Show link status of the bond interface. */ @@ -484,7 +483,7 @@ static ssize_t bonding_show_mii_status(struct device *d, return sprintf(buf, "%s\n", active ? "up" : "down"); } -static DEVICE_ATTR(mii_status, S_IRUGO, bonding_show_mii_status, NULL); +static DEVICE_ATTR(mii_status, 0444, bonding_show_mii_status, NULL); /* Show current 802.3ad aggregator ID. */ static ssize_t bonding_show_ad_aggregator(struct device *d, @@ -503,7 +502,7 @@ static ssize_t bonding_show_ad_aggregator(struct device *d, return count; } -static DEVICE_ATTR(ad_aggregator, S_IRUGO, bonding_show_ad_aggregator, NULL); +static DEVICE_ATTR(ad_aggregator, 0444, bonding_show_ad_aggregator, NULL); /* Show number of active 802.3ad ports. */ @@ -523,7 +522,7 @@ static ssize_t bonding_show_ad_num_ports(struct device *d, return count; } -static DEVICE_ATTR(ad_num_ports, S_IRUGO, bonding_show_ad_num_ports, NULL); +static DEVICE_ATTR(ad_num_ports, 0444, bonding_show_ad_num_ports, NULL); /* Show current 802.3ad actor key. */ @@ -543,7 +542,7 @@ static ssize_t bonding_show_ad_actor_key(struct device *d, return count; } -static DEVICE_ATTR(ad_actor_key, S_IRUGO, bonding_show_ad_actor_key, NULL); +static DEVICE_ATTR(ad_actor_key, 0444, bonding_show_ad_actor_key, NULL); /* Show current 802.3ad partner key. */ @@ -563,7 +562,7 @@ static ssize_t bonding_show_ad_partner_key(struct device *d, return count; } -static DEVICE_ATTR(ad_partner_key, S_IRUGO, bonding_show_ad_partner_key, NULL); +static DEVICE_ATTR(ad_partner_key, 0444, bonding_show_ad_partner_key, NULL); /* Show current 802.3ad partner mac. */ @@ -582,7 +581,7 @@ static ssize_t bonding_show_ad_partner_mac(struct device *d, return count; } -static DEVICE_ATTR(ad_partner_mac, S_IRUGO, bonding_show_ad_partner_mac, NULL); +static DEVICE_ATTR(ad_partner_mac, 0444, bonding_show_ad_partner_mac, NULL); /* Show the queue_ids of the slaves in the current bond. */ static ssize_t bonding_show_queue_id(struct device *d, @@ -615,7 +614,7 @@ static ssize_t bonding_show_queue_id(struct device *d, return res; } -static DEVICE_ATTR(queue_id, S_IRUGO | S_IWUSR, bonding_show_queue_id, +static DEVICE_ATTR(queue_id, 0644, bonding_show_queue_id, bonding_sysfs_store_option); @@ -628,7 +627,7 @@ static ssize_t bonding_show_slaves_active(struct device *d, return sprintf(buf, "%d\n", bond->params.all_slaves_active); } -static DEVICE_ATTR(all_slaves_active, S_IRUGO | S_IWUSR, +static DEVICE_ATTR(all_slaves_active, 0644, bonding_show_slaves_active, bonding_sysfs_store_option); /* Show the number of IGMP membership reports to send on link failure */ @@ -640,7 +639,7 @@ static ssize_t bonding_show_resend_igmp(struct device *d, return sprintf(buf, "%d\n", bond->params.resend_igmp); } -static DEVICE_ATTR(resend_igmp, S_IRUGO | S_IWUSR, +static DEVICE_ATTR(resend_igmp, 0644, bonding_show_resend_igmp, bonding_sysfs_store_option); @@ -652,7 +651,7 @@ static ssize_t bonding_show_lp_interval(struct device *d, return sprintf(buf, "%d\n", bond->params.lp_interval); } -static DEVICE_ATTR(lp_interval, S_IRUGO | S_IWUSR, +static DEVICE_ATTR(lp_interval, 0644, bonding_show_lp_interval, bonding_sysfs_store_option); static ssize_t bonding_show_tlb_dynamic_lb(struct device *d, @@ -662,7 +661,7 @@ static ssize_t bonding_show_tlb_dynamic_lb(struct device *d, struct bonding *bond = to_bond(d); return sprintf(buf, "%d\n", bond->params.tlb_dynamic_lb); } -static DEVICE_ATTR(tlb_dynamic_lb, S_IRUGO | S_IWUSR, +static DEVICE_ATTR(tlb_dynamic_lb, 0644, bonding_show_tlb_dynamic_lb, bonding_sysfs_store_option); static ssize_t bonding_show_packets_per_slave(struct device *d, @@ -674,7 +673,7 @@ static ssize_t bonding_show_packets_per_slave(struct device *d, return sprintf(buf, "%u\n", packets_per_slave); } -static DEVICE_ATTR(packets_per_slave, S_IRUGO | S_IWUSR, +static DEVICE_ATTR(packets_per_slave, 0644, bonding_show_packets_per_slave, bonding_sysfs_store_option); static ssize_t bonding_show_ad_actor_sys_prio(struct device *d, @@ -688,7 +687,7 @@ static ssize_t bonding_show_ad_actor_sys_prio(struct device *d, return 0; } -static DEVICE_ATTR(ad_actor_sys_prio, S_IRUGO | S_IWUSR, +static DEVICE_ATTR(ad_actor_sys_prio, 0644, bonding_show_ad_actor_sys_prio, bonding_sysfs_store_option); static ssize_t bonding_show_ad_actor_system(struct device *d, @@ -703,7 +702,7 @@ static ssize_t bonding_show_ad_actor_system(struct device *d, return 0; } -static DEVICE_ATTR(ad_actor_system, S_IRUGO | S_IWUSR, +static DEVICE_ATTR(ad_actor_system, 0644, bonding_show_ad_actor_system, bonding_sysfs_store_option); static ssize_t bonding_show_ad_user_port_key(struct device *d, @@ -717,7 +716,7 @@ static ssize_t bonding_show_ad_user_port_key(struct device *d, return 0; } -static DEVICE_ATTR(ad_user_port_key, S_IRUGO | S_IWUSR, +static DEVICE_ATTR(ad_user_port_key, 0644, bonding_show_ad_user_port_key, bonding_sysfs_store_option); static struct attribute *per_bond_attrs[] = { diff --git a/drivers/net/bonding/bond_sysfs_slave.c b/drivers/net/bonding/bond_sysfs_slave.c index 7d16c51e6913..2f120b2ffef0 100644 --- a/drivers/net/bonding/bond_sysfs_slave.c +++ b/drivers/net/bonding/bond_sysfs_slave.c @@ -25,8 +25,8 @@ const struct slave_attribute slave_attr_##_name = { \ .mode = _mode }, \ .show = _show, \ }; -#define SLAVE_ATTR_RO(_name) \ - SLAVE_ATTR(_name, S_IRUGO, _name##_show) +#define SLAVE_ATTR_RO(_name) \ + SLAVE_ATTR(_name, 0444, _name##_show) static ssize_t state_show(struct slave *slave, char *buf) { diff --git a/drivers/net/caif/caif_serial.c b/drivers/net/caif/caif_serial.c index 709838e4c062..a0f954f36c09 100644 --- a/drivers/net/caif/caif_serial.c +++ b/drivers/net/caif/caif_serial.c @@ -40,20 +40,20 @@ static LIST_HEAD(ser_list); static LIST_HEAD(ser_release_list); static bool ser_loop; -module_param(ser_loop, bool, S_IRUGO); +module_param(ser_loop, bool, 0444); MODULE_PARM_DESC(ser_loop, "Run in simulated loopback mode."); static bool ser_use_stx = true; -module_param(ser_use_stx, bool, S_IRUGO); +module_param(ser_use_stx, bool, 0444); MODULE_PARM_DESC(ser_use_stx, "STX enabled or not."); static bool ser_use_fcs = true; -module_param(ser_use_fcs, bool, S_IRUGO); +module_param(ser_use_fcs, bool, 0444); MODULE_PARM_DESC(ser_use_fcs, "FCS enabled or not."); static int ser_write_chunk = MAX_WRITE_CHUNK; -module_param(ser_write_chunk, int, S_IRUGO); +module_param(ser_write_chunk, int, 0444); MODULE_PARM_DESC(ser_write_chunk, "Maximum size of data written to UART."); @@ -97,21 +97,21 @@ static inline void debugfs_init(struct ser_device *ser, struct tty_struct *tty) ser->debugfs_tty_dir = debugfs_create_dir(tty->name, debugfsdir); if (!IS_ERR(ser->debugfs_tty_dir)) { - debugfs_create_blob("last_tx_msg", S_IRUSR, - ser->debugfs_tty_dir, - &ser->tx_blob); + debugfs_create_blob("last_tx_msg", 0400, + ser->debugfs_tty_dir, + &ser->tx_blob); - debugfs_create_blob("last_rx_msg", S_IRUSR, - ser->debugfs_tty_dir, - &ser->rx_blob); + debugfs_create_blob("last_rx_msg", 0400, + ser->debugfs_tty_dir, + &ser->rx_blob); - debugfs_create_x32("ser_state", S_IRUSR, - ser->debugfs_tty_dir, - (u32 *)&ser->state); + debugfs_create_x32("ser_state", 0400, + ser->debugfs_tty_dir, + (u32 *)&ser->state); - debugfs_create_x8("tty_status", S_IRUSR, - ser->debugfs_tty_dir, - &ser->tty_status); + debugfs_create_x8("tty_status", 0400, + ser->debugfs_tty_dir, + &ser->tty_status); } ser->tx_blob.data = ser->tx_data; diff --git a/drivers/net/caif/caif_spi.c b/drivers/net/caif/caif_spi.c index 980eace53d44..d28a1398c091 100644 --- a/drivers/net/caif/caif_spi.c +++ b/drivers/net/caif/caif_spi.c @@ -35,27 +35,27 @@ MODULE_DESCRIPTION("CAIF SPI driver"); #define PAD_POW2(x, pow) ((((x)&((pow)-1))==0) ? 0 : (((pow)-((x)&((pow)-1))))) static bool spi_loop; -module_param(spi_loop, bool, S_IRUGO); +module_param(spi_loop, bool, 0444); MODULE_PARM_DESC(spi_loop, "SPI running in loopback mode."); /* SPI frame alignment. */ -module_param(spi_frm_align, int, S_IRUGO); +module_param(spi_frm_align, int, 0444); MODULE_PARM_DESC(spi_frm_align, "SPI frame alignment."); /* * SPI padding options. * Warning: must be a base of 2 (& operation used) and can not be zero ! */ -module_param(spi_up_head_align, int, S_IRUGO); +module_param(spi_up_head_align, int, 0444); MODULE_PARM_DESC(spi_up_head_align, "SPI uplink head alignment."); -module_param(spi_up_tail_align, int, S_IRUGO); +module_param(spi_up_tail_align, int, 0444); MODULE_PARM_DESC(spi_up_tail_align, "SPI uplink tail alignment."); -module_param(spi_down_head_align, int, S_IRUGO); +module_param(spi_down_head_align, int, 0444); MODULE_PARM_DESC(spi_down_head_align, "SPI downlink head alignment."); -module_param(spi_down_tail_align, int, S_IRUGO); +module_param(spi_down_tail_align, int, 0444); MODULE_PARM_DESC(spi_down_tail_align, "SPI downlink tail alignment."); #ifdef CONFIG_ARM @@ -250,10 +250,10 @@ static const struct file_operations dbgfs_frame_fops = { static inline void dev_debugfs_add(struct cfspi *cfspi) { cfspi->dbgfs_dir = debugfs_create_dir(cfspi->pdev->name, dbgfs_root); - cfspi->dbgfs_state = debugfs_create_file("state", S_IRUGO, + cfspi->dbgfs_state = debugfs_create_file("state", 0444, cfspi->dbgfs_dir, cfspi, &dbgfs_state_fops); - cfspi->dbgfs_frame = debugfs_create_file("frame", S_IRUGO, + cfspi->dbgfs_frame = debugfs_create_file("frame", 0444, cfspi->dbgfs_dir, cfspi, &dbgfs_frame_fops); } diff --git a/drivers/net/caif/caif_virtio.c b/drivers/net/caif/caif_virtio.c index c3d104feee13..2814e0dee4bb 100644 --- a/drivers/net/caif/caif_virtio.c +++ b/drivers/net/caif/caif_virtio.c @@ -629,21 +629,21 @@ static inline void debugfs_init(struct cfv_info *cfv) if (IS_ERR(cfv->debugfs)) return; - debugfs_create_u32("rx-napi-complete", S_IRUSR, cfv->debugfs, + debugfs_create_u32("rx-napi-complete", 0400, cfv->debugfs, &cfv->stats.rx_napi_complete); - debugfs_create_u32("rx-napi-resched", S_IRUSR, cfv->debugfs, + debugfs_create_u32("rx-napi-resched", 0400, cfv->debugfs, &cfv->stats.rx_napi_resched); - debugfs_create_u32("rx-nomem", S_IRUSR, cfv->debugfs, + debugfs_create_u32("rx-nomem", 0400, cfv->debugfs, &cfv->stats.rx_nomem); - debugfs_create_u32("rx-kicks", S_IRUSR, cfv->debugfs, + debugfs_create_u32("rx-kicks", 0400, cfv->debugfs, &cfv->stats.rx_kicks); - debugfs_create_u32("tx-full-ring", S_IRUSR, cfv->debugfs, + debugfs_create_u32("tx-full-ring", 0400, cfv->debugfs, &cfv->stats.tx_full_ring); - debugfs_create_u32("tx-no-mem", S_IRUSR, cfv->debugfs, + debugfs_create_u32("tx-no-mem", 0400, cfv->debugfs, &cfv->stats.tx_no_mem); - debugfs_create_u32("tx-kicks", S_IRUSR, cfv->debugfs, + debugfs_create_u32("tx-kicks", 0400, cfv->debugfs, &cfv->stats.tx_kicks); - debugfs_create_u32("tx-flow-on", S_IRUSR, cfv->debugfs, + debugfs_create_u32("tx-flow-on", 0400, cfv->debugfs, &cfv->stats.tx_flow_on); } diff --git a/drivers/net/can/at91_can.c b/drivers/net/can/at91_can.c index f37ce0e1b603..d98c69045b17 100644 --- a/drivers/net/can/at91_can.c +++ b/drivers/net/can/at91_can.c @@ -1224,8 +1224,7 @@ static ssize_t at91_sysfs_set_mb0_id(struct device *dev, return ret; } -static DEVICE_ATTR(mb0_id, S_IWUSR | S_IRUGO, - at91_sysfs_show_mb0_id, at91_sysfs_set_mb0_id); +static DEVICE_ATTR(mb0_id, 0644, at91_sysfs_show_mb0_id, at91_sysfs_set_mb0_id); static struct attribute *at91_sysfs_attrs[] = { &dev_attr_mb0_id.attr, diff --git a/drivers/net/can/cc770/cc770.c b/drivers/net/can/cc770/cc770.c index 6da69af103e6..d4dd4da23997 100644 --- a/drivers/net/can/cc770/cc770.c +++ b/drivers/net/can/cc770/cc770.c @@ -67,12 +67,12 @@ MODULE_DESCRIPTION(KBUILD_MODNAME "CAN netdevice driver"); * otherwise 11 bit SFF messages. */ static int msgobj15_eff; -module_param(msgobj15_eff, int, S_IRUGO); +module_param(msgobj15_eff, int, 0444); MODULE_PARM_DESC(msgobj15_eff, "Extended 29-bit frames for message object 15 " "(default: 11-bit standard frames)"); static int i82527_compat; -module_param(i82527_compat, int, S_IRUGO); +module_param(i82527_compat, int, 0444); MODULE_PARM_DESC(i82527_compat, "Strict Intel 82527 comptibility mode " "without using additional functions"); diff --git a/drivers/net/can/cc770/cc770_isa.c b/drivers/net/can/cc770/cc770_isa.c index 3a30fd3b4498..fcd34698074f 100644 --- a/drivers/net/can/cc770/cc770_isa.c +++ b/drivers/net/can/cc770/cc770_isa.c @@ -82,29 +82,29 @@ static u8 cor[MAXDEV] = {[0 ... (MAXDEV - 1)] = 0xff}; static u8 bcr[MAXDEV] = {[0 ... (MAXDEV - 1)] = 0xff}; static int indirect[MAXDEV] = {[0 ... (MAXDEV - 1)] = -1}; -module_param_hw_array(port, ulong, ioport, NULL, S_IRUGO); +module_param_hw_array(port, ulong, ioport, NULL, 0444); MODULE_PARM_DESC(port, "I/O port number"); -module_param_hw_array(mem, ulong, iomem, NULL, S_IRUGO); +module_param_hw_array(mem, ulong, iomem, NULL, 0444); MODULE_PARM_DESC(mem, "I/O memory address"); -module_param_hw_array(indirect, int, ioport, NULL, S_IRUGO); +module_param_hw_array(indirect, int, ioport, NULL, 0444); MODULE_PARM_DESC(indirect, "Indirect access via address and data port"); -module_param_hw_array(irq, int, irq, NULL, S_IRUGO); +module_param_hw_array(irq, int, irq, NULL, 0444); MODULE_PARM_DESC(irq, "IRQ number"); -module_param_array(clk, int, NULL, S_IRUGO); +module_param_array(clk, int, NULL, 0444); MODULE_PARM_DESC(clk, "External oscillator clock frequency " "(default=16000000 [16 MHz])"); -module_param_array(cir, byte, NULL, S_IRUGO); +module_param_array(cir, byte, NULL, 0444); MODULE_PARM_DESC(cir, "CPU interface register (default=0x40 [DSC])"); -module_param_array(cor, byte, NULL, S_IRUGO); +module_param_array(cor, byte, NULL, 0444); MODULE_PARM_DESC(cor, "Clockout register (default=0x00)"); -module_param_array(bcr, byte, NULL, S_IRUGO); +module_param_array(bcr, byte, NULL, 0444); MODULE_PARM_DESC(bcr, "Bus configuration register (default=0x40 [CBY])"); #define CC770_IOSIZE 0x20 diff --git a/drivers/net/can/grcan.c b/drivers/net/can/grcan.c index 897c6b113d3f..2d3046afa80d 100644 --- a/drivers/net/can/grcan.c +++ b/drivers/net/can/grcan.c @@ -1484,7 +1484,7 @@ static netdev_tx_t grcan_start_xmit(struct sk_buff *skb, } \ } \ module_param_named(name, grcan_module_config.name, \ - mtype, S_IRUGO); \ + mtype, 0444); \ MODULE_PARM_DESC(name, desc) #define GRCAN_CONFIG_ATTR(name, desc) \ @@ -1513,7 +1513,7 @@ static netdev_tx_t grcan_start_xmit(struct sk_buff *skb, struct grcan_priv *priv = netdev_priv(dev); \ return sprintf(buf, "%d\n", priv->config.name); \ } \ - static DEVICE_ATTR(name, S_IRUGO | S_IWUSR, \ + static DEVICE_ATTR(name, 0644, \ grcan_show_##name, \ grcan_store_##name); \ GRCAN_MODULE_PARAM(name, ushort, GRCAN_NOT_BOOL, desc) diff --git a/drivers/net/can/janz-ican3.c b/drivers/net/can/janz-ican3.c index 12a53c8e8e1d..adfdb66a486e 100644 --- a/drivers/net/can/janz-ican3.c +++ b/drivers/net/can/janz-ican3.c @@ -1865,9 +1865,9 @@ static ssize_t ican3_sysfs_show_fwinfo(struct device *dev, return scnprintf(buf, PAGE_SIZE, "%s\n", mod->fwinfo); } -static DEVICE_ATTR(termination, S_IWUSR | S_IRUGO, ican3_sysfs_show_term, - ican3_sysfs_set_term); -static DEVICE_ATTR(fwinfo, S_IRUSR | S_IRUGO, ican3_sysfs_show_fwinfo, NULL); +static DEVICE_ATTR(termination, 0644, ican3_sysfs_show_term, + ican3_sysfs_set_term); +static DEVICE_ATTR(fwinfo, 0444, ican3_sysfs_show_fwinfo, NULL); static struct attribute *ican3_sysfs_attrs[] = { &dev_attr_termination.attr, diff --git a/drivers/net/can/sja1000/sja1000_isa.c b/drivers/net/can/sja1000/sja1000_isa.c index a89c1e92554d..1a2ae6ce8d87 100644 --- a/drivers/net/can/sja1000/sja1000_isa.c +++ b/drivers/net/can/sja1000/sja1000_isa.c @@ -48,27 +48,27 @@ static unsigned char ocr[MAXDEV] = {[0 ... (MAXDEV - 1)] = 0xff}; static int indirect[MAXDEV] = {[0 ... (MAXDEV - 1)] = -1}; static spinlock_t indirect_lock[MAXDEV]; /* lock for indirect access mode */ -module_param_hw_array(port, ulong, ioport, NULL, S_IRUGO); +module_param_hw_array(port, ulong, ioport, NULL, 0444); MODULE_PARM_DESC(port, "I/O port number"); -module_param_hw_array(mem, ulong, iomem, NULL, S_IRUGO); +module_param_hw_array(mem, ulong, iomem, NULL, 0444); MODULE_PARM_DESC(mem, "I/O memory address"); -module_param_hw_array(indirect, int, ioport, NULL, S_IRUGO); +module_param_hw_array(indirect, int, ioport, NULL, 0444); MODULE_PARM_DESC(indirect, "Indirect access via address and data port"); -module_param_hw_array(irq, int, irq, NULL, S_IRUGO); +module_param_hw_array(irq, int, irq, NULL, 0444); MODULE_PARM_DESC(irq, "IRQ number"); -module_param_array(clk, int, NULL, S_IRUGO); +module_param_array(clk, int, NULL, 0444); MODULE_PARM_DESC(clk, "External oscillator clock frequency " "(default=16000000 [16 MHz])"); -module_param_array(cdr, byte, NULL, S_IRUGO); +module_param_array(cdr, byte, NULL, 0444); MODULE_PARM_DESC(cdr, "Clock divider register " "(default=0x48 [CDR_CBP | CDR_CLK_OFF])"); -module_param_array(ocr, byte, NULL, S_IRUGO); +module_param_array(ocr, byte, NULL, 0444); MODULE_PARM_DESC(ocr, "Output control register " "(default=0x18 [OCR_TX0_PUSHPULL])"); diff --git a/drivers/net/can/softing/softing_main.c b/drivers/net/can/softing/softing_main.c index 5f64deec9f6c..e22696190583 100644 --- a/drivers/net/can/softing/softing_main.c +++ b/drivers/net/can/softing/softing_main.c @@ -601,8 +601,8 @@ static ssize_t store_output(struct device *dev, struct device_attribute *attr, return count; } -static const DEVICE_ATTR(chip, S_IRUGO, show_chip, NULL); -static const DEVICE_ATTR(output, S_IRUGO | S_IWUSR, show_output, store_output); +static const DEVICE_ATTR(chip, 0444, show_chip, NULL); +static const DEVICE_ATTR(output, 0644, show_output, store_output); static const struct attribute *const netdev_sysfs_attrs[] = { &dev_attr_chip.attr, diff --git a/drivers/net/can/spi/mcp251x.c b/drivers/net/can/spi/mcp251x.c index 98d118b3aaf4..e90817608645 100644 --- a/drivers/net/can/spi/mcp251x.c +++ b/drivers/net/can/spi/mcp251x.c @@ -220,7 +220,7 @@ #define DEVICE_NAME "mcp251x" static int mcp251x_enable_dma; /* Enable SPI DMA. Default: 0 (Off) */ -module_param(mcp251x_enable_dma, int, S_IRUGO); +module_param(mcp251x_enable_dma, int, 0444); MODULE_PARM_DESC(mcp251x_enable_dma, "Enable SPI DMA. Default: 0 (Off)"); static const struct can_bittiming_const mcp251x_bittiming_const = { diff --git a/drivers/net/can/usb/esd_usb2.c b/drivers/net/can/usb/esd_usb2.c index c6dcf93675c0..5820fd5b69b5 100644 --- a/drivers/net/can/usb/esd_usb2.c +++ b/drivers/net/can/usb/esd_usb2.c @@ -496,7 +496,7 @@ static ssize_t show_firmware(struct device *d, (dev->version >> 8) & 0xf, dev->version & 0xff); } -static DEVICE_ATTR(firmware, S_IRUGO, show_firmware, NULL); +static DEVICE_ATTR(firmware, 0444, show_firmware, NULL); static ssize_t show_hardware(struct device *d, struct device_attribute *attr, char *buf) @@ -509,7 +509,7 @@ static ssize_t show_hardware(struct device *d, (dev->version >> 24) & 0xf, (dev->version >> 16) & 0xff); } -static DEVICE_ATTR(hardware, S_IRUGO, show_hardware, NULL); +static DEVICE_ATTR(hardware, 0444, show_hardware, NULL); static ssize_t show_nets(struct device *d, struct device_attribute *attr, char *buf) @@ -519,7 +519,7 @@ static ssize_t show_nets(struct device *d, return sprintf(buf, "%d", dev->net_count); } -static DEVICE_ATTR(nets, S_IRUGO, show_nets, NULL); +static DEVICE_ATTR(nets, 0444, show_nets, NULL); static int esd_usb2_send_msg(struct esd_usb2 *dev, struct esd_usb2_msg *msg) { diff --git a/drivers/net/can/vcan.c b/drivers/net/can/vcan.c index c2b04f505e16..d200a5b0651c 100644 --- a/drivers/net/can/vcan.c +++ b/drivers/net/can/vcan.c @@ -65,7 +65,7 @@ MODULE_ALIAS_RTNL_LINK(DRV_NAME); */ static bool echo; /* echo testing. Default: 0 (Off) */ -module_param(echo, bool, S_IRUGO); +module_param(echo, bool, 0444); MODULE_PARM_DESC(echo, "Echo sent frames (for testing). Default: 0 (Off)"); diff --git a/drivers/net/hamradio/bpqether.c b/drivers/net/hamradio/bpqether.c index 78a6414c5fd9..dfabbae72efd 100644 --- a/drivers/net/hamradio/bpqether.c +++ b/drivers/net/hamradio/bpqether.c @@ -590,8 +590,7 @@ static int bpq_device_event(struct notifier_block *this, static int __init bpq_init_driver(void) { #ifdef CONFIG_PROC_FS - if (!proc_create("bpqether", S_IRUGO, init_net.proc_net, - &bpq_info_fops)) { + if (!proc_create("bpqether", 0444, init_net.proc_net, &bpq_info_fops)) { printk(KERN_ERR "bpq: cannot create /proc/net/bpqether entry.\n"); return -ENOENT; diff --git a/drivers/net/hamradio/yam.c b/drivers/net/hamradio/yam.c index 14c3632b8cde..83034eb7ed4f 100644 --- a/drivers/net/hamradio/yam.c +++ b/drivers/net/hamradio/yam.c @@ -1168,7 +1168,7 @@ static int __init yam_init_driver(void) yam_timer.expires = jiffies + HZ / 100; add_timer(&yam_timer); - proc_create("yam", S_IRUGO, init_net.proc_net, &yam_info_fops); + proc_create("yam", 0444, init_net.proc_net, &yam_info_fops); return 0; error: while (--i >= 0) { diff --git a/drivers/net/hyperv/netvsc_drv.c b/drivers/net/hyperv/netvsc_drv.c index f28c85d212ce..9f43a20ee7de 100644 --- a/drivers/net/hyperv/netvsc_drv.c +++ b/drivers/net/hyperv/netvsc_drv.c @@ -55,7 +55,7 @@ #define VF_TAKEOVER_INT (HZ / 10) static unsigned int ring_size __ro_after_init = 128; -module_param(ring_size, uint, S_IRUGO); +module_param(ring_size, uint, 0444); MODULE_PARM_DESC(ring_size, "Ring buffer size (# of pages)"); unsigned int netvsc_ring_bytes __ro_after_init; struct reciprocal_value netvsc_ring_reciprocal __ro_after_init; @@ -66,7 +66,7 @@ static const u32 default_msg = NETIF_MSG_DRV | NETIF_MSG_PROBE | NETIF_MSG_TX_ERR; static int debug = -1; -module_param(debug, int, S_IRUGO); +module_param(debug, int, 0444); MODULE_PARM_DESC(debug, "Debug level (0=none,...,16=all)"); static void netvsc_change_rx_flags(struct net_device *net, int change) diff --git a/drivers/net/ieee802154/at86rf230.c b/drivers/net/ieee802154/at86rf230.c index 548d9d026a85..77abedf0b524 100644 --- a/drivers/net/ieee802154/at86rf230.c +++ b/drivers/net/ieee802154/at86rf230.c @@ -1661,7 +1661,7 @@ static int at86rf230_debugfs_init(struct at86rf230_local *lp) if (!at86rf230_debugfs_root) return -ENOMEM; - stats = debugfs_create_file("trac_stats", S_IRUGO, + stats = debugfs_create_file("trac_stats", 0444, at86rf230_debugfs_root, lp, &at86rf230_stats_fops); if (!stats) diff --git a/drivers/net/phy/spi_ks8995.c b/drivers/net/phy/spi_ks8995.c index 1e2d4f1179da..f17b3441779b 100644 --- a/drivers/net/phy/spi_ks8995.c +++ b/drivers/net/phy/spi_ks8995.c @@ -417,7 +417,7 @@ static void ks8995_parse_dt(struct ks8995_switch *ks) static const struct bin_attribute ks8995_registers_attr = { .attr = { .name = "registers", - .mode = S_IRUSR | S_IWUSR, + .mode = 0600, }, .size = KS8995_REGS_SIZE, .read = ks8995_registers_read, diff --git a/drivers/net/ppp/ppp_generic.c b/drivers/net/ppp/ppp_generic.c index 926c2c322d43..22fcff3c7a9a 100644 --- a/drivers/net/ppp/ppp_generic.c +++ b/drivers/net/ppp/ppp_generic.c @@ -1687,7 +1687,7 @@ ppp_push(struct ppp *ppp) #ifdef CONFIG_PPP_MULTILINK static bool mp_protocol_compress __read_mostly = true; -module_param(mp_protocol_compress, bool, S_IRUGO | S_IWUSR); +module_param(mp_protocol_compress, bool, 0644); MODULE_PARM_DESC(mp_protocol_compress, "compress protocol id in multilink fragments"); diff --git a/drivers/net/ppp/pppoe.c b/drivers/net/ppp/pppoe.c index c10e6181a2f0..f9552a400271 100644 --- a/drivers/net/ppp/pppoe.c +++ b/drivers/net/ppp/pppoe.c @@ -1142,7 +1142,7 @@ static __net_init int pppoe_init_net(struct net *net) rwlock_init(&pn->hash_lock); - pde = proc_create("pppoe", S_IRUGO, net->proc_net, &pppoe_seq_fops); + pde = proc_create("pppoe", 0444, net->proc_net, &pppoe_seq_fops); #ifdef CONFIG_PROC_FS if (!pde) return -ENOMEM; diff --git a/drivers/net/usb/cdc_ncm.c b/drivers/net/usb/cdc_ncm.c index 9e1b74590682..90d07ed224d5 100644 --- a/drivers/net/usb/cdc_ncm.c +++ b/drivers/net/usb/cdc_ncm.c @@ -58,7 +58,7 @@ static bool prefer_mbim = true; #else static bool prefer_mbim; #endif -module_param(prefer_mbim, bool, S_IRUGO | S_IWUSR); +module_param(prefer_mbim, bool, 0644); MODULE_PARM_DESC(prefer_mbim, "Prefer MBIM setting on dual NCM/MBIM functions"); static void cdc_ncm_txpath_bh(unsigned long param); @@ -281,10 +281,10 @@ static ssize_t cdc_ncm_store_tx_timer_usecs(struct device *d, struct device_att return len; } -static DEVICE_ATTR(min_tx_pkt, S_IRUGO | S_IWUSR, cdc_ncm_show_min_tx_pkt, cdc_ncm_store_min_tx_pkt); -static DEVICE_ATTR(rx_max, S_IRUGO | S_IWUSR, cdc_ncm_show_rx_max, cdc_ncm_store_rx_max); -static DEVICE_ATTR(tx_max, S_IRUGO | S_IWUSR, cdc_ncm_show_tx_max, cdc_ncm_store_tx_max); -static DEVICE_ATTR(tx_timer_usecs, S_IRUGO | S_IWUSR, cdc_ncm_show_tx_timer_usecs, cdc_ncm_store_tx_timer_usecs); +static DEVICE_ATTR(min_tx_pkt, 0644, cdc_ncm_show_min_tx_pkt, cdc_ncm_store_min_tx_pkt); +static DEVICE_ATTR(rx_max, 0644, cdc_ncm_show_rx_max, cdc_ncm_store_rx_max); +static DEVICE_ATTR(tx_max, 0644, cdc_ncm_show_tx_max, cdc_ncm_store_tx_max); +static DEVICE_ATTR(tx_timer_usecs, 0644, cdc_ncm_show_tx_timer_usecs, cdc_ncm_store_tx_timer_usecs); static ssize_t ndp_to_end_show(struct device *d, struct device_attribute *attr, char *buf) { @@ -335,7 +335,7 @@ static ssize_t cdc_ncm_show_##name(struct device *d, struct device_attribute *at struct cdc_ncm_ctx *ctx = (struct cdc_ncm_ctx *)dev->data[0]; \ return sprintf(buf, format "\n", tocpu(ctx->ncm_parm.name)); \ } \ -static DEVICE_ATTR(name, S_IRUGO, cdc_ncm_show_##name, NULL) +static DEVICE_ATTR(name, 0444, cdc_ncm_show_##name, NULL) NCM_PARM_ATTR(bmNtbFormatsSupported, "0x%04x", le16_to_cpu); NCM_PARM_ATTR(dwNtbInMaxSize, "%u", le32_to_cpu); diff --git a/drivers/net/usb/hso.c b/drivers/net/usb/hso.c index 981c931a7a1f..e53883ad6107 100644 --- a/drivers/net/usb/hso.c +++ b/drivers/net/usb/hso.c @@ -519,7 +519,7 @@ static ssize_t hso_sysfs_show_porttype(struct device *dev, return sprintf(buf, "%s\n", port_name); } -static DEVICE_ATTR(hsotype, S_IRUGO, hso_sysfs_show_porttype, NULL); +static DEVICE_ATTR(hsotype, 0444, hso_sysfs_show_porttype, NULL); static struct attribute *hso_serial_dev_attrs[] = { &dev_attr_hsotype.attr, @@ -3289,12 +3289,12 @@ MODULE_LICENSE("GPL"); /* change the debug level (eg: insmod hso.ko debug=0x04) */ MODULE_PARM_DESC(debug, "debug level mask [0x01 | 0x02 | 0x04 | 0x08 | 0x10]"); -module_param(debug, int, S_IRUGO | S_IWUSR); +module_param(debug, int, 0644); /* set the major tty number (eg: insmod hso.ko tty_major=245) */ MODULE_PARM_DESC(tty_major, "Set the major tty number"); -module_param(tty_major, int, S_IRUGO | S_IWUSR); +module_param(tty_major, int, 0644); /* disable network interface (eg: insmod hso.ko disable_net=1) */ MODULE_PARM_DESC(disable_net, "Disable the network interface"); -module_param(disable_net, int, S_IRUGO | S_IWUSR); +module_param(disable_net, int, 0644); diff --git a/drivers/net/xen-netback/xenbus.c b/drivers/net/xen-netback/xenbus.c index a56d3eab35dd..e1aef253601e 100644 --- a/drivers/net/xen-netback/xenbus.c +++ b/drivers/net/xen-netback/xenbus.c @@ -224,7 +224,7 @@ static void xenvif_debugfs_addif(struct xenvif *vif) snprintf(filename, sizeof(filename), "io_ring_q%d", i); pfile = debugfs_create_file(filename, - S_IRUSR | S_IWUSR, + 0600, vif->xenvif_dbg_root, &vif->queues[i], &xenvif_dbg_io_ring_ops_fops); @@ -235,7 +235,7 @@ static void xenvif_debugfs_addif(struct xenvif *vif) if (vif->ctrl_irq) { pfile = debugfs_create_file("ctrl", - S_IRUSR, + 0400, vif->xenvif_dbg_root, vif, &xenvif_dbg_ctrl_ops_fops); diff --git a/drivers/net/xen-netfront.c b/drivers/net/xen-netfront.c index 3127bc8633ca..4dd0668003e7 100644 --- a/drivers/net/xen-netfront.c +++ b/drivers/net/xen-netfront.c @@ -2113,9 +2113,9 @@ static ssize_t store_rxbuf(struct device *dev, return len; } -static DEVICE_ATTR(rxbuf_min, S_IRUGO|S_IWUSR, show_rxbuf, store_rxbuf); -static DEVICE_ATTR(rxbuf_max, S_IRUGO|S_IWUSR, show_rxbuf, store_rxbuf); -static DEVICE_ATTR(rxbuf_cur, S_IRUGO, show_rxbuf, NULL); +static DEVICE_ATTR(rxbuf_min, 0644, show_rxbuf, store_rxbuf); +static DEVICE_ATTR(rxbuf_max, 0644, show_rxbuf, store_rxbuf); +static DEVICE_ATTR(rxbuf_cur, 0444, show_rxbuf, NULL); static struct attribute *xennet_dev_attrs[] = { &dev_attr_rxbuf_min.attr, -- 2.15.0 From mboxrd@z Thu Jan 1 00:00:00 1970 From: Joe Perches Date: Fri, 23 Mar 2018 22:54:39 +0000 Subject: [PATCH 4/4] drivers/net: Use octal not symbolic permissions Message-Id: <8f24a711e6b8ec7b41356c378140fb54d510205c.1521845248.git.joe@perches.com> List-Id: References: In-Reply-To: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: Jay Vosburgh , Veaceslav Falico , Andy Gospodarek , Dmitry Tarnyagin , Wolfgang Grandegger , Marc Kleine-Budde , Nicolas Ferre , Alexandre Belloni , Jean-Paul Roubelat , "K. Y. Srinivasan" , Haiyang Zhang , Stephen Hemminger , Alexander Aring , Stefan Schmidt , Andrew Lunn , Florian Fainelli , Paul Mackerras , Michal Ostrowski , Oliver Neukum Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org, linux-can@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-hams@vger.kernel.org, devel@linuxdriverproject.org, linux-wpan@vger.kernel.org, linux-ppp@vger.kernel.org, linux-usb@vger.kernel.org, xen-devel@lists.xenproject.org Prefer the direct use of octal for permissions. Done with checkpatch -f --types=SYMBOLIC_PERMS --fix-inplace and some typing. Miscellanea: o Whitespace neatening around these conversions. Signed-off-by: Joe Perches --- drivers/net/bonding/bond_procfs.c | 2 +- drivers/net/bonding/bond_sysfs.c | 73 +++++++++++++++++----------------- drivers/net/bonding/bond_sysfs_slave.c | 4 +- drivers/net/caif/caif_serial.c | 32 +++++++-------- drivers/net/caif/caif_spi.c | 16 ++++---- drivers/net/caif/caif_virtio.c | 16 ++++---- drivers/net/can/at91_can.c | 3 +- drivers/net/can/cc770/cc770.c | 4 +- drivers/net/can/cc770/cc770_isa.c | 16 ++++---- drivers/net/can/grcan.c | 4 +- drivers/net/can/janz-ican3.c | 6 +-- drivers/net/can/sja1000/sja1000_isa.c | 14 +++---- drivers/net/can/softing/softing_main.c | 4 +- drivers/net/can/spi/mcp251x.c | 2 +- drivers/net/can/usb/esd_usb2.c | 6 +-- drivers/net/can/vcan.c | 2 +- drivers/net/hamradio/bpqether.c | 3 +- drivers/net/hamradio/yam.c | 2 +- drivers/net/hyperv/netvsc_drv.c | 4 +- drivers/net/ieee802154/at86rf230.c | 2 +- drivers/net/phy/spi_ks8995.c | 2 +- drivers/net/ppp/ppp_generic.c | 2 +- drivers/net/ppp/pppoe.c | 2 +- drivers/net/usb/cdc_ncm.c | 12 +++--- drivers/net/usb/hso.c | 8 ++-- drivers/net/xen-netback/xenbus.c | 4 +- drivers/net/xen-netfront.c | 6 +-- 27 files changed, 124 insertions(+), 127 deletions(-) diff --git a/drivers/net/bonding/bond_procfs.c b/drivers/net/bonding/bond_procfs.c index f7799321dffb..01059f1a7bca 100644 --- a/drivers/net/bonding/bond_procfs.c +++ b/drivers/net/bonding/bond_procfs.c @@ -287,7 +287,7 @@ void bond_create_proc_entry(struct bonding *bond) if (bn->proc_dir) { bond->proc_entry = proc_create_data(bond_dev->name, - S_IRUGO, bn->proc_dir, + 0444, bn->proc_dir, &bond_info_fops, bond); if (bond->proc_entry = NULL) netdev_warn(bond_dev, "Cannot create /proc/net/%s/%s\n", diff --git a/drivers/net/bonding/bond_sysfs.c b/drivers/net/bonding/bond_sysfs.c index 040b493f60ae..6096440e96ea 100644 --- a/drivers/net/bonding/bond_sysfs.c +++ b/drivers/net/bonding/bond_sysfs.c @@ -147,7 +147,7 @@ static ssize_t bonding_store_bonds(struct class *cls, static const struct class_attribute class_attr_bonding_masters = { .attr = { .name = "bonding_masters", - .mode = S_IWUSR | S_IRUGO, + .mode = 0644, }, .show = bonding_show_bonds, .store = bonding_store_bonds, @@ -202,7 +202,7 @@ static ssize_t bonding_show_slaves(struct device *d, return res; } -static DEVICE_ATTR(slaves, S_IRUGO | S_IWUSR, bonding_show_slaves, +static DEVICE_ATTR(slaves, 0644, bonding_show_slaves, bonding_sysfs_store_option); /* Show the bonding mode. */ @@ -216,8 +216,7 @@ static ssize_t bonding_show_mode(struct device *d, return sprintf(buf, "%s %d\n", val->string, BOND_MODE(bond)); } -static DEVICE_ATTR(mode, S_IRUGO | S_IWUSR, - bonding_show_mode, bonding_sysfs_store_option); +static DEVICE_ATTR(mode, 0644, bonding_show_mode, bonding_sysfs_store_option); /* Show the bonding transmit hash method. */ static ssize_t bonding_show_xmit_hash(struct device *d, @@ -231,7 +230,7 @@ static ssize_t bonding_show_xmit_hash(struct device *d, return sprintf(buf, "%s %d\n", val->string, bond->params.xmit_policy); } -static DEVICE_ATTR(xmit_hash_policy, S_IRUGO | S_IWUSR, +static DEVICE_ATTR(xmit_hash_policy, 0644, bonding_show_xmit_hash, bonding_sysfs_store_option); /* Show arp_validate. */ @@ -247,7 +246,7 @@ static ssize_t bonding_show_arp_validate(struct device *d, return sprintf(buf, "%s %d\n", val->string, bond->params.arp_validate); } -static DEVICE_ATTR(arp_validate, S_IRUGO | S_IWUSR, bonding_show_arp_validate, +static DEVICE_ATTR(arp_validate, 0644, bonding_show_arp_validate, bonding_sysfs_store_option); /* Show arp_all_targets. */ @@ -263,7 +262,7 @@ static ssize_t bonding_show_arp_all_targets(struct device *d, return sprintf(buf, "%s %d\n", val->string, bond->params.arp_all_targets); } -static DEVICE_ATTR(arp_all_targets, S_IRUGO | S_IWUSR, +static DEVICE_ATTR(arp_all_targets, 0644, bonding_show_arp_all_targets, bonding_sysfs_store_option); /* Show fail_over_mac. */ @@ -279,7 +278,7 @@ static ssize_t bonding_show_fail_over_mac(struct device *d, return sprintf(buf, "%s %d\n", val->string, bond->params.fail_over_mac); } -static DEVICE_ATTR(fail_over_mac, S_IRUGO | S_IWUSR, +static DEVICE_ATTR(fail_over_mac, 0644, bonding_show_fail_over_mac, bonding_sysfs_store_option); /* Show the arp timer interval. */ @@ -291,7 +290,7 @@ static ssize_t bonding_show_arp_interval(struct device *d, return sprintf(buf, "%d\n", bond->params.arp_interval); } -static DEVICE_ATTR(arp_interval, S_IRUGO | S_IWUSR, +static DEVICE_ATTR(arp_interval, 0644, bonding_show_arp_interval, bonding_sysfs_store_option); /* Show the arp targets. */ @@ -312,7 +311,7 @@ static ssize_t bonding_show_arp_targets(struct device *d, return res; } -static DEVICE_ATTR(arp_ip_target, S_IRUGO | S_IWUSR, +static DEVICE_ATTR(arp_ip_target, 0644, bonding_show_arp_targets, bonding_sysfs_store_option); /* Show the up and down delays. */ @@ -324,7 +323,7 @@ static ssize_t bonding_show_downdelay(struct device *d, return sprintf(buf, "%d\n", bond->params.downdelay * bond->params.miimon); } -static DEVICE_ATTR(downdelay, S_IRUGO | S_IWUSR, +static DEVICE_ATTR(downdelay, 0644, bonding_show_downdelay, bonding_sysfs_store_option); static ssize_t bonding_show_updelay(struct device *d, @@ -336,7 +335,7 @@ static ssize_t bonding_show_updelay(struct device *d, return sprintf(buf, "%d\n", bond->params.updelay * bond->params.miimon); } -static DEVICE_ATTR(updelay, S_IRUGO | S_IWUSR, +static DEVICE_ATTR(updelay, 0644, bonding_show_updelay, bonding_sysfs_store_option); /* Show the LACP interval. */ @@ -351,7 +350,7 @@ static ssize_t bonding_show_lacp(struct device *d, return sprintf(buf, "%s %d\n", val->string, bond->params.lacp_fast); } -static DEVICE_ATTR(lacp_rate, S_IRUGO | S_IWUSR, +static DEVICE_ATTR(lacp_rate, 0644, bonding_show_lacp, bonding_sysfs_store_option); static ssize_t bonding_show_min_links(struct device *d, @@ -362,7 +361,7 @@ static ssize_t bonding_show_min_links(struct device *d, return sprintf(buf, "%u\n", bond->params.min_links); } -static DEVICE_ATTR(min_links, S_IRUGO | S_IWUSR, +static DEVICE_ATTR(min_links, 0644, bonding_show_min_links, bonding_sysfs_store_option); static ssize_t bonding_show_ad_select(struct device *d, @@ -376,7 +375,7 @@ static ssize_t bonding_show_ad_select(struct device *d, return sprintf(buf, "%s %d\n", val->string, bond->params.ad_select); } -static DEVICE_ATTR(ad_select, S_IRUGO | S_IWUSR, +static DEVICE_ATTR(ad_select, 0644, bonding_show_ad_select, bonding_sysfs_store_option); /* Show the number of peer notifications to send after a failover event. */ @@ -387,9 +386,9 @@ static ssize_t bonding_show_num_peer_notif(struct device *d, struct bonding *bond = to_bond(d); return sprintf(buf, "%d\n", bond->params.num_peer_notif); } -static DEVICE_ATTR(num_grat_arp, S_IRUGO | S_IWUSR, +static DEVICE_ATTR(num_grat_arp, 0644, bonding_show_num_peer_notif, bonding_sysfs_store_option); -static DEVICE_ATTR(num_unsol_na, S_IRUGO | S_IWUSR, +static DEVICE_ATTR(num_unsol_na, 0644, bonding_show_num_peer_notif, bonding_sysfs_store_option); /* Show the MII monitor interval. */ @@ -401,7 +400,7 @@ static ssize_t bonding_show_miimon(struct device *d, return sprintf(buf, "%d\n", bond->params.miimon); } -static DEVICE_ATTR(miimon, S_IRUGO | S_IWUSR, +static DEVICE_ATTR(miimon, 0644, bonding_show_miimon, bonding_sysfs_store_option); /* Show the primary slave. */ @@ -421,7 +420,7 @@ static ssize_t bonding_show_primary(struct device *d, return count; } -static DEVICE_ATTR(primary, S_IRUGO | S_IWUSR, +static DEVICE_ATTR(primary, 0644, bonding_show_primary, bonding_sysfs_store_option); /* Show the primary_reselect flag. */ @@ -438,7 +437,7 @@ static ssize_t bonding_show_primary_reselect(struct device *d, return sprintf(buf, "%s %d\n", val->string, bond->params.primary_reselect); } -static DEVICE_ATTR(primary_reselect, S_IRUGO | S_IWUSR, +static DEVICE_ATTR(primary_reselect, 0644, bonding_show_primary_reselect, bonding_sysfs_store_option); /* Show the use_carrier flag. */ @@ -450,7 +449,7 @@ static ssize_t bonding_show_carrier(struct device *d, return sprintf(buf, "%d\n", bond->params.use_carrier); } -static DEVICE_ATTR(use_carrier, S_IRUGO | S_IWUSR, +static DEVICE_ATTR(use_carrier, 0644, bonding_show_carrier, bonding_sysfs_store_option); @@ -471,7 +470,7 @@ static ssize_t bonding_show_active_slave(struct device *d, return count; } -static DEVICE_ATTR(active_slave, S_IRUGO | S_IWUSR, +static DEVICE_ATTR(active_slave, 0644, bonding_show_active_slave, bonding_sysfs_store_option); /* Show link status of the bond interface. */ @@ -484,7 +483,7 @@ static ssize_t bonding_show_mii_status(struct device *d, return sprintf(buf, "%s\n", active ? "up" : "down"); } -static DEVICE_ATTR(mii_status, S_IRUGO, bonding_show_mii_status, NULL); +static DEVICE_ATTR(mii_status, 0444, bonding_show_mii_status, NULL); /* Show current 802.3ad aggregator ID. */ static ssize_t bonding_show_ad_aggregator(struct device *d, @@ -503,7 +502,7 @@ static ssize_t bonding_show_ad_aggregator(struct device *d, return count; } -static DEVICE_ATTR(ad_aggregator, S_IRUGO, bonding_show_ad_aggregator, NULL); +static DEVICE_ATTR(ad_aggregator, 0444, bonding_show_ad_aggregator, NULL); /* Show number of active 802.3ad ports. */ @@ -523,7 +522,7 @@ static ssize_t bonding_show_ad_num_ports(struct device *d, return count; } -static DEVICE_ATTR(ad_num_ports, S_IRUGO, bonding_show_ad_num_ports, NULL); +static DEVICE_ATTR(ad_num_ports, 0444, bonding_show_ad_num_ports, NULL); /* Show current 802.3ad actor key. */ @@ -543,7 +542,7 @@ static ssize_t bonding_show_ad_actor_key(struct device *d, return count; } -static DEVICE_ATTR(ad_actor_key, S_IRUGO, bonding_show_ad_actor_key, NULL); +static DEVICE_ATTR(ad_actor_key, 0444, bonding_show_ad_actor_key, NULL); /* Show current 802.3ad partner key. */ @@ -563,7 +562,7 @@ static ssize_t bonding_show_ad_partner_key(struct device *d, return count; } -static DEVICE_ATTR(ad_partner_key, S_IRUGO, bonding_show_ad_partner_key, NULL); +static DEVICE_ATTR(ad_partner_key, 0444, bonding_show_ad_partner_key, NULL); /* Show current 802.3ad partner mac. */ @@ -582,7 +581,7 @@ static ssize_t bonding_show_ad_partner_mac(struct device *d, return count; } -static DEVICE_ATTR(ad_partner_mac, S_IRUGO, bonding_show_ad_partner_mac, NULL); +static DEVICE_ATTR(ad_partner_mac, 0444, bonding_show_ad_partner_mac, NULL); /* Show the queue_ids of the slaves in the current bond. */ static ssize_t bonding_show_queue_id(struct device *d, @@ -615,7 +614,7 @@ static ssize_t bonding_show_queue_id(struct device *d, return res; } -static DEVICE_ATTR(queue_id, S_IRUGO | S_IWUSR, bonding_show_queue_id, +static DEVICE_ATTR(queue_id, 0644, bonding_show_queue_id, bonding_sysfs_store_option); @@ -628,7 +627,7 @@ static ssize_t bonding_show_slaves_active(struct device *d, return sprintf(buf, "%d\n", bond->params.all_slaves_active); } -static DEVICE_ATTR(all_slaves_active, S_IRUGO | S_IWUSR, +static DEVICE_ATTR(all_slaves_active, 0644, bonding_show_slaves_active, bonding_sysfs_store_option); /* Show the number of IGMP membership reports to send on link failure */ @@ -640,7 +639,7 @@ static ssize_t bonding_show_resend_igmp(struct device *d, return sprintf(buf, "%d\n", bond->params.resend_igmp); } -static DEVICE_ATTR(resend_igmp, S_IRUGO | S_IWUSR, +static DEVICE_ATTR(resend_igmp, 0644, bonding_show_resend_igmp, bonding_sysfs_store_option); @@ -652,7 +651,7 @@ static ssize_t bonding_show_lp_interval(struct device *d, return sprintf(buf, "%d\n", bond->params.lp_interval); } -static DEVICE_ATTR(lp_interval, S_IRUGO | S_IWUSR, +static DEVICE_ATTR(lp_interval, 0644, bonding_show_lp_interval, bonding_sysfs_store_option); static ssize_t bonding_show_tlb_dynamic_lb(struct device *d, @@ -662,7 +661,7 @@ static ssize_t bonding_show_tlb_dynamic_lb(struct device *d, struct bonding *bond = to_bond(d); return sprintf(buf, "%d\n", bond->params.tlb_dynamic_lb); } -static DEVICE_ATTR(tlb_dynamic_lb, S_IRUGO | S_IWUSR, +static DEVICE_ATTR(tlb_dynamic_lb, 0644, bonding_show_tlb_dynamic_lb, bonding_sysfs_store_option); static ssize_t bonding_show_packets_per_slave(struct device *d, @@ -674,7 +673,7 @@ static ssize_t bonding_show_packets_per_slave(struct device *d, return sprintf(buf, "%u\n", packets_per_slave); } -static DEVICE_ATTR(packets_per_slave, S_IRUGO | S_IWUSR, +static DEVICE_ATTR(packets_per_slave, 0644, bonding_show_packets_per_slave, bonding_sysfs_store_option); static ssize_t bonding_show_ad_actor_sys_prio(struct device *d, @@ -688,7 +687,7 @@ static ssize_t bonding_show_ad_actor_sys_prio(struct device *d, return 0; } -static DEVICE_ATTR(ad_actor_sys_prio, S_IRUGO | S_IWUSR, +static DEVICE_ATTR(ad_actor_sys_prio, 0644, bonding_show_ad_actor_sys_prio, bonding_sysfs_store_option); static ssize_t bonding_show_ad_actor_system(struct device *d, @@ -703,7 +702,7 @@ static ssize_t bonding_show_ad_actor_system(struct device *d, return 0; } -static DEVICE_ATTR(ad_actor_system, S_IRUGO | S_IWUSR, +static DEVICE_ATTR(ad_actor_system, 0644, bonding_show_ad_actor_system, bonding_sysfs_store_option); static ssize_t bonding_show_ad_user_port_key(struct device *d, @@ -717,7 +716,7 @@ static ssize_t bonding_show_ad_user_port_key(struct device *d, return 0; } -static DEVICE_ATTR(ad_user_port_key, S_IRUGO | S_IWUSR, +static DEVICE_ATTR(ad_user_port_key, 0644, bonding_show_ad_user_port_key, bonding_sysfs_store_option); static struct attribute *per_bond_attrs[] = { diff --git a/drivers/net/bonding/bond_sysfs_slave.c b/drivers/net/bonding/bond_sysfs_slave.c index 7d16c51e6913..2f120b2ffef0 100644 --- a/drivers/net/bonding/bond_sysfs_slave.c +++ b/drivers/net/bonding/bond_sysfs_slave.c @@ -25,8 +25,8 @@ const struct slave_attribute slave_attr_##_name = { \ .mode = _mode }, \ .show = _show, \ }; -#define SLAVE_ATTR_RO(_name) \ - SLAVE_ATTR(_name, S_IRUGO, _name##_show) +#define SLAVE_ATTR_RO(_name) \ + SLAVE_ATTR(_name, 0444, _name##_show) static ssize_t state_show(struct slave *slave, char *buf) { diff --git a/drivers/net/caif/caif_serial.c b/drivers/net/caif/caif_serial.c index 709838e4c062..a0f954f36c09 100644 --- a/drivers/net/caif/caif_serial.c +++ b/drivers/net/caif/caif_serial.c @@ -40,20 +40,20 @@ static LIST_HEAD(ser_list); static LIST_HEAD(ser_release_list); static bool ser_loop; -module_param(ser_loop, bool, S_IRUGO); +module_param(ser_loop, bool, 0444); MODULE_PARM_DESC(ser_loop, "Run in simulated loopback mode."); static bool ser_use_stx = true; -module_param(ser_use_stx, bool, S_IRUGO); +module_param(ser_use_stx, bool, 0444); MODULE_PARM_DESC(ser_use_stx, "STX enabled or not."); static bool ser_use_fcs = true; -module_param(ser_use_fcs, bool, S_IRUGO); +module_param(ser_use_fcs, bool, 0444); MODULE_PARM_DESC(ser_use_fcs, "FCS enabled or not."); static int ser_write_chunk = MAX_WRITE_CHUNK; -module_param(ser_write_chunk, int, S_IRUGO); +module_param(ser_write_chunk, int, 0444); MODULE_PARM_DESC(ser_write_chunk, "Maximum size of data written to UART."); @@ -97,21 +97,21 @@ static inline void debugfs_init(struct ser_device *ser, struct tty_struct *tty) ser->debugfs_tty_dir debugfs_create_dir(tty->name, debugfsdir); if (!IS_ERR(ser->debugfs_tty_dir)) { - debugfs_create_blob("last_tx_msg", S_IRUSR, - ser->debugfs_tty_dir, - &ser->tx_blob); + debugfs_create_blob("last_tx_msg", 0400, + ser->debugfs_tty_dir, + &ser->tx_blob); - debugfs_create_blob("last_rx_msg", S_IRUSR, - ser->debugfs_tty_dir, - &ser->rx_blob); + debugfs_create_blob("last_rx_msg", 0400, + ser->debugfs_tty_dir, + &ser->rx_blob); - debugfs_create_x32("ser_state", S_IRUSR, - ser->debugfs_tty_dir, - (u32 *)&ser->state); + debugfs_create_x32("ser_state", 0400, + ser->debugfs_tty_dir, + (u32 *)&ser->state); - debugfs_create_x8("tty_status", S_IRUSR, - ser->debugfs_tty_dir, - &ser->tty_status); + debugfs_create_x8("tty_status", 0400, + ser->debugfs_tty_dir, + &ser->tty_status); } ser->tx_blob.data = ser->tx_data; diff --git a/drivers/net/caif/caif_spi.c b/drivers/net/caif/caif_spi.c index 980eace53d44..d28a1398c091 100644 --- a/drivers/net/caif/caif_spi.c +++ b/drivers/net/caif/caif_spi.c @@ -35,27 +35,27 @@ MODULE_DESCRIPTION("CAIF SPI driver"); #define PAD_POW2(x, pow) ((((x)&((pow)-1))=0) ? 0 : (((pow)-((x)&((pow)-1))))) static bool spi_loop; -module_param(spi_loop, bool, S_IRUGO); +module_param(spi_loop, bool, 0444); MODULE_PARM_DESC(spi_loop, "SPI running in loopback mode."); /* SPI frame alignment. */ -module_param(spi_frm_align, int, S_IRUGO); +module_param(spi_frm_align, int, 0444); MODULE_PARM_DESC(spi_frm_align, "SPI frame alignment."); /* * SPI padding options. * Warning: must be a base of 2 (& operation used) and can not be zero ! */ -module_param(spi_up_head_align, int, S_IRUGO); +module_param(spi_up_head_align, int, 0444); MODULE_PARM_DESC(spi_up_head_align, "SPI uplink head alignment."); -module_param(spi_up_tail_align, int, S_IRUGO); +module_param(spi_up_tail_align, int, 0444); MODULE_PARM_DESC(spi_up_tail_align, "SPI uplink tail alignment."); -module_param(spi_down_head_align, int, S_IRUGO); +module_param(spi_down_head_align, int, 0444); MODULE_PARM_DESC(spi_down_head_align, "SPI downlink head alignment."); -module_param(spi_down_tail_align, int, S_IRUGO); +module_param(spi_down_tail_align, int, 0444); MODULE_PARM_DESC(spi_down_tail_align, "SPI downlink tail alignment."); #ifdef CONFIG_ARM @@ -250,10 +250,10 @@ static const struct file_operations dbgfs_frame_fops = { static inline void dev_debugfs_add(struct cfspi *cfspi) { cfspi->dbgfs_dir = debugfs_create_dir(cfspi->pdev->name, dbgfs_root); - cfspi->dbgfs_state = debugfs_create_file("state", S_IRUGO, + cfspi->dbgfs_state = debugfs_create_file("state", 0444, cfspi->dbgfs_dir, cfspi, &dbgfs_state_fops); - cfspi->dbgfs_frame = debugfs_create_file("frame", S_IRUGO, + cfspi->dbgfs_frame = debugfs_create_file("frame", 0444, cfspi->dbgfs_dir, cfspi, &dbgfs_frame_fops); } diff --git a/drivers/net/caif/caif_virtio.c b/drivers/net/caif/caif_virtio.c index c3d104feee13..2814e0dee4bb 100644 --- a/drivers/net/caif/caif_virtio.c +++ b/drivers/net/caif/caif_virtio.c @@ -629,21 +629,21 @@ static inline void debugfs_init(struct cfv_info *cfv) if (IS_ERR(cfv->debugfs)) return; - debugfs_create_u32("rx-napi-complete", S_IRUSR, cfv->debugfs, + debugfs_create_u32("rx-napi-complete", 0400, cfv->debugfs, &cfv->stats.rx_napi_complete); - debugfs_create_u32("rx-napi-resched", S_IRUSR, cfv->debugfs, + debugfs_create_u32("rx-napi-resched", 0400, cfv->debugfs, &cfv->stats.rx_napi_resched); - debugfs_create_u32("rx-nomem", S_IRUSR, cfv->debugfs, + debugfs_create_u32("rx-nomem", 0400, cfv->debugfs, &cfv->stats.rx_nomem); - debugfs_create_u32("rx-kicks", S_IRUSR, cfv->debugfs, + debugfs_create_u32("rx-kicks", 0400, cfv->debugfs, &cfv->stats.rx_kicks); - debugfs_create_u32("tx-full-ring", S_IRUSR, cfv->debugfs, + debugfs_create_u32("tx-full-ring", 0400, cfv->debugfs, &cfv->stats.tx_full_ring); - debugfs_create_u32("tx-no-mem", S_IRUSR, cfv->debugfs, + debugfs_create_u32("tx-no-mem", 0400, cfv->debugfs, &cfv->stats.tx_no_mem); - debugfs_create_u32("tx-kicks", S_IRUSR, cfv->debugfs, + debugfs_create_u32("tx-kicks", 0400, cfv->debugfs, &cfv->stats.tx_kicks); - debugfs_create_u32("tx-flow-on", S_IRUSR, cfv->debugfs, + debugfs_create_u32("tx-flow-on", 0400, cfv->debugfs, &cfv->stats.tx_flow_on); } diff --git a/drivers/net/can/at91_can.c b/drivers/net/can/at91_can.c index f37ce0e1b603..d98c69045b17 100644 --- a/drivers/net/can/at91_can.c +++ b/drivers/net/can/at91_can.c @@ -1224,8 +1224,7 @@ static ssize_t at91_sysfs_set_mb0_id(struct device *dev, return ret; } -static DEVICE_ATTR(mb0_id, S_IWUSR | S_IRUGO, - at91_sysfs_show_mb0_id, at91_sysfs_set_mb0_id); +static DEVICE_ATTR(mb0_id, 0644, at91_sysfs_show_mb0_id, at91_sysfs_set_mb0_id); static struct attribute *at91_sysfs_attrs[] = { &dev_attr_mb0_id.attr, diff --git a/drivers/net/can/cc770/cc770.c b/drivers/net/can/cc770/cc770.c index 6da69af103e6..d4dd4da23997 100644 --- a/drivers/net/can/cc770/cc770.c +++ b/drivers/net/can/cc770/cc770.c @@ -67,12 +67,12 @@ MODULE_DESCRIPTION(KBUILD_MODNAME "CAN netdevice driver"); * otherwise 11 bit SFF messages. */ static int msgobj15_eff; -module_param(msgobj15_eff, int, S_IRUGO); +module_param(msgobj15_eff, int, 0444); MODULE_PARM_DESC(msgobj15_eff, "Extended 29-bit frames for message object 15 " "(default: 11-bit standard frames)"); static int i82527_compat; -module_param(i82527_compat, int, S_IRUGO); +module_param(i82527_compat, int, 0444); MODULE_PARM_DESC(i82527_compat, "Strict Intel 82527 comptibility mode " "without using additional functions"); diff --git a/drivers/net/can/cc770/cc770_isa.c b/drivers/net/can/cc770/cc770_isa.c index 3a30fd3b4498..fcd34698074f 100644 --- a/drivers/net/can/cc770/cc770_isa.c +++ b/drivers/net/can/cc770/cc770_isa.c @@ -82,29 +82,29 @@ static u8 cor[MAXDEV] = {[0 ... (MAXDEV - 1)] = 0xff}; static u8 bcr[MAXDEV] = {[0 ... (MAXDEV - 1)] = 0xff}; static int indirect[MAXDEV] = {[0 ... (MAXDEV - 1)] = -1}; -module_param_hw_array(port, ulong, ioport, NULL, S_IRUGO); +module_param_hw_array(port, ulong, ioport, NULL, 0444); MODULE_PARM_DESC(port, "I/O port number"); -module_param_hw_array(mem, ulong, iomem, NULL, S_IRUGO); +module_param_hw_array(mem, ulong, iomem, NULL, 0444); MODULE_PARM_DESC(mem, "I/O memory address"); -module_param_hw_array(indirect, int, ioport, NULL, S_IRUGO); +module_param_hw_array(indirect, int, ioport, NULL, 0444); MODULE_PARM_DESC(indirect, "Indirect access via address and data port"); -module_param_hw_array(irq, int, irq, NULL, S_IRUGO); +module_param_hw_array(irq, int, irq, NULL, 0444); MODULE_PARM_DESC(irq, "IRQ number"); -module_param_array(clk, int, NULL, S_IRUGO); +module_param_array(clk, int, NULL, 0444); MODULE_PARM_DESC(clk, "External oscillator clock frequency " "(default000000 [16 MHz])"); -module_param_array(cir, byte, NULL, S_IRUGO); +module_param_array(cir, byte, NULL, 0444); MODULE_PARM_DESC(cir, "CPU interface register (default=0x40 [DSC])"); -module_param_array(cor, byte, NULL, S_IRUGO); +module_param_array(cor, byte, NULL, 0444); MODULE_PARM_DESC(cor, "Clockout register (default=0x00)"); -module_param_array(bcr, byte, NULL, S_IRUGO); +module_param_array(bcr, byte, NULL, 0444); MODULE_PARM_DESC(bcr, "Bus configuration register (default=0x40 [CBY])"); #define CC770_IOSIZE 0x20 diff --git a/drivers/net/can/grcan.c b/drivers/net/can/grcan.c index 897c6b113d3f..2d3046afa80d 100644 --- a/drivers/net/can/grcan.c +++ b/drivers/net/can/grcan.c @@ -1484,7 +1484,7 @@ static netdev_tx_t grcan_start_xmit(struct sk_buff *skb, } \ } \ module_param_named(name, grcan_module_config.name, \ - mtype, S_IRUGO); \ + mtype, 0444); \ MODULE_PARM_DESC(name, desc) #define GRCAN_CONFIG_ATTR(name, desc) \ @@ -1513,7 +1513,7 @@ static netdev_tx_t grcan_start_xmit(struct sk_buff *skb, struct grcan_priv *priv = netdev_priv(dev); \ return sprintf(buf, "%d\n", priv->config.name); \ } \ - static DEVICE_ATTR(name, S_IRUGO | S_IWUSR, \ + static DEVICE_ATTR(name, 0644, \ grcan_show_##name, \ grcan_store_##name); \ GRCAN_MODULE_PARAM(name, ushort, GRCAN_NOT_BOOL, desc) diff --git a/drivers/net/can/janz-ican3.c b/drivers/net/can/janz-ican3.c index 12a53c8e8e1d..adfdb66a486e 100644 --- a/drivers/net/can/janz-ican3.c +++ b/drivers/net/can/janz-ican3.c @@ -1865,9 +1865,9 @@ static ssize_t ican3_sysfs_show_fwinfo(struct device *dev, return scnprintf(buf, PAGE_SIZE, "%s\n", mod->fwinfo); } -static DEVICE_ATTR(termination, S_IWUSR | S_IRUGO, ican3_sysfs_show_term, - ican3_sysfs_set_term); -static DEVICE_ATTR(fwinfo, S_IRUSR | S_IRUGO, ican3_sysfs_show_fwinfo, NULL); +static DEVICE_ATTR(termination, 0644, ican3_sysfs_show_term, + ican3_sysfs_set_term); +static DEVICE_ATTR(fwinfo, 0444, ican3_sysfs_show_fwinfo, NULL); static struct attribute *ican3_sysfs_attrs[] = { &dev_attr_termination.attr, diff --git a/drivers/net/can/sja1000/sja1000_isa.c b/drivers/net/can/sja1000/sja1000_isa.c index a89c1e92554d..1a2ae6ce8d87 100644 --- a/drivers/net/can/sja1000/sja1000_isa.c +++ b/drivers/net/can/sja1000/sja1000_isa.c @@ -48,27 +48,27 @@ static unsigned char ocr[MAXDEV] = {[0 ... (MAXDEV - 1)] = 0xff}; static int indirect[MAXDEV] = {[0 ... (MAXDEV - 1)] = -1}; static spinlock_t indirect_lock[MAXDEV]; /* lock for indirect access mode */ -module_param_hw_array(port, ulong, ioport, NULL, S_IRUGO); +module_param_hw_array(port, ulong, ioport, NULL, 0444); MODULE_PARM_DESC(port, "I/O port number"); -module_param_hw_array(mem, ulong, iomem, NULL, S_IRUGO); +module_param_hw_array(mem, ulong, iomem, NULL, 0444); MODULE_PARM_DESC(mem, "I/O memory address"); -module_param_hw_array(indirect, int, ioport, NULL, S_IRUGO); +module_param_hw_array(indirect, int, ioport, NULL, 0444); MODULE_PARM_DESC(indirect, "Indirect access via address and data port"); -module_param_hw_array(irq, int, irq, NULL, S_IRUGO); +module_param_hw_array(irq, int, irq, NULL, 0444); MODULE_PARM_DESC(irq, "IRQ number"); -module_param_array(clk, int, NULL, S_IRUGO); +module_param_array(clk, int, NULL, 0444); MODULE_PARM_DESC(clk, "External oscillator clock frequency " "(default000000 [16 MHz])"); -module_param_array(cdr, byte, NULL, S_IRUGO); +module_param_array(cdr, byte, NULL, 0444); MODULE_PARM_DESC(cdr, "Clock divider register " "(default=0x48 [CDR_CBP | CDR_CLK_OFF])"); -module_param_array(ocr, byte, NULL, S_IRUGO); +module_param_array(ocr, byte, NULL, 0444); MODULE_PARM_DESC(ocr, "Output control register " "(default=0x18 [OCR_TX0_PUSHPULL])"); diff --git a/drivers/net/can/softing/softing_main.c b/drivers/net/can/softing/softing_main.c index 5f64deec9f6c..e22696190583 100644 --- a/drivers/net/can/softing/softing_main.c +++ b/drivers/net/can/softing/softing_main.c @@ -601,8 +601,8 @@ static ssize_t store_output(struct device *dev, struct device_attribute *attr, return count; } -static const DEVICE_ATTR(chip, S_IRUGO, show_chip, NULL); -static const DEVICE_ATTR(output, S_IRUGO | S_IWUSR, show_output, store_output); +static const DEVICE_ATTR(chip, 0444, show_chip, NULL); +static const DEVICE_ATTR(output, 0644, show_output, store_output); static const struct attribute *const netdev_sysfs_attrs[] = { &dev_attr_chip.attr, diff --git a/drivers/net/can/spi/mcp251x.c b/drivers/net/can/spi/mcp251x.c index 98d118b3aaf4..e90817608645 100644 --- a/drivers/net/can/spi/mcp251x.c +++ b/drivers/net/can/spi/mcp251x.c @@ -220,7 +220,7 @@ #define DEVICE_NAME "mcp251x" static int mcp251x_enable_dma; /* Enable SPI DMA. Default: 0 (Off) */ -module_param(mcp251x_enable_dma, int, S_IRUGO); +module_param(mcp251x_enable_dma, int, 0444); MODULE_PARM_DESC(mcp251x_enable_dma, "Enable SPI DMA. Default: 0 (Off)"); static const struct can_bittiming_const mcp251x_bittiming_const = { diff --git a/drivers/net/can/usb/esd_usb2.c b/drivers/net/can/usb/esd_usb2.c index c6dcf93675c0..5820fd5b69b5 100644 --- a/drivers/net/can/usb/esd_usb2.c +++ b/drivers/net/can/usb/esd_usb2.c @@ -496,7 +496,7 @@ static ssize_t show_firmware(struct device *d, (dev->version >> 8) & 0xf, dev->version & 0xff); } -static DEVICE_ATTR(firmware, S_IRUGO, show_firmware, NULL); +static DEVICE_ATTR(firmware, 0444, show_firmware, NULL); static ssize_t show_hardware(struct device *d, struct device_attribute *attr, char *buf) @@ -509,7 +509,7 @@ static ssize_t show_hardware(struct device *d, (dev->version >> 24) & 0xf, (dev->version >> 16) & 0xff); } -static DEVICE_ATTR(hardware, S_IRUGO, show_hardware, NULL); +static DEVICE_ATTR(hardware, 0444, show_hardware, NULL); static ssize_t show_nets(struct device *d, struct device_attribute *attr, char *buf) @@ -519,7 +519,7 @@ static ssize_t show_nets(struct device *d, return sprintf(buf, "%d", dev->net_count); } -static DEVICE_ATTR(nets, S_IRUGO, show_nets, NULL); +static DEVICE_ATTR(nets, 0444, show_nets, NULL); static int esd_usb2_send_msg(struct esd_usb2 *dev, struct esd_usb2_msg *msg) { diff --git a/drivers/net/can/vcan.c b/drivers/net/can/vcan.c index c2b04f505e16..d200a5b0651c 100644 --- a/drivers/net/can/vcan.c +++ b/drivers/net/can/vcan.c @@ -65,7 +65,7 @@ MODULE_ALIAS_RTNL_LINK(DRV_NAME); */ static bool echo; /* echo testing. Default: 0 (Off) */ -module_param(echo, bool, S_IRUGO); +module_param(echo, bool, 0444); MODULE_PARM_DESC(echo, "Echo sent frames (for testing). Default: 0 (Off)"); diff --git a/drivers/net/hamradio/bpqether.c b/drivers/net/hamradio/bpqether.c index 78a6414c5fd9..dfabbae72efd 100644 --- a/drivers/net/hamradio/bpqether.c +++ b/drivers/net/hamradio/bpqether.c @@ -590,8 +590,7 @@ static int bpq_device_event(struct notifier_block *this, static int __init bpq_init_driver(void) { #ifdef CONFIG_PROC_FS - if (!proc_create("bpqether", S_IRUGO, init_net.proc_net, - &bpq_info_fops)) { + if (!proc_create("bpqether", 0444, init_net.proc_net, &bpq_info_fops)) { printk(KERN_ERR "bpq: cannot create /proc/net/bpqether entry.\n"); return -ENOENT; diff --git a/drivers/net/hamradio/yam.c b/drivers/net/hamradio/yam.c index 14c3632b8cde..83034eb7ed4f 100644 --- a/drivers/net/hamradio/yam.c +++ b/drivers/net/hamradio/yam.c @@ -1168,7 +1168,7 @@ static int __init yam_init_driver(void) yam_timer.expires = jiffies + HZ / 100; add_timer(&yam_timer); - proc_create("yam", S_IRUGO, init_net.proc_net, &yam_info_fops); + proc_create("yam", 0444, init_net.proc_net, &yam_info_fops); return 0; error: while (--i >= 0) { diff --git a/drivers/net/hyperv/netvsc_drv.c b/drivers/net/hyperv/netvsc_drv.c index f28c85d212ce..9f43a20ee7de 100644 --- a/drivers/net/hyperv/netvsc_drv.c +++ b/drivers/net/hyperv/netvsc_drv.c @@ -55,7 +55,7 @@ #define VF_TAKEOVER_INT (HZ / 10) static unsigned int ring_size __ro_after_init = 128; -module_param(ring_size, uint, S_IRUGO); +module_param(ring_size, uint, 0444); MODULE_PARM_DESC(ring_size, "Ring buffer size (# of pages)"); unsigned int netvsc_ring_bytes __ro_after_init; struct reciprocal_value netvsc_ring_reciprocal __ro_after_init; @@ -66,7 +66,7 @@ static const u32 default_msg = NETIF_MSG_DRV | NETIF_MSG_PROBE | NETIF_MSG_TX_ERR; static int debug = -1; -module_param(debug, int, S_IRUGO); +module_param(debug, int, 0444); MODULE_PARM_DESC(debug, "Debug level (0=none,...,16=all)"); static void netvsc_change_rx_flags(struct net_device *net, int change) diff --git a/drivers/net/ieee802154/at86rf230.c b/drivers/net/ieee802154/at86rf230.c index 548d9d026a85..77abedf0b524 100644 --- a/drivers/net/ieee802154/at86rf230.c +++ b/drivers/net/ieee802154/at86rf230.c @@ -1661,7 +1661,7 @@ static int at86rf230_debugfs_init(struct at86rf230_local *lp) if (!at86rf230_debugfs_root) return -ENOMEM; - stats = debugfs_create_file("trac_stats", S_IRUGO, + stats = debugfs_create_file("trac_stats", 0444, at86rf230_debugfs_root, lp, &at86rf230_stats_fops); if (!stats) diff --git a/drivers/net/phy/spi_ks8995.c b/drivers/net/phy/spi_ks8995.c index 1e2d4f1179da..f17b3441779b 100644 --- a/drivers/net/phy/spi_ks8995.c +++ b/drivers/net/phy/spi_ks8995.c @@ -417,7 +417,7 @@ static void ks8995_parse_dt(struct ks8995_switch *ks) static const struct bin_attribute ks8995_registers_attr = { .attr = { .name = "registers", - .mode = S_IRUSR | S_IWUSR, + .mode = 0600, }, .size = KS8995_REGS_SIZE, .read = ks8995_registers_read, diff --git a/drivers/net/ppp/ppp_generic.c b/drivers/net/ppp/ppp_generic.c index 926c2c322d43..22fcff3c7a9a 100644 --- a/drivers/net/ppp/ppp_generic.c +++ b/drivers/net/ppp/ppp_generic.c @@ -1687,7 +1687,7 @@ ppp_push(struct ppp *ppp) #ifdef CONFIG_PPP_MULTILINK static bool mp_protocol_compress __read_mostly = true; -module_param(mp_protocol_compress, bool, S_IRUGO | S_IWUSR); +module_param(mp_protocol_compress, bool, 0644); MODULE_PARM_DESC(mp_protocol_compress, "compress protocol id in multilink fragments"); diff --git a/drivers/net/ppp/pppoe.c b/drivers/net/ppp/pppoe.c index c10e6181a2f0..f9552a400271 100644 --- a/drivers/net/ppp/pppoe.c +++ b/drivers/net/ppp/pppoe.c @@ -1142,7 +1142,7 @@ static __net_init int pppoe_init_net(struct net *net) rwlock_init(&pn->hash_lock); - pde = proc_create("pppoe", S_IRUGO, net->proc_net, &pppoe_seq_fops); + pde = proc_create("pppoe", 0444, net->proc_net, &pppoe_seq_fops); #ifdef CONFIG_PROC_FS if (!pde) return -ENOMEM; diff --git a/drivers/net/usb/cdc_ncm.c b/drivers/net/usb/cdc_ncm.c index 9e1b74590682..90d07ed224d5 100644 --- a/drivers/net/usb/cdc_ncm.c +++ b/drivers/net/usb/cdc_ncm.c @@ -58,7 +58,7 @@ static bool prefer_mbim = true; #else static bool prefer_mbim; #endif -module_param(prefer_mbim, bool, S_IRUGO | S_IWUSR); +module_param(prefer_mbim, bool, 0644); MODULE_PARM_DESC(prefer_mbim, "Prefer MBIM setting on dual NCM/MBIM functions"); static void cdc_ncm_txpath_bh(unsigned long param); @@ -281,10 +281,10 @@ static ssize_t cdc_ncm_store_tx_timer_usecs(struct device *d, struct device_att return len; } -static DEVICE_ATTR(min_tx_pkt, S_IRUGO | S_IWUSR, cdc_ncm_show_min_tx_pkt, cdc_ncm_store_min_tx_pkt); -static DEVICE_ATTR(rx_max, S_IRUGO | S_IWUSR, cdc_ncm_show_rx_max, cdc_ncm_store_rx_max); -static DEVICE_ATTR(tx_max, S_IRUGO | S_IWUSR, cdc_ncm_show_tx_max, cdc_ncm_store_tx_max); -static DEVICE_ATTR(tx_timer_usecs, S_IRUGO | S_IWUSR, cdc_ncm_show_tx_timer_usecs, cdc_ncm_store_tx_timer_usecs); +static DEVICE_ATTR(min_tx_pkt, 0644, cdc_ncm_show_min_tx_pkt, cdc_ncm_store_min_tx_pkt); +static DEVICE_ATTR(rx_max, 0644, cdc_ncm_show_rx_max, cdc_ncm_store_rx_max); +static DEVICE_ATTR(tx_max, 0644, cdc_ncm_show_tx_max, cdc_ncm_store_tx_max); +static DEVICE_ATTR(tx_timer_usecs, 0644, cdc_ncm_show_tx_timer_usecs, cdc_ncm_store_tx_timer_usecs); static ssize_t ndp_to_end_show(struct device *d, struct device_attribute *attr, char *buf) { @@ -335,7 +335,7 @@ static ssize_t cdc_ncm_show_##name(struct device *d, struct device_attribute *at struct cdc_ncm_ctx *ctx = (struct cdc_ncm_ctx *)dev->data[0]; \ return sprintf(buf, format "\n", tocpu(ctx->ncm_parm.name)); \ } \ -static DEVICE_ATTR(name, S_IRUGO, cdc_ncm_show_##name, NULL) +static DEVICE_ATTR(name, 0444, cdc_ncm_show_##name, NULL) NCM_PARM_ATTR(bmNtbFormatsSupported, "0x%04x", le16_to_cpu); NCM_PARM_ATTR(dwNtbInMaxSize, "%u", le32_to_cpu); diff --git a/drivers/net/usb/hso.c b/drivers/net/usb/hso.c index 981c931a7a1f..e53883ad6107 100644 --- a/drivers/net/usb/hso.c +++ b/drivers/net/usb/hso.c @@ -519,7 +519,7 @@ static ssize_t hso_sysfs_show_porttype(struct device *dev, return sprintf(buf, "%s\n", port_name); } -static DEVICE_ATTR(hsotype, S_IRUGO, hso_sysfs_show_porttype, NULL); +static DEVICE_ATTR(hsotype, 0444, hso_sysfs_show_porttype, NULL); static struct attribute *hso_serial_dev_attrs[] = { &dev_attr_hsotype.attr, @@ -3289,12 +3289,12 @@ MODULE_LICENSE("GPL"); /* change the debug level (eg: insmod hso.ko debug=0x04) */ MODULE_PARM_DESC(debug, "debug level mask [0x01 | 0x02 | 0x04 | 0x08 | 0x10]"); -module_param(debug, int, S_IRUGO | S_IWUSR); +module_param(debug, int, 0644); /* set the major tty number (eg: insmod hso.ko tty_major$5) */ MODULE_PARM_DESC(tty_major, "Set the major tty number"); -module_param(tty_major, int, S_IRUGO | S_IWUSR); +module_param(tty_major, int, 0644); /* disable network interface (eg: insmod hso.ko disable_net=1) */ MODULE_PARM_DESC(disable_net, "Disable the network interface"); -module_param(disable_net, int, S_IRUGO | S_IWUSR); +module_param(disable_net, int, 0644); diff --git a/drivers/net/xen-netback/xenbus.c b/drivers/net/xen-netback/xenbus.c index a56d3eab35dd..e1aef253601e 100644 --- a/drivers/net/xen-netback/xenbus.c +++ b/drivers/net/xen-netback/xenbus.c @@ -224,7 +224,7 @@ static void xenvif_debugfs_addif(struct xenvif *vif) snprintf(filename, sizeof(filename), "io_ring_q%d", i); pfile = debugfs_create_file(filename, - S_IRUSR | S_IWUSR, + 0600, vif->xenvif_dbg_root, &vif->queues[i], &xenvif_dbg_io_ring_ops_fops); @@ -235,7 +235,7 @@ static void xenvif_debugfs_addif(struct xenvif *vif) if (vif->ctrl_irq) { pfile = debugfs_create_file("ctrl", - S_IRUSR, + 0400, vif->xenvif_dbg_root, vif, &xenvif_dbg_ctrl_ops_fops); diff --git a/drivers/net/xen-netfront.c b/drivers/net/xen-netfront.c index 3127bc8633ca..4dd0668003e7 100644 --- a/drivers/net/xen-netfront.c +++ b/drivers/net/xen-netfront.c @@ -2113,9 +2113,9 @@ static ssize_t store_rxbuf(struct device *dev, return len; } -static DEVICE_ATTR(rxbuf_min, S_IRUGO|S_IWUSR, show_rxbuf, store_rxbuf); -static DEVICE_ATTR(rxbuf_max, S_IRUGO|S_IWUSR, show_rxbuf, store_rxbuf); -static DEVICE_ATTR(rxbuf_cur, S_IRUGO, show_rxbuf, NULL); +static DEVICE_ATTR(rxbuf_min, 0644, show_rxbuf, store_rxbuf); +static DEVICE_ATTR(rxbuf_max, 0644, show_rxbuf, store_rxbuf); +static DEVICE_ATTR(rxbuf_cur, 0444, show_rxbuf, NULL); static struct attribute *xennet_dev_attrs[] = { &dev_attr_rxbuf_min.attr, -- 2.15.0