Доработки в ядре

Предложения по доработкам в ядре

Технологический центр собирает предложения по доработкам в ядре, нацеленным на повышение его безопасности. Реализация наиболее интересных предложений, одобренных Технических комитетом, будет поддержана Технологическим центром. Поддержка может заключаться в выделении грантов на реализацию предложения сообществом или в его реализации силами сотрудников центра.

Для того, чтобы представить своё предложение на рассмотрение, опишите его в системе управления задачами.

Задача1 - Реализация совместимости ядра Linux с более безопасными реализациями UEFI

Реализации UEFI, нацеленные на повышенную безопасность, реализуют принцип отсутствия памяти одновременно доступной и для записи, и для исполнения. Поэтому память, например, выделенная с помощью EFI_LOADER_CODE, не будет доступна для записи и это будет соответствовать UEFI спецификации. Но текущие версии ядра Linux не стартуют с такими UEFI прошивками, падая с page fault.

Спецификация UEFI не указывает какие атрибуты будут присвоены выделяемой памяти, например, будет ли она записываемая и/или исполняемая. В связи с этим реализации прошивок с повышенной безопасностью в соответствии со спецификацией не разрешают исполнение выделенной их средствами памяти. Например, память, имеющая тип EFI_LOADER_CODE, может быть не исполняемой, что противоречит интуиции, но соответствует спецификации.

При загрузке ядра Linux код загрузки предполагает, что вся память является и записываемой, и исполняемой, что вызывает ошибку страничной адресации на вышеуказанных прошивках и прерывает процесс нормальной загрузки ядра. Необходимо убрать необоснованные предположения кода загрузки об атрибутах памяти и устанавливать их явно.

Сотрудниками Технологического центра подготовлены патчи, исправляющие эту проблему:
V1
V2
V3

и они уже приняты в основную ветку ядра:
efi: libstub: declare DXE services table
efi: libstub: ensure allocated memory to be executable
efi/x86: libstub: Fix typo in __efi64_argmap* name

Задача2 - Повышение безопасности ядра Linux на ранних этапах загрузки

При загрузке платформе x86_64 ядро Linux использует страничную адресацию, которая позволяет ограничить исполнение регионов памяти и/или запись в них. Однако эти возможности не применяются и вся память используется с максимальными правами доступа и отображением при обращении.

Первое упрощает эксплуатацию потенциально присутствующих в коде уязвимостей с применением перезаписи кода/данных, например переполнения буфера. Второе скрывает ошибки работы с памятью.

Следует максимально ограничить права доступа, реализовав политику WˆX (Write-xor-Execute). Эта политика заключается в запрете на использование регионов памяти доступных одновременно на запись и исполнение. Её применение не позволяет атакующему записать необходимый код и сразу передать на него управление, усложняя задачу выполнения произвольного кода.

Основная сложность реализации WˆX заключается в корректном определении регионов памяти и установке требуемых ими атрибутов памяти, так как

  • в процессе загрузки механизмы страничной адресации не всегда доступны и не во всех случаях управляются непосредственно ядром;
  • память повторно используется для регионов с различными требуемыми атрибутами;
  • регионы перемещаются на перекрывающиеся с другими регионами адреса.

Процесс ранней загрузки ядра

Ядро Linux хранится на диске, как файл, содержащий ядро в сжатом виде и небольшой код ранней загрузки, задачей которого является распаковка образа ядра и подготовка окружения для продолжения инициализации (см. Рис. 1). Этот код поддерживает множество интерфейсов загрузки, но все они передают управление на общую для всех интерфейсов часть пути исполнения. Этим вызвана необходимость повторной инициализации состояния процессора и перемещения ядра.

Процесс ранней загрузки ядра

Однако при загрузке с использованием интерфейсов 64-битных UEFI (узлы, выделенные пунктиром на Рис. 1) окружение известно, и, если избежать использования общей для всех путей исполнения части кода и распаковывать ядро напрямую из окружения, предоставляемого UEFI-совместимой прошивкой, можно значительно упростить код загрузки ядра и избежать необходимости копирования образа ядра.

