1
0
Fork 0
alistair23-linux/drivers/gpu/drm/i915
Matteo Croce eec4844fae proc/sysctl: add shared variables for range check
In the sysctl code the proc_dointvec_minmax() function is often used to
validate the user supplied value between an allowed range.  This
function uses the extra1 and extra2 members from struct ctl_table as
minimum and maximum allowed value.

On sysctl handler declaration, in every source file there are some
readonly variables containing just an integer which address is assigned
to the extra1 and extra2 members, so the sysctl range is enforced.

The special values 0, 1 and INT_MAX are very often used as range
boundary, leading duplication of variables like zero=0, one=1,
int_max=INT_MAX in different source files:

    $ git grep -E '\.extra[12].*&(zero|one|int_max)' |wc -l
    248

Add a const int array containing the most commonly used values, some
macros to refer more easily to the correct array member, and use them
instead of creating a local one for every object file.

This is the bloat-o-meter output comparing the old and new binary
compiled with the default Fedora config:

    # scripts/bloat-o-meter -d vmlinux.o.old vmlinux.o
    add/remove: 2/2 grow/shrink: 0/2 up/down: 24/-188 (-164)
    Data                                         old     new   delta
    sysctl_vals                                    -      12     +12
    __kstrtab_sysctl_vals                          -      12     +12
    max                                           14      10      -4
    int_max                                       16       -     -16
    one                                           68       -     -68
    zero                                         128      28    -100
    Total: Before=20583249, After=20583085, chg -0.00%

[mcroce@redhat.com: tipc: remove two unused variables]
  Link: http://lkml.kernel.org/r/20190530091952.4108-1-mcroce@redhat.com
[akpm@linux-foundation.org: fix net/ipv6/sysctl_net_ipv6.c]
[arnd@arndb.de: proc/sysctl: make firmware loader table conditional]
  Link: http://lkml.kernel.org/r/20190617130014.1713870-1-arnd@arndb.de
[akpm@linux-foundation.org: fix fs/eventpoll.c]
Link: http://lkml.kernel.org/r/20190430180111.10688-1-mcroce@redhat.com
Signed-off-by: Matteo Croce <mcroce@redhat.com>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Acked-by: Kees Cook <keescook@chromium.org>
Reviewed-by: Aaron Tomlin <atomlin@redhat.com>
Cc: Matthew Wilcox <willy@infradead.org>
Cc: Stephen Rothwell <sfr@canb.auug.org.au>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2019-07-18 17:08:07 -07:00
..
display Features: 2019-06-21 14:00:10 +10:00
gem drm/i915: Stop passing I915_WAIT_LOCKED to i915_request_wait() 2019-06-19 12:58:38 +01:00
gt Features: 2019-06-21 14:00:10 +10:00
gvt drm main pull request for v5.3-rc1 (sans mm changes) 2019-07-15 19:04:27 -07:00
selftests Features: 2019-06-21 14:00:10 +10:00
Kconfig drm/i915: add force_probe module parameter to replace alpha_support 2019-05-31 16:20:30 +03:00
Kconfig.debug drm/i915: Enable refcount debugging for default debug levels 2019-06-14 12:16:08 +01:00
Kconfig.profile drm/i915: Add a label for config DRM_I915_SPIN_REQUEST 2019-06-12 11:18:55 +01:00
Makefile drm/i915: move modesetting core code under display/ 2019-06-17 11:48:32 +03:00
Makefile.header-test drm main pull request for v5.3-rc1 (sans mm changes) 2019-07-15 19:04:27 -07:00
i915_active.c drm/i915: Keep engine alive as we retire the context 2019-06-18 15:14:22 +01:00
i915_active.h drm/i915: Stop passing I915_WAIT_LOCKED to i915_request_wait() 2019-06-19 12:58:38 +01:00
i915_active_types.h drm/i915: Keep contexts pinned until after the next kernel context switch 2019-06-14 19:03:32 +01:00
i915_cmd_parser.c drm/i915: Move GEM object domain management from struct_mutex to local 2019-05-28 12:45:29 +01:00
i915_debugfs.c drm/i915: no need to check return value of debugfs_create functions 2019-06-17 15:53:08 +03:00
i915_debugfs.h drm/i915: extract i915_debugfs.h from i915_drv.h 2019-05-03 10:06:40 +03:00
i915_drv.c drm/i915/ehl: Introduce Mule Creek Canyon PCH 2019-06-17 13:40:20 -07:00
i915_drv.h drm/i915: Update DRIVER_DATE to 20190619 2019-06-19 15:32:25 +03:00
i915_fixed.h drm/i915: Use mul_u32_u32() more 2019-05-03 20:09:51 +03:00
i915_gem.c drm/i915: move modesetting core code under display/ 2019-06-17 11:48:32 +03:00
i915_gem.h drm/i915: Load balancing across a virtual engine 2019-05-22 08:40:38 +01:00
i915_gem_batch_pool.c drm/i915: Use drm_gem_object.resv 2019-06-18 15:30:32 +01:00
i915_gem_batch_pool.h drm/i915: Split GEM object type definition to its own header 2019-05-28 12:45:29 +01:00
i915_gem_evict.c drm/i915: Move more GEM objects under gem/ 2019-05-28 12:45:29 +01:00
i915_gem_fence_reg.c drm/i915: make intel_wakeref work on the rpm struct 2019-06-14 15:58:33 +01:00
i915_gem_fence_reg.h drm/i915: Move fence register tracking from i915->mm to ggtt 2019-06-13 09:37:39 +01:00
i915_gem_gtt.c drm/i915/gtt: Serialise both updates to PDE and our shadow 2019-06-17 20:53:03 +01:00
i915_gem_gtt.h drm/i915/gtt: Use a common type for page directories 2019-06-17 16:30:54 +03:00
i915_gem_render_state.c drm/i915: Drop the deferred active reference 2019-05-28 12:45:29 +01:00
i915_gem_render_state.h
i915_globals.c drm/i915: Move more GEM objects under gem/ 2019-05-28 12:45:29 +01:00
i915_globals.h drm/i915: Move over to intel_context_lookup() 2019-03-08 13:59:52 +00:00
i915_gpu_error.c drm/i915: move modesetting core code under display/ 2019-06-17 11:48:32 +03:00
i915_gpu_error.h drm/i915: Invert the GEM wakeref hierarchy 2019-04-24 22:26:49 +01:00
i915_ioc32.c
i915_irq.c drm/i915/ehl: Introduce Mule Creek Canyon PCH 2019-06-17 13:40:20 -07:00
i915_irq.h drm/i915/guc: Correctly handle GuC interrupts on Gen11 2019-05-28 10:07:17 +01:00
i915_memcpy.c
i915_mm.c mm/pgtable: drop pgtable_t variable from pte_fn_t functions 2019-07-12 11:05:46 -07:00
i915_oa_bdw.c
i915_oa_bdw.h
i915_oa_bxt.c
i915_oa_bxt.h
i915_oa_cflgt2.c
i915_oa_cflgt2.h
i915_oa_cflgt3.c
i915_oa_cflgt3.h
i915_oa_chv.c
i915_oa_chv.h
i915_oa_cnl.c
i915_oa_cnl.h
i915_oa_glk.c
i915_oa_glk.h
i915_oa_hsw.c
i915_oa_hsw.h
i915_oa_icl.c
i915_oa_icl.h
i915_oa_kblgt2.c
i915_oa_kblgt2.h
i915_oa_kblgt3.c
i915_oa_kblgt3.h
i915_oa_sklgt2.c
i915_oa_sklgt2.h
i915_oa_sklgt3.c
i915_oa_sklgt3.h
i915_oa_sklgt4.c
i915_oa_sklgt4.h
i915_params.c drm/i915: add force_probe module parameter to replace alpha_support 2019-05-31 16:20:30 +03:00
i915_params.h drm/i915: add force_probe module parameter to replace alpha_support 2019-05-31 16:20:30 +03:00
i915_pci.c drm/i915: move modesetting core code under display/ 2019-06-17 11:48:32 +03:00
i915_perf.c proc/sysctl: add shared variables for range check 2019-07-18 17:08:07 -07:00
i915_pmu.c drm/i915: update with_intel_runtime_pm to use the rpm structure 2019-06-14 15:58:33 +01:00
i915_pmu.h Merge back earlier PM core material for v5.1. 2019-02-24 21:20:27 +01:00
i915_priolist_types.h drm/i915: Downgrade NEWCLIENT to non-preemptive 2019-05-20 18:28:22 +03:00
i915_pvinfo.h drm/i915: Mark up vGPU support for full-ppgtt 2019-03-15 09:04:54 +00:00
i915_query.c Revert "drm/i915: Expand subslice mask" 2019-05-29 17:18:18 +03:00
i915_query.h
i915_reg.h Features: 2019-06-21 14:00:10 +10:00
i915_request.c drm/i915: Stop passing I915_WAIT_LOCKED to i915_request_wait() 2019-06-19 12:58:38 +01:00
i915_request.h drm/i915: Replace engine->timeline with a plain list 2019-06-14 19:03:40 +01:00
i915_scatterlist.c drm/i915: Pull scatterlist utils out of i915_gem.h 2019-05-28 12:45:29 +01:00
i915_scatterlist.h drm/i915: Pull scatterlist utils out of i915_gem.h 2019-05-28 12:45:29 +01:00
i915_scheduler.c drm/i915: Replace engine->timeline with a plain list 2019-06-14 19:03:40 +01:00
i915_scheduler.h drm/i915: Only reschedule the submission tasklet if preemption is possible 2019-05-07 17:40:20 +01:00
i915_scheduler_types.h drm/i915: Bump signaler priority on adding a waiter 2019-05-20 18:28:04 +03:00
i915_selftest.h
i915_suspend.c drm/i915: move modesetting core code under display/ 2019-06-17 11:48:32 +03:00
i915_sw_fence.c drm/i915: Allow contexts to share a single timeline across all engines 2019-03-22 13:12:38 +00:00
i915_sw_fence.h drm/i915: Allow contexts to share a single timeline across all engines 2019-03-22 13:12:38 +00:00
i915_syncmap.c
i915_syncmap.h
i915_sysfs.c drm/i915: update with_intel_runtime_pm to use the rpm structure 2019-06-14 15:58:33 +01:00
i915_timeline.c drm/i915: Replace engine->timeline with a plain list 2019-06-14 19:03:40 +01:00
i915_timeline.h drm/i915: Replace engine->timeline with a plain list 2019-06-14 19:03:40 +01:00
i915_timeline_types.h drm/i915: Replace engine->timeline with a plain list 2019-06-14 19:03:40 +01:00
i915_trace.h drm/i915: Stop passing I915_WAIT_LOCKED to i915_request_wait() 2019-06-19 12:58:38 +01:00
i915_trace_points.c
i915_user_extensions.c drm/i915: Introduce the i915_user_extension_method 2019-03-22 13:12:30 +00:00
i915_user_extensions.h drm/i915: Introduce the i915_user_extension_method 2019-03-22 13:12:30 +00:00
i915_utils.h drm/i915: Move GEM object waiting to its own file 2019-05-28 12:45:29 +01:00
i915_vgpu.c drm/i915: rename raw reg access functions 2019-03-26 19:15:15 +00:00
i915_vgpu.h drm/i915: Mark up vGPU support for full-ppgtt 2019-03-15 09:04:54 +00:00
i915_vma.c drm/i915: Use drm_gem_object.resv 2019-06-18 15:30:32 +01:00
i915_vma.h drm/i915: Move fence register tracking from i915->mm to ggtt 2019-06-13 09:37:39 +01:00
intel_csr.c Linux 5.2-rc5 2019-06-19 12:07:29 +02:00
intel_csr.h drm/i915/csr: move CSR version macros to intel_csr.h 2019-05-03 10:06:25 +03:00
intel_device_info.c drm/i915: Kill INTEL_SUBPLATFORM_AML 2019-06-12 14:51:26 +03:00
intel_device_info.h drm/i915: move modesetting core code under display/ 2019-06-17 11:48:32 +03:00
intel_drv.h Linux 5.2-rc5 2019-06-19 12:07:29 +02:00
intel_guc.c drm/i915: Make GuC GGTT reservation work on ggtt 2019-06-11 14:40:15 +01:00
intel_guc.h drm/i915: Make GuC GGTT reservation work on ggtt 2019-06-11 14:40:15 +01:00
intel_guc_ads.c drm/i915/guc: Reset GuC ADS during sanitize 2019-05-28 10:07:05 +01:00
intel_guc_ads.h drm/i915/guc: Reset GuC ADS during sanitize 2019-05-28 10:07:05 +01:00
intel_guc_ct.c drm/i915/guc: always use Command Transport Buffers 2019-06-09 11:21:33 +01:00
intel_guc_ct.h drm/i915/uc: Stop talking with GuC when resetting 2019-05-23 21:58:36 +01:00
intel_guc_fw.c drm/i915/guc: Define GuC firmware version for Icelake 2019-05-28 10:07:22 +01:00
intel_guc_fw.h
intel_guc_fwif.h drm/i915: fix documentation build warnings 2019-06-06 11:13:20 +03:00
intel_guc_log.c drm/i915/guc: Reduce verbosity on log overflows 2019-06-18 11:35:19 +01:00
intel_guc_log.h
intel_guc_reg.h drm/i915/guc: Correctly handle GuC interrupts on Gen11 2019-05-28 10:07:17 +01:00
intel_guc_submission.c drm/i915: Replace engine->timeline with a plain list 2019-06-14 19:03:40 +01:00
intel_guc_submission.h drm/i915: Move GraphicsTechnology files under gt/ 2019-04-24 21:01:46 +01:00
intel_gvt.c
intel_gvt.h
intel_huc.c drm/i915: update with_intel_runtime_pm to use the rpm structure 2019-06-14 15:58:33 +01:00
intel_huc.h drm/i915/huc: New HuC status register for Gen11 2019-05-28 10:07:13 +01:00
intel_huc_fw.c drm/i915/huc: Define HuC firmware version for Icelake 2019-05-28 10:07:23 +01:00
intel_huc_fw.h
intel_pm.c drm/i915: move modesetting core code under display/ 2019-06-17 11:48:32 +03:00
intel_pm.h drm/i915: move pm related declarations to intel_pm.h 2019-06-10 10:29:17 +03:00
intel_renderstate.h
intel_renderstate_gen6.c
intel_renderstate_gen7.c
intel_renderstate_gen8.c
intel_renderstate_gen9.c
intel_runtime_pm.c drm/i915: update rpm_get/put to use the rpm structure 2019-06-14 15:58:33 +01:00
intel_runtime_pm.h pci-v5.3-changes 2019-07-15 20:44:49 -07:00
intel_sideband.c drm/i915: Make sandybridge_pcode_read() deal with the second data register 2019-05-27 20:51:48 +03:00
intel_sideband.h drm/i915: Make sandybridge_pcode_read() deal with the second data register 2019-05-27 20:51:48 +03:00
intel_uc.c drm/i915: update with_intel_runtime_pm to use the rpm structure 2019-06-14 15:58:33 +01:00
intel_uc.h drm/i915/guc: Fix runtime suspend 2019-05-03 08:38:37 +01:00
intel_uc_fw.c drm/i915: Move GEM object domain management from struct_mutex to local 2019-05-28 12:45:29 +01:00
intel_uc_fw.h drm/i915/uc: Place uC firmware in upper range of GGTT 2019-04-20 08:19:32 +01:00
intel_uncore.c drm/i915: update with_intel_runtime_pm to use the rpm structure 2019-06-14 15:58:33 +01:00
intel_uncore.h drm/i915: move and rename i915_runtime_pm 2019-06-14 15:58:33 +01:00
intel_wakeref.c drm/i915: make intel_wakeref work on the rpm struct 2019-06-14 15:58:33 +01:00
intel_wakeref.h drm/i915: make intel_wakeref work on the rpm struct 2019-06-14 15:58:33 +01:00
intel_wopcm.c drm/i915/wopcm: update default size for gen11+ 2019-06-09 11:28:32 +01:00
intel_wopcm.h drm/i915/guc: Move intel_guc_reserved_gtt_size to intel_wopcm_guc_size 2019-06-11 14:40:14 +01:00