Skip to content

Commit

Permalink
Merge tag 'sysctl-6.7-rc1' of git://git.kernel.org/pub/scm/linux/kern…
Browse files Browse the repository at this point in the history
…el/git/mcgrof/linux

Pull sysctl updates from Luis Chamberlain:
 "To help make the move of sysctls out of kernel/sysctl.c not incur a
  size penalty sysctl has been changed to allow us to not require the
  sentinel, the final empty element on the sysctl array. Joel Granados
  has been doing all this work. On the v6.6 kernel we got the major
  infrastructure changes required to support this. For v6.7-rc1 we have
  all arch/ and drivers/ modified to remove the sentinel. Both arch and
  driver changes have been on linux-next for a bit less than a month. It
  is worth re-iterating the value:

   - this helps reduce the overall build time size of the kernel and run
     time memory consumed by the kernel by about ~64 bytes per array

   - the extra 64-byte penalty is no longer inncurred now when we move
     sysctls out from kernel/sysctl.c to their own files

  For v6.8-rc1 expect removal of all the sentinels and also then the
  unneeded check for procname == NULL.

  The last two patches are fixes recently merged by Krister Johansen
  which allow us again to use softlockup_panic early on boot. This used
  to work but the alias work broke it. This is useful for folks who want
  to detect softlockups super early rather than wait and spend money on
  cloud solutions with nothing but an eventual hung kernel. Although
  this hadn't gone through linux-next it's also a stable fix, so we
  might as well roll through the fixes now"

* tag 'sysctl-6.7-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/mcgrof/linux: (23 commits)
  watchdog: move softlockup_panic back to early_param
  proc: sysctl: prevent aliased sysctls from getting passed to init
  intel drm: Remove now superfluous sentinel element from ctl_table array
  Drivers: hv: Remove now superfluous sentinel element from ctl_table array
  raid: Remove now superfluous sentinel element from ctl_table array
  fw loader: Remove the now superfluous sentinel element from ctl_table array
  sgi-xp: Remove the now superfluous sentinel element from ctl_table array
  vrf: Remove the now superfluous sentinel element from ctl_table array
  char-misc: Remove the now superfluous sentinel element from ctl_table array
  infiniband: Remove the now superfluous sentinel element from ctl_table array
  macintosh: Remove the now superfluous sentinel element from ctl_table array
  parport: Remove the now superfluous sentinel element from ctl_table array
  scsi: Remove now superfluous sentinel element from ctl_table array
  tty: Remove now superfluous sentinel element from ctl_table array
  xen: Remove now superfluous sentinel element from ctl_table array
  hpet: Remove now superfluous sentinel element from ctl_table array
  c-sky: Remove now superfluous sentinel element from ctl_talbe array
  powerpc: Remove now superfluous sentinel element from ctl_table arrays
  riscv: Remove now superfluous sentinel element from ctl_table array
  x86/vdso: Remove now superfluous sentinel element from ctl_table array
  ...
  • Loading branch information
torvalds committed Nov 2, 2023
2 parents babe393 + 8b793bc commit 426ee51
Show file tree
Hide file tree
Showing 38 changed files with 41 additions and 60 deletions.
4 changes: 2 additions & 2 deletions arch/arm/kernel/isa.c
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@

static unsigned int isa_membase, isa_portbase, isa_portshift;

static struct ctl_table ctl_isa_vars[4] = {
static struct ctl_table ctl_isa_vars[] = {
{
.procname = "membase",
.data = &isa_membase,
Expand All @@ -35,7 +35,7 @@ static struct ctl_table ctl_isa_vars[4] = {
.maxlen = sizeof(isa_portshift),
.mode = 0444,
.proc_handler = proc_dointvec,
}, {}
},
};

static struct ctl_table_header *isa_sysctl_header;
Expand Down
8 changes: 3 additions & 5 deletions arch/arm64/kernel/armv8_deprecated.c
Original file line number Diff line number Diff line change
Expand Up @@ -52,10 +52,8 @@ struct insn_emulation {
int min;
int max;

/*
* sysctl for this emulation + a sentinal entry.
*/
struct ctl_table sysctl[2];
/* sysctl for this emulation */
struct ctl_table sysctl;
};

#define ARM_OPCODE_CONDTEST_FAIL 0
Expand Down Expand Up @@ -558,7 +556,7 @@ static void __init register_insn_emulation(struct insn_emulation *insn)
update_insn_emulation_mode(insn, INSN_UNDEF);

if (insn->status != INSN_UNAVAILABLE) {
sysctl = &insn->sysctl[0];
sysctl = &insn->sysctl;

sysctl->mode = 0644;
sysctl->maxlen = sizeof(int);
Expand Down
2 changes: 0 additions & 2 deletions arch/arm64/kernel/fpsimd.c
Original file line number Diff line number Diff line change
Expand Up @@ -589,7 +589,6 @@ static struct ctl_table sve_default_vl_table[] = {
.proc_handler = vec_proc_do_default_vl,
.extra1 = &vl_info[ARM64_VEC_SVE],
},
{ }
};

static int __init sve_sysctl_init(void)
Expand All @@ -613,7 +612,6 @@ static struct ctl_table sme_default_vl_table[] = {
.proc_handler = vec_proc_do_default_vl,
.extra1 = &vl_info[ARM64_VEC_SME],
},
{ }
};

static int __init sme_sysctl_init(void)
Expand Down
1 change: 0 additions & 1 deletion arch/arm64/kernel/process.c
Original file line number Diff line number Diff line change
Expand Up @@ -724,7 +724,6 @@ static struct ctl_table tagged_addr_sysctl_table[] = {
.extra1 = SYSCTL_ZERO,
.extra2 = SYSCTL_ONE,
},
{ }
};

static int __init tagged_addr_init(void)
Expand Down
1 change: 0 additions & 1 deletion arch/csky/abiv1/alignment.c
Original file line number Diff line number Diff line change
Expand Up @@ -329,7 +329,6 @@ static struct ctl_table alignment_tbl[5] = {
.mode = 0666,
.proc_handler = &proc_dointvec
},
{}
};

static int __init csky_alignment_init(void)
Expand Down
1 change: 0 additions & 1 deletion arch/powerpc/kernel/idle.c
Original file line number Diff line number Diff line change
Expand Up @@ -105,7 +105,6 @@ static struct ctl_table powersave_nap_ctl_table[] = {
.mode = 0644,
.proc_handler = proc_dointvec,
},
{}
};

static int __init
Expand Down
1 change: 0 additions & 1 deletion arch/powerpc/platforms/pseries/mobility.c
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,6 @@ static struct ctl_table nmi_wd_lpm_factor_ctl_table[] = {
.mode = 0644,
.proc_handler = proc_douintvec_minmax,
},
{}
};

static int __init register_nmi_wd_lpm_factor_sysctl(void)
Expand Down
1 change: 0 additions & 1 deletion arch/riscv/kernel/vector.c
Original file line number Diff line number Diff line change
Expand Up @@ -255,7 +255,6 @@ static struct ctl_table riscv_v_default_vstate_table[] = {
.mode = 0644,
.proc_handler = proc_dobool,
},
{ }
};

static int __init riscv_v_sysctl_init(void)
Expand Down
4 changes: 1 addition & 3 deletions arch/s390/appldata/appldata_base.c
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,6 @@ static struct ctl_table appldata_table[] = {
.mode = S_IRUGO | S_IWUSR,
.proc_handler = appldata_interval_handler,
},
{ },
};

/*
Expand Down Expand Up @@ -351,8 +350,7 @@ int appldata_register_ops(struct appldata_ops *ops)
if (ops->size > APPLDATA_MAX_REC_SIZE)
return -EINVAL;

/* The last entry must be an empty one */
ops->ctl_table = kcalloc(2, sizeof(struct ctl_table), GFP_KERNEL);
ops->ctl_table = kcalloc(1, sizeof(struct ctl_table), GFP_KERNEL);
if (!ops->ctl_table)
return -ENOMEM;

Expand Down
1 change: 0 additions & 1 deletion arch/s390/kernel/debug.c
Original file line number Diff line number Diff line change
Expand Up @@ -978,7 +978,6 @@ static struct ctl_table s390dbf_table[] = {
.mode = S_IRUGO | S_IWUSR,
.proc_handler = s390dbf_procactive,
},
{ }
};

static struct ctl_table_header *s390dbf_sysctl_header;
Expand Down
1 change: 0 additions & 1 deletion arch/s390/kernel/topology.c
Original file line number Diff line number Diff line change
Expand Up @@ -636,7 +636,6 @@ static struct ctl_table topology_ctl_table[] = {
.mode = 0644,
.proc_handler = topology_ctl_handler,
},
{ },
};

static int __init topology_init(void)
Expand Down
1 change: 0 additions & 1 deletion arch/s390/mm/cmm.c
Original file line number Diff line number Diff line change
Expand Up @@ -332,7 +332,6 @@ static struct ctl_table cmm_table[] = {
.mode = 0644,
.proc_handler = cmm_timeout_handler,
},
{ }
};

#ifdef CONFIG_CMM_IUCV
Expand Down
1 change: 0 additions & 1 deletion arch/s390/mm/pgalloc.c
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,6 @@ static struct ctl_table page_table_sysctl[] = {
.extra1 = SYSCTL_ZERO,
.extra2 = SYSCTL_ONE,
},
{ }
};

static int __init page_table_register_sysctl(void)
Expand Down
1 change: 0 additions & 1 deletion arch/x86/entry/vdso/vdso32-setup.c
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,6 @@ static struct ctl_table abi_table2[] = {
.extra1 = SYSCTL_ZERO,
.extra2 = SYSCTL_ONE,
},
{}
};

static __init int ia32_binfmt_init(void)
Expand Down
1 change: 0 additions & 1 deletion arch/x86/kernel/cpu/intel.c
Original file line number Diff line number Diff line change
Expand Up @@ -1003,7 +1003,6 @@ static struct ctl_table sld_sysctls[] = {
.extra1 = SYSCTL_ZERO,
.extra2 = SYSCTL_ONE,
},
{}
};

static int __init sld_mitigate_sysctl_init(void)
Expand Down
1 change: 0 additions & 1 deletion arch/x86/kernel/itmt.c
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,6 @@ static struct ctl_table itmt_kern_table[] = {
.extra1 = SYSCTL_ZERO,
.extra2 = SYSCTL_ONE,
},
{}
};

static struct ctl_table_header *itmt_sysctl_header;
Expand Down
1 change: 0 additions & 1 deletion drivers/base/firmware_loader/fallback_table.c
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,6 @@ static struct ctl_table firmware_config_table[] = {
.extra1 = SYSCTL_ZERO,
.extra2 = SYSCTL_ONE,
},
{ }
};

static struct ctl_table_header *firmware_config_sysct_table_header;
Expand Down
1 change: 0 additions & 1 deletion drivers/char/hpet.c
Original file line number Diff line number Diff line change
Expand Up @@ -709,7 +709,6 @@ static struct ctl_table hpet_table[] = {
.mode = 0644,
.proc_handler = proc_dointvec,
},
{}
};

static struct ctl_table_header *sysctl_header;
Expand Down
1 change: 0 additions & 1 deletion drivers/char/ipmi/ipmi_poweroff.c
Original file line number Diff line number Diff line change
Expand Up @@ -656,7 +656,6 @@ static struct ctl_table ipmi_table[] = {
.maxlen = sizeof(poweroff_powercycle),
.mode = 0644,
.proc_handler = proc_dointvec },
{ }
};

static struct ctl_table_header *ipmi_table_header;
Expand Down
1 change: 0 additions & 1 deletion drivers/char/random.c
Original file line number Diff line number Diff line change
Expand Up @@ -1683,7 +1683,6 @@ static struct ctl_table random_table[] = {
.mode = 0444,
.proc_handler = proc_do_uuid,
},
{ }
};

/*
Expand Down
1 change: 0 additions & 1 deletion drivers/gpu/drm/i915/i915_perf.c
Original file line number Diff line number Diff line change
Expand Up @@ -4836,7 +4836,6 @@ static struct ctl_table oa_table[] = {
.extra1 = SYSCTL_ZERO,
.extra2 = &oa_sample_rate_hard_limit,
},
{}
};

static u32 num_perf_groups_per_gt(struct intel_gt *gt)
Expand Down
1 change: 0 additions & 1 deletion drivers/hv/hv_common.c
Original file line number Diff line number Diff line change
Expand Up @@ -148,7 +148,6 @@ static struct ctl_table hv_ctl_table[] = {
.extra1 = SYSCTL_ZERO,
.extra2 = SYSCTL_ONE
},
{}
};

static int hv_die_panic_notify_crash(struct notifier_block *self,
Expand Down
1 change: 0 additions & 1 deletion drivers/infiniband/core/iwcm.c
Original file line number Diff line number Diff line change
Expand Up @@ -111,7 +111,6 @@ static struct ctl_table iwcm_ctl_table[] = {
.mode = 0644,
.proc_handler = proc_dointvec,
},
{ }
};

/*
Expand Down
1 change: 0 additions & 1 deletion drivers/infiniband/core/ucma.c
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,6 @@ static struct ctl_table ucma_ctl_table[] = {
.mode = 0644,
.proc_handler = proc_dointvec,
},
{ }
};

struct ucma_file {
Expand Down
1 change: 0 additions & 1 deletion drivers/macintosh/mac_hid.c
Original file line number Diff line number Diff line change
Expand Up @@ -236,7 +236,6 @@ static struct ctl_table mac_hid_files[] = {
.mode = 0644,
.proc_handler = proc_dointvec,
},
{ }
};

static struct ctl_table_header *mac_hid_sysctl_header;
Expand Down
1 change: 0 additions & 1 deletion drivers/md/md.c
Original file line number Diff line number Diff line change
Expand Up @@ -304,7 +304,6 @@ static struct ctl_table raid_table[] = {
.mode = S_IRUGO|S_IWUSR,
.proc_handler = proc_dointvec,
},
{ }
};

static int start_readonly;
Expand Down
2 changes: 0 additions & 2 deletions drivers/misc/sgi-xp/xpc_main.c
Original file line number Diff line number Diff line change
Expand Up @@ -110,7 +110,6 @@ static struct ctl_table xpc_sys_xpc_hb[] = {
.proc_handler = proc_dointvec_minmax,
.extra1 = &xpc_hb_check_min_interval,
.extra2 = &xpc_hb_check_max_interval},
{}
};
static struct ctl_table xpc_sys_xpc[] = {
{
Expand All @@ -121,7 +120,6 @@ static struct ctl_table xpc_sys_xpc[] = {
.proc_handler = proc_dointvec_minmax,
.extra1 = &xpc_disengage_min_timelimit,
.extra2 = &xpc_disengage_max_timelimit},
{}
};

static struct ctl_table_header *xpc_sysctl;
Expand Down
1 change: 0 additions & 1 deletion drivers/net/vrf.c
Original file line number Diff line number Diff line change
Expand Up @@ -1963,7 +1963,6 @@ static const struct ctl_table vrf_table[] = {
/* set by the vrf_netns_init */
.extra1 = NULL,
},
{ },
};

static int vrf_netns_init_sysctl(struct net *net, struct netns_vrf *nn_vrf)
Expand Down
28 changes: 11 additions & 17 deletions drivers/parport/procfs.c
Original file line number Diff line number Diff line change
Expand Up @@ -259,8 +259,12 @@ PARPORT_MAX_SPINTIME_VALUE;
struct parport_sysctl_table {
struct ctl_table_header *port_header;
struct ctl_table_header *devices_header;
struct ctl_table vars[12];
struct ctl_table device_dir[2];
#ifdef CONFIG_PARPORT_1284
struct ctl_table vars[10];
#else
struct ctl_table vars[5];
#endif /* IEEE 1284 support */
struct ctl_table device_dir[1];
};

static const struct parport_sysctl_table parport_sysctl_template = {
Expand Down Expand Up @@ -341,7 +345,6 @@ static const struct parport_sysctl_table parport_sysctl_template = {
.proc_handler = do_autoprobe
},
#endif /* IEEE 1284 support */
{}
},
{
{
Expand All @@ -351,19 +354,14 @@ static const struct parport_sysctl_table parport_sysctl_template = {
.mode = 0444,
.proc_handler = do_active_device
},
{}
},
};

struct parport_device_sysctl_table
{
struct ctl_table_header *sysctl_header;
struct ctl_table vars[2];
struct ctl_table device_dir[2];
struct ctl_table devices_root_dir[2];
struct ctl_table port_dir[2];
struct ctl_table parport_dir[2];
struct ctl_table dev_dir[2];
struct ctl_table vars[1];
struct ctl_table device_dir[1];
};

static const struct parport_device_sysctl_table
Expand All @@ -379,7 +377,6 @@ parport_device_sysctl_template = {
.extra1 = (void*) &parport_min_timeslice_value,
.extra2 = (void*) &parport_max_timeslice_value
},
{}
},
{
{
Expand All @@ -388,17 +385,13 @@ parport_device_sysctl_template = {
.maxlen = 0,
.mode = 0555,
},
{}
}
};

struct parport_default_sysctl_table
{
struct ctl_table_header *sysctl_header;
struct ctl_table vars[3];
struct ctl_table default_dir[2];
struct ctl_table parport_dir[2];
struct ctl_table dev_dir[2];
struct ctl_table vars[2];
};

static struct parport_default_sysctl_table
Expand All @@ -423,7 +416,6 @@ parport_default_sysctl_table = {
.extra1 = (void*) &parport_min_spintime_value,
.extra2 = (void*) &parport_max_spintime_value
},
{}
}
};

Expand All @@ -443,7 +435,9 @@ int parport_proc_register(struct parport *port)
t->vars[0].data = &port->spintime;
for (i = 0; i < 5; i++) {
t->vars[i].extra1 = port;
#ifdef CONFIG_PARPORT_1284
t->vars[5 + i].extra2 = &port->probe_info[i];
#endif /* IEEE 1284 support */
}

port_name_len = strnlen(port->name, PARPORT_NAME_MAX_LEN);
Expand Down
1 change: 0 additions & 1 deletion drivers/perf/arm_pmuv3.c
Original file line number Diff line number Diff line change
Expand Up @@ -1175,7 +1175,6 @@ static struct ctl_table armv8_pmu_sysctl_table[] = {
.extra1 = SYSCTL_ZERO,
.extra2 = SYSCTL_ONE,
},
{ }
};

static void armv8_pmu_register_sysctl_table(void)
Expand Down
1 change: 0 additions & 1 deletion drivers/scsi/scsi_sysctl.c
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,6 @@ static struct ctl_table scsi_table[] = {
.maxlen = sizeof(scsi_logging_level),
.mode = 0644,
.proc_handler = proc_dointvec },
{ }
};

static struct ctl_table_header *scsi_table_header;
Expand Down
1 change: 0 additions & 1 deletion drivers/scsi/sg.c
Original file line number Diff line number Diff line change
Expand Up @@ -1650,7 +1650,6 @@ static struct ctl_table sg_sysctls[] = {
.mode = 0444,
.proc_handler = proc_dointvec,
},
{}
};

static struct ctl_table_header *hdr;
Expand Down
1 change: 0 additions & 1 deletion drivers/tty/tty_io.c
Original file line number Diff line number Diff line change
Expand Up @@ -3612,7 +3612,6 @@ static struct ctl_table tty_table[] = {
.extra1 = SYSCTL_ZERO,
.extra2 = SYSCTL_ONE,
},
{ }
};

/*
Expand Down
Loading

0 comments on commit 426ee51

Please sign in to comment.