Поэтому работа ведётся над двумя наборами патчей. Первый повышает безопасность кода общего пути исполнения, реализуя для него политику WˆX везде, где это применимо. Второй реализует отдельный путь исполнения при загрузке с использованием 64-битных UEFI-совместимых прошивок, тем самым позволяя избавиться от перемещений ядра и повторного использования памяти, что позволяет реализовать для этого способа загрузки политику WˆX в полном объеме.

Исправленные ошибки

Исправления ошибок, подготовленные в ходе работы Технологического центра, и уже принятые в основную ветку ядра (341 исправление):
nfs: fix undefined behavior in nfs_block_bits()
ata: pata_legacy: make legacy_exit() work again
jffs2: prevent xattr node from overflowing the eraseblock
thermal/drivers/tsens: Fix null pointer dereference
drm: vc4: Fix possible null pointer dereference
cppc_cpufreq: Fix possible null pointer dereference
drm/msm/dpu: Add callback function pointer check before its call
iommu/arm-smmu-v3: Free MSIs in case of ENOMEM
rcu: Fix buffer overflow in print_cpu_stall_info()
crypto: algboss - remove NULL check in cryptomgr_schedule_probe()
ASoC: kirkwood: Fix potential NULL dereference
rcu-tasks: Fix show_rcu_tasks_trace_gp_kthread buffer overflow
udf: udftime: prevent overflow in udf_disk_stamp_to_time()
sunrpc: removed redundant procp check
greybus: lights: check return of get_channel_from_mode
crypto: bcm - Fix pointer arithmetic
wifi: rtlwifi: always assume QoS mode in rtl8192cu
wifi: rtlwifi: drop WMM stubs from rtl8192cu
mtd: partitions: redboot: Added conversion of operands to a larger type
cxgb4: unnecessary check for 0 in the free_sge_txq_uld() function
mtd: rawnand: hynix: fixed typo
scsi: hpsa: Fix allocation size for Scsi_Host private data
ssb: Fix potential NULL pointer dereference in ssb_device_uevent()
media: ngene: Add dvb_ca_en50221_init return value check
wifi: cfg80211: fix the order of arguments for trace events of the tx_rx_evt class
phy: marvell: a3700-comphy: Fix hardcoded array size
phy: marvell: a3700-comphy: Fix out of bounds read
drm: nv04: Fix out of bounds access
net: phy: micrel: Fix potential null pointer dereference
octeontx2-af: Add array index check
of: module: prevent NULL pointer dereference in vsnprintf()
ACPICA: debugger: check status of acpi_evaluate_object() in acpi_db_walk_for_fields()
dma-buf: Fix NULL pointer dereference in sanitycheck()
wifi: cfg80211: fix rdev_dump_mpp() arguments order
fbmon: prevent division by zero in fb_videomode_from_videomode()
net: phy: fix phy_read_poll_timeout argument type in genphy_loopback
assoc_array: fix the return value in assoc_array_insert_mid_shortcut()
platform/mellanox: mlxreg-hotplug: Remove redundant NULL-check
block: prevent division by zero in blk_rq_stat_sum()
Bluetooth: mgmt: remove NULL check in add_ext_adv_params_complete()
Bluetooth: mgmt: remove NULL check in mgmt_set_connectable_complete()
fbdev: viafb: fix typo in hw_bitblt_1 and hw_bitblt_2
mac802154: fix llsec key resources release in mac802154_llsec_key_del
i40e: remove unnecessary qv_info ptr NULL checks
iavf: drop duplicate iavf_{add|del}_cloud_filter() calls
RDMA/rtrs-clt: Check strnlen return len in sysfs mpath_policy_store()
media: pvrusb2: remove redundant NULL check
media: go7007: add check of return value of go7007_read_addr()
can: softing: remove redundant NULL check
wifi: brcmfmac: do not cast hidden SSID attribute value to boolean
i2c: Remove redundant comparison in npcm_i2c_reg_slave
drm/amd/display: fix NULL checks for adev->dm.dc in amdgpu_dm_fini()
drm/radeon/ni: Fix wrong firmware size logging in ni_init_microcode()
usb: storage: sddr55: fix sloppy typing in sddr55_{read|write}_data()
drm/radeon/ni_dpm: remove redundant NULL check
drm/radeon: remove dead code in ni_mc_load_microcode()
cpufreq: brcmstb-avs-cpufreq: add check for cpufreq_cpu_get's return value
wifi: rtlwifi: cleanup few rtlxxx_tx_fill_desc() routines
wifi: ath9k: fix LNA selection in ath_ant_try_scan()
drm/tegra: put drm_gem_object ref on error in tegra_fb_create
wifi: rt2x00: simplify rt2x00crypto_rx_insert_iv()
wifi: brcmsmac: phy: Remove unreachable code
afs: Increase buffer size in afs_update_volume_status()
net: stmmac: Fix incorrect dereference in interrupt handlers
pppoe: Fix memory leak in pppoe_sendmsg()
ASoC: rt5645: Fix deadlock in rt5645_jack_detect_work()
ksmbd: free aux buffer if ksmbd_iov_pin_rsp_read fails
nfc: nci: free rx_data_reassembly skb on NCI device cleanup
drm/ttm: fix ttm pool initialization for no-dma-device drivers
btrfs: ref-verify: free ref cache before clearing mount opt
drm/exynos: gsc: minor fix for loop iteration in gsc_runtime_resume
ipvs: avoid stat macros calls from preemptible context
ksmbd: free ppace array on error in parse_dacl
apparmor: avoid crash when parsed profile name is empty
wifi: rt2x00: remove useless code in rt2x00queue_create_tx_descriptor()
cpufreq: scmi: process the result of devm_of_clk_add_hw_provider()
apparmor: fix possible memory leak in unpack_trans_table
crypto: safexcel - Add error handling for dma_map_sg() calls
drm/radeon/r600_cs: Fix possible int overflows in r600_cs_check_reg()
drm/radeon/r100: Fix integer overflow issues in r100_cs_track_check()
scsi: isci: Remove redundant check in isci_task_request_build()
scsi: fnic: Return error if vmalloc() failed
apparmor: free the allocated pdb objects
calipso: fix memory leak in netlbl_calipso_add_pass()
pinctrl: stm32: return errors from stm32_gpio_direction_output()
wifi: rtlwifi: simplify rtl_action_proc() and rtl_tx_agg_start()
ACPI: LPIT: Avoid u32 multiplication overflow
ACPI: video: check for error while searching for backlight device parent
pstore: ram_core: fix possible overflow in persistent_ram_init_ecc()
drm/radeon: check return value of radeon_ring_lock()
afs: Fix overwriting of result of DNS query
net: 9p: avoid freeing uninit memory in p9pdu_vreadf
vsock/virtio: Fix unsigned integer wrap around in virtio_transport_has_space()
net: atlantic: Fix NULL dereference of skb pointer in
octeontx2-af: Fix possible buffer overflow
bcache: prevent potential division by zero error
cifs: fix check of rc in function generate_smb3signingkey
cifs: spnego: add ';' in HOST_KEY_LEN
net: atm: Remove redundant check.
usb: host: xhci-plat: fix possible kernel oops while resuming
fs: ocfs2: check status values
rtc: efi: fixed typo in efi_procfs()
wifi: iwlwifi: drop NULL pointer check in iwl_mvm_tzone_set_trip_temp()
wifi: rtlwifi: remove unreachable code in rtl92d_dm_check_edca_turbo()
md-cluster: check for timeout while a new disk adding
wifi: rtlwifi: cleanup few rtlxxxx_set_hw_reg() routines
pinctrl: mediatek: moore: handle mtk_hw_set_value() errors in mtk_pinmux_set_mux()
pinctrl: mediatek: paris: handle mtk_hw_set_value() errors in mtk_pmx_set_mux()
media: s3c-camif: Avoid inappropriate kfree()
wifi: mwifiex: simplify PCIE write operations
wifi: ath10k: drop HTT_DATA_TX_STATUS_DOWNLOAD_FAIL
ipv6: mcast: Remove redundant comparison in igmp6_mcf_get_next()
ipv4: igmp: Remove redundant comparison in igmp_mcf_get_next()
wifi: ath11k: drop NULL pointer check in ath11k_update_per_peer_tx_stats()
srcu: Fix srcu_struct node grpmask overflow on 64-bit systems
drm/amd/display: remove useless check in should_enable_fbc()
mtd: lpddr_cmds: Add literal suffix
wifi: ath11k: drop redundant check in ath11k_dp_rx_mon_dest_process()
wifi: ath9k: simplify ar9003_hw_process_ini()
net: pktgen: Fix interface flags printing
fbdev: core: syscopyarea: fix sloppy typing
fbdev: core: cfbcopyarea: fix sloppy typing
pinctrl: nuvoton: wpcm450: fix out of bounds write
dm zoned: free dmz->ddev array in dmz_put_zoned_devices
drivers/net: process the result of hdlc_open() and add call ofhdlc_close() in uhdlc_close()
RDMA/cxgb4: Check skb value for failure to allocate
net: rds: Fix possible NULL-pointer dereference
ethernet: tg3: remove unreachable code
tracing: Remove extra space at the end of hwlat_detector/mode
smb: propagate error code of extract_sharename()
spi: tegra114: Remove unnecessary NULL-pointer checks
wifi: mwifiex: avoid possible NULL skb pointer dereference
scsi: isci: Return result of sas_register_ha()
autofs: fix memory leak of waitqueues in autofs_catatonic_mode
fs: ocfs2: namei: check return value of ocfs2_add_entry()
drm/amd/display: Return value of function
pinctrl: at91-pio4: drop useless check in atmel_conf_pin_config_dbg_show()
wifi: mwifiex: handle possible mwifiex_write_reg() errors
wifi: mwifiex: handle possible sscanf() errors
wifi: libertas: prefer kstrtoX() for simple integer conversions
wifi: libertas: handle possible spu_write_u16() errors
wifi: libertas: cleanup SDIO reset
NFSv4/pnfs: minor fix for cleanup path in nfs4_get_device_info
pinctrl: pinmux: handle radix_tree_insert() errors in pinmux_generic_add_function()
pinctrl: core: handle radix_tree_insert() errors in pinctrl_register_one_pin()
pinctrl: core: handle radix_tree_insert() errors in pinctrl_generic_add_group()
HID: logitech-dj: Fix error handling in logi_dj_recv_switch_to_dj_mode()
media: cx24120: Add retval check for cx24120_message_send()
wifi: ath9k: protect WMI command response buffer replacement with a lock
wifi: ath9k: fix races between ath9k_wmi_cmd and ath9k_wmi_ctrl_rx
media: dib7000p: Fix potential division by zero
NFSv4: fix out path in `__nfs4_get_acl_uncached
NFSv4.2: fix error handling in nfs42_proc_getxattr
broadcom: b44: Use b44_writephy() return value
drivers: vxlan: vnifilter: free percpu vni stats on error path
scsi: 53c700: Check that command slot is not NULL
tipc: stop tipc crypto on failure in tipc_node_create
media: pulse8-cec: handle possible ping error
media: pci: cx23885: fix error handling for cx23885 ATSC boards
netfilter: nf_conntrack_sip: fix the ct_sip_parse_numerical_param() return value
drm/radeon: fix possible division-by-zero errors
ntfs: do not dereference a null ctx on error
usb: dwc3: qcom: Fix potential memory leak
wifi: ath9k: don't allow to overwrite ENDPOINT0 attributes
isa: Remove unnecessary checks
drm/amdkfd: Fix potential deallocation of previously deallocated memory
hwmon: (f71882fg) prevent possible division by zero
sctp: fix a potential OOB access in sctp_sched_set_sched()
wifi: ath9k: avoid referencing uninit memory in ath9k_wmi_ctrl_rx
drm/i915/dp: prevent potential div-by-zero
PM: domains: fix integer overflow issues in genpd_parse_state()
radeon: avoid double free in ci_dpm_init()
apparmor: fix missing error check for rhashtable_insert_fast
media: usb: Check az6007_read() return value
net: macsec: fix double free of percpu stats
drm/nouveau/dp: check for NULL nv_connector->native_mode
drm/nouveau: add nv_encoder pointer check for NULL
can: j1939: avoid possible use-after-free when j1939_can_rx_register fails
can: j1939: change j1939_netdev_lock type to mutex
batman-adv: Broken sync while rescheduling delayed work
netfilter: nf_tables: Add null check for nla_nest_start_noflag() in nft_dump_basechain_hook()
HID: wacom: Add error check to wacom_parse_and_register()
HID: wacom: avoid integer overflow in wacom_intuos_inout()
udp6: Fix race condition in udp6_sendmsg & connect
ipv6: Fix out-of-bounds access in ipv6_find_tlv()
drm/sched: Remove redundant check
btrfs: print-tree: parent bytenr must be aligned to sector size
drm/amd/display: Fix potential null dereference
bnx2: remove deadcode in bnx2_init_cpus()
mmc: sdhci-of-esdhc: fix quirk to ignore command inhibit for data
scsi: megaraid: Fix mega_cmd_done() CMDID_INT_CMDS
iio: adc: qcom-pm8xxx-xoadc: Remove useless condition in pm8xxx_xoadc_parse_channel()
bnxt: avoid overflow in bnxt_get_nvram_directory()
RDMA/rdmavt: Delete unnecessary NULL check
RDMA/siw: Fix potential page_array out of range access
wifi: ath6kl: reduce WARN to dev_dbg() in callback
wifi: ath9k: hif_usb: fix memory leak of remain_skbs
wifi: ath6kl: minor fix for allocation size
writeback: fix call of incorrect macro
ASN.1: Fix check for strdup() success
mlxfw: fix null-ptr-deref in mlxfw_mfa2_tlv_next()
qlcnic: check pci_reset_function result
qed/qed_sriov: guard against NULL derefs from qed_iov_get_vf_info
mm: fix error handling for map_deny_write_exec
mm: deduplicate error handling for map_deny_write_exec
power: supply: axp288_fuel_gauge: Added check for negative values
qed/qed_mng_tlv: correctly zero out ->min instead of ->hour
qed/qed_dev: guard against a possible division by zero
nfc: pn533: initialize struct pn533_out_arg properly
x86/mm: Fix use of uninitialized buffer in sme_enable()
tracing: Fix wrong return in kprobe_event_gen_test.c
drm/cirrus: NULL-check pipe->plane.state->fb in cirrus_pipe_update()
ALSA: ice1712: Delete unreachable code in aureon_add_controls()
ALSA: ice1712: Do not left ice->gpio_mutex locked in aureon_add_controls()
nfc: fix memory leak of se_io context in nfc_genl_se_io
rbd: avoid use-after-free in do_rbd_add() when rbd_dev_create() fails
RDMA/cxgb4: Fix potential null-ptr-deref in pass_establish()
udf: Check consistency of Space Bitmap Descriptor
iommu/amd: Add a length limitation for the ivrs_acpihid command-line parameter
RDMA/cxgb4: add null-ptr-check after ip_dev_find()
netfilter: conntrack: remote a return value of the 'seq_print_acct' function.
dm ioctl: drop always-false condition
ALSA: hda/ca0132: minor fix for allocation size
ACPICA: nsrepair: handle cases without a return value correctly
wifi: ath9k: hif_usb: clean up skbs if ath9k_hif_usb_rx_stream() fails
wifi: ath9k: htc_hst: free skb in ath9k_htc_rx_msg() if there is no callback function
drm/amd/display: drop unnecessary NULL checks in debugfs
wifi: orinoco: check return value of hermes_write_wordrec()
clk: renesas: cpg-mssr: Fix use after free if cpg_mssr_common_init() failed
f2fs: file: drop useless initializer in expand_inode_data()
PCI/IOV: Enlarge virtfn sysfs name buffer
RDMA/cxgb4: remove unnecessary NULL check in `__c4iw_poll_cq_one()
efi/libstub: Add memory attribute protocol definitions
staging: rts5208: Added value check
genirq/ipi: Fix NULL pointer deref in irq_data_get_affinity_mask()
i40e: Add checking for null for nlmsg_find_attr()
ALSA: emux: Avoid potential array out-of-bound in snd_emux_xg_control()
RDMA/irdma: Fix potential NULL-ptr-dereference
xfrm: compat: change expression for switch in xfrm_xlate64
pinctrl: single: fix potential NULL dereference
efi: fix potential NULL deref in efi_mem_reserve_persistent
net: openvswitch: fix flow memory leak in ovs_flow_cmd_new
net: qrtr: free memory on error path in radix_tree_insert()
ALSA: hda/via: Avoid potential array out-of-bound in add_secret_dac_path()
squashfs: harden sanity check in squashfs_read_xattr_id_table
scsi: hpsa: Fix allocation size for scsi_host_alloc()
trace_events_hist: add check for return value of 'create_hist_field'
net: wan: Add checks for NULL for utdm in undo_uhdlc_init and unmap_si_regs
netfilter: ipset: Fix overflow before widen in the bitmap_ip_create() function.
iavf/iavf_main: actually log ->src mask when talking about it
drivers/net/bonding/bond_3ad: return when there's no aggregator
net/ethtool/ioctl: split ethtool_get_phy_stats into multiple helpers
qlcnic: prevent ->dcb use-after-free on qlcnic_dcb_enable() failure
MIPS: BCM63xx: Add check for NULL for clk in clk_enable
net: devlink: Add missing error check to devlink_resource_put()
wifi: rtlwifi: btcoexist: fix conditions branches that are never executed
net: vmw_vsock: vmci: Check memcpy_from_msg()
wifi: rtlwifi: rtl8192se: remove redundant rtl_get_bbreg() call
relay: fix type mismatch when allocating memory in relay_create_buf()
ethtool: avoiding integer overflow in ethtool_phys_id()
btrfs: replace strncpy() with strscpy()
iommu/amd: Check return value of mmu_notifier_register()
sctp: remove unnecessary NULL checks in sctp_enqueue_event()
sctp: remove unnecessary NULL check in sctp_ulpq_tail_event()
sctp: remove unnecessary NULL check in sctp_association_init()
arm64: ptrace: user_regset_copyin_ignore() always returns 0
wifi: ath9k: verify the expected usb_endpoints are present
wifi: ath9k: hif_usb: Fix use-after-free in ath9k_hif_usb_reg_in_cb()
wifi: ath10k: Check return value of ath10k_get_arvif() in ath10k_wmi_event_tdls_peer()
crypto: nitrox - avoid double free on error path in nitrox_sriov_init()
ovl: Add comment on upperredirect reassignment
wifi: ath9k: hif_usb: fix memory leak of urbs in ath9k_hif_usb_dealloc_tx_urbs()
net: encx24j600: Fix invalid logic in reading of MISTAT register
net: encx24j600: Add parentheses to fix precedence
net: dsa: ksz: Check return value
HID: hid-lg4ff: Add check for empty lbuf
net: ethernet: nixge: fix NULL dereference
pinctrl: single: Fix potential division by zero
net/mlx4: Check retval of mlx4_bitmap_init
ring_buffer: Do not deactivate non-existant pages
cifs: add check for returning value of SMB2_set_info_init
cifs: add check for returning value of SMB2_close_init
drm/amd/pm: smu7_hwmgr: fix potential off-by-one overflow in 'performance_levels'
drm/amd/pm: vega10_hwmgr: fix potential off-by-one overflow in 'performance_levels'
arm64: topology: fix possible overflow in amu_fie_setup()
iommu/io-pgtable-arm: Remove iommu_dev==NULL special case
drm/via: Add new condition to via_dma_cleanup()
ALSA: asihpi - Remove useless code in hpi_meter_get_peak()
usb: gadget: function: rndis: limit # of RNDIS instances to 1000
tty: n_gsm: avoid call of sleeping functions from atomic context
tty: n_gsm: replace kicktimer with delayed_work
xen/privcmd: fix error exit of privcmd_ioctl_dm_op()
platform/chrome: fix double-free in chromeos_laptop_prepare()
net: dsa: sja1105: fix buffer overflow in sja1105_setup_devlink_regions()
drm/amdgpu: remove useless condition in amdgpu_job_stop_all_jobs_on_sched()
of: fdt: fix off-by-one error in unflatten_dt_nodes()
can: j1939: j1939_session_destroy(): fix memory leak of skbs
can: j1939: j1939_sk_queue_activate_next_locked(): replace WARN_ON_ONCE with netdev_warn_once()
platform/x86: sony-laptop: Remove useless comparisons in sony_pic_read_possible_resource()
ACPI/PCI: Remove useless NULL pointer checks
usb: cdns3: change place of 'priv_ep' assignment in cdns3_gadget_ep_dequeue(), cdns3_gadget_ep_enable()
video: fbdev: sis: fix typos in SiS_GetModeID()
wifi: p54: add missing parentheses in p54_flush()
RDMA: remove useless condition in siw_create_cq()
net/mlx5e: Removed useless code in function
xfs: removed useless condition in function xfs_attr_node_get
usb: host: xhci: use snprintf() in xhci_decode_trb()
ata: libata-scsi: fix result type of ata_ioc32()
NFSD: restore EINVAL error translation in nfsd_commit()
efi/x86: libstub: Fix typo in _ _ efi64_argmap* name
usb: musb: core: drop redundant checks
wifi: iwlegacy: 4965: fix potential off-by-one overflow in il4965_rs_fill_link_cmd()
ata: libata-core: fix sloppy parameter type in ata_exec_internal[_sg]()
ata: libata-eh: fix sloppy result type of ata_eh_nr_in_flight()
crypto: sun8i-ss - fix infinite loop in sun8i_ss_setup_ivs()
dmaengine: stm32-mdma: Remove dead code in stm32_mdma_irq_handler()
ALSA: usb-audio: US16x08: Move overflow check before array access
ata: libata-core: fix sloppy typing in ata_id_n_sectors()
drm/radeon: fix potential buffer overflow in ni_set_mc_special_registers()
ata: libata-core: fix NULL pointer deref in ata_host_alloc_pinfo()
ASoC: max98090: Move check for invalid values before casting in max98090_put_enab_tlv()
mmc: core: block: fix sloppy typing in mmc_blk_ioctl_multi_cmd()
ata: pata_via: fix sloppy typing in via_do_set_mode()
ata: pata_sil680: fix result type of sil680_sel{dev|reg}()
ata: libata-core: fix parameter type in ata_xfer_mode2shift()
mmc: core: use sysfs_emit() instead of sprintf()
usb: host: ehci-q: make qtd_fill() returnunsigned int
ata: libata: make ata_host_suspend()void
usb: host: xhci: drop redundant checks
ata: libata: ata_{sff|std}_prereset() always return 0
ata: libata-acpi: kill ata_acpi_on_suspend()
sh_eth: sh_eth_close() always returns 0
ravb: ravb_close() always returns 0
phy: make phy_set_max_speed()void
NFS: remove unneeded check in decode_devicenotify_args()
fs: fd tables have to be multiples of BITS_PER_LONG
mISDN: Fix memory leak in dsp_pipeline_build()
net: dsa: lantiq_gswip: fix use after free in gswip_remove()
sctp: remove unreachable code from sctp_sf_violation_chunk()
dsa: mv88e6xxx: fix debug print for SPEED_UNFORCED
media: allegro: ignore interrupt if mailbox is not initialized