[PATCH -next] vdpa: Remove unused declarations
There is no caller and implementation in tree. Signed-off-by: Yue Haibing --- drivers/vdpa/ifcvf/ifcvf_base.h | 3 --- drivers/vdpa/pds/cmds.h | 1 - 2 files changed, 4 deletions(-) diff --git a/drivers/vdpa/ifcvf/ifcvf_base.h b/drivers/vdpa/ifcvf/ifcvf_base.h index 0f347717021a..aa36de361c10 100644 --- a/drivers/vdpa/ifcvf/ifcvf_base.h +++ b/drivers/vdpa/ifcvf/ifcvf_base.h @@ -112,15 +112,12 @@ void ifcvf_write_dev_config(struct ifcvf_hw *hw, u64 offset, const void *src, int length); u8 ifcvf_get_status(struct ifcvf_hw *hw); void ifcvf_set_status(struct ifcvf_hw *hw, u8 status); -void io_write64_twopart(u64 val, u32 *lo, u32 *hi); void ifcvf_reset(struct ifcvf_hw *hw); u64 ifcvf_get_dev_features(struct ifcvf_hw *hw); u64 ifcvf_get_hw_features(struct ifcvf_hw *hw); int ifcvf_verify_min_features(struct ifcvf_hw *hw, u64 features); u16 ifcvf_get_vq_state(struct ifcvf_hw *hw, u16 qid); int ifcvf_set_vq_state(struct ifcvf_hw *hw, u16 qid, u16 num); -struct ifcvf_adapter *vf_to_adapter(struct ifcvf_hw *hw); -int ifcvf_probed_virtio_net(struct ifcvf_hw *hw); u32 ifcvf_get_config_size(struct ifcvf_hw *hw); u16 ifcvf_set_vq_vector(struct ifcvf_hw *hw, u16 qid, int vector); u16 ifcvf_set_config_vector(struct ifcvf_hw *hw, int vector); diff --git a/drivers/vdpa/pds/cmds.h b/drivers/vdpa/pds/cmds.h index e24d85cb8f1c..6b1bc33356b0 100644 --- a/drivers/vdpa/pds/cmds.h +++ b/drivers/vdpa/pds/cmds.h @@ -14,5 +14,4 @@ int pds_vdpa_cmd_init_vq(struct pds_vdpa_device *pdsv, u16 qid, u16 invert_idx, struct pds_vdpa_vq_info *vq_info); int pds_vdpa_cmd_reset_vq(struct pds_vdpa_device *pdsv, u16 qid, u16 invert_idx, struct pds_vdpa_vq_info *vq_info); -int pds_vdpa_cmd_set_features(struct pds_vdpa_device *pdsv, u64 features); #endif /* _VDPA_CMDS_H_ */ -- 2.34.1
[PATCH -next] counter: 104-quad-8: Make quad8_ops static
From: YueHaibing Fix sparse warning: drivers/counter/104-quad-8.c:836:26: warning: symbol 'quad8_ops' was not declared. Should it be static? Signed-off-by: YueHaibing --- drivers/counter/104-quad-8.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/counter/104-quad-8.c b/drivers/counter/104-quad-8.c index 4fa2931..00b113f 100644 --- a/drivers/counter/104-quad-8.c +++ b/drivers/counter/104-quad-8.c @@ -833,7 +833,7 @@ static int quad8_action_get(struct counter_device *counter, return 0; } -const struct counter_ops quad8_ops = { +static const struct counter_ops quad8_ops = { .signal_read = quad8_signal_read, .count_read = quad8_count_read, .count_write = quad8_count_write, -- 2.7.4
[PATCH -next] lib/vsprintf: Make function pointer_string static
From: YueHaibing Fix sparse warning: lib/vsprintf.c:673:6: warning: symbol 'pointer_string' was not declared. Should it be static? Signed-off-by: YueHaibing --- lib/vsprintf.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/lib/vsprintf.c b/lib/vsprintf.c index 1f367f3..7b0a614 100644 --- a/lib/vsprintf.c +++ b/lib/vsprintf.c @@ -670,8 +670,9 @@ char *string(char *buf, char *end, const char *s, return string_nocheck(buf, end, s, spec); } -char *pointer_string(char *buf, char *end, const void *ptr, -struct printf_spec spec) +static char *pointer_string(char *buf, char *end, + const void *ptr, + struct printf_spec spec) { spec.base = 16; spec.flags |= SMALL; -- 2.7.4
[PATCH -next] crypto: ccree - Make cc_sec_disable static
From: YueHaibing Fix sparse warning: drivers/crypto/ccree/cc_driver.c:37:6: warning: symbol 'cc_sec_disable' was not declared. Should it be static? Signed-off-by: YueHaibing --- drivers/crypto/ccree/cc_driver.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/crypto/ccree/cc_driver.c b/drivers/crypto/ccree/cc_driver.c index 902f196..4ea8e19 100644 --- a/drivers/crypto/ccree/cc_driver.c +++ b/drivers/crypto/ccree/cc_driver.c @@ -34,7 +34,7 @@ bool cc_dump_bytes; module_param_named(dump_bytes, cc_dump_bytes, bool, 0600); MODULE_PARM_DESC(cc_dump_bytes, "Dump buffers to kernel log as debugging aid"); -bool cc_sec_disable; +static bool cc_sec_disable; module_param_named(sec_disable, cc_sec_disable, bool, 0600); MODULE_PARM_DESC(cc_sec_disable, "Disable security functions"); -- 2.7.4
[PATCH -next] iio: dac: ad5758: remove set but not used variable 'dc_dc_mode'
From: YueHaibing Fixes gcc '-Wunused-but-set-variable' warning: drivers/iio/dac/ad5758.c: In function ad5758_write_powerdown: drivers/iio/dac/ad5758.c:585:15: warning: variable dc_dc_mode set but not used [-Wunused-but-set-variable] It is not used any more since commit edde945257e2 ("iio: dac: ad5758: Modifications for new revision") Signed-off-by: YueHaibing --- drivers/iio/dac/ad5758.c | 9 +++-- 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/drivers/iio/dac/ad5758.c b/drivers/iio/dac/ad5758.c index a513c70..570f69e 100644 --- a/drivers/iio/dac/ad5758.c +++ b/drivers/iio/dac/ad5758.c @@ -582,7 +582,7 @@ static ssize_t ad5758_write_powerdown(struct iio_dev *indio_dev, { struct ad5758_state *st = iio_priv(indio_dev); bool pwr_down; - unsigned int dc_dc_mode, dac_config_mode, val; + unsigned int dac_config_mode, val; unsigned long int dac_config_msk; int ret; @@ -591,13 +591,10 @@ static ssize_t ad5758_write_powerdown(struct iio_dev *indio_dev, return ret; mutex_lock(&st->lock); - if (pwr_down) { - dc_dc_mode = AD5758_DCDC_MODE_POWER_OFF; + if (pwr_down) val = 0; - } else { - dc_dc_mode = st->dc_dc_mode; + else val = 1; - } dac_config_mode = AD5758_DAC_CONFIG_OUT_EN_MODE(val) | AD5758_DAC_CONFIG_INT_EN_MODE(val); -- 2.7.4
[PATCH] HID: logitech-dj: Fix build error without CONFIG_USB_HID
From: YueHaibing During randconfig builds, I occasionally run into an invalid configuration drivers/hid/hid-logitech-dj.o: In function `logi_dj_probe': hid-logitech-dj.c:(.text+0x32dc): undefined reference to `usb_hid_driver' This is because CONFIG_USB_HID is not set, So this patch selects it. Reported-by: Hulk Robot Fixes: da12b224b7d5 ("HID: logitech-dj: deal with some KVMs adding an extra interface to the usbdev") Signed-off-by: YueHaibing --- drivers/hid/Kconfig | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/hid/Kconfig b/drivers/hid/Kconfig index 76d8206..c3c390c 100644 --- a/drivers/hid/Kconfig +++ b/drivers/hid/Kconfig @@ -521,6 +521,7 @@ config HID_LOGITECH config HID_LOGITECH_DJ tristate "Logitech Unifying receivers full support" + depends on USB_HID depends on HIDRAW depends on HID_LOGITECH select HID_LOGITECH_HIDPP -- 2.7.4
[PATCH v2] soc: imx: Fix build error without CONFIG_SOC_BUS
From: YueHaibing During randconfig builds, I occasionally run into an invalid configuration drivers/soc/imx/soc-imx8.o: In function `imx8_soc_init': soc-imx8.c:(.init.text+0x144): undefined reference to `soc_device_register' while CONFIG_SOC_BUS is not set, the building failed like this. This patch selects SOC_BUS to fix it. Reported-by: Hulk Robot Fixes: a7e26f356ca1 ("soc: imx: Add generic i.MX8 SoC driver") Suggested-by: Leonard Crestez Signed-off-by: YueHaibing --- v2: select SOC_BUS from CONFIG_ARCH_MXC directly --- arch/arm64/Kconfig.platforms | 1 + 1 file changed, 1 insertion(+) diff --git a/arch/arm64/Kconfig.platforms b/arch/arm64/Kconfig.platforms index b5ca9c5..ae7f008 100644 --- a/arch/arm64/Kconfig.platforms +++ b/arch/arm64/Kconfig.platforms @@ -157,6 +157,7 @@ config ARCH_MXC select IMX_GPCV2_PM_DOMAINS select PM select PM_GENERIC_DOMAINS + select SOC_BUS help This enables support for the ARMv8 based SoCs in the NXP i.MX family. -- 2.7.4
[PATCH -next] cgroup: remove set but not used variable 'cgrp'
From: YueHaibing Fixes gcc '-Wunused-but-set-variable' warning: kernel/cgroup/cgroup.c: In function 'cgroup_post_fork': kernel/cgroup/cgroup.c:5946:19: warning: variable 'cgrp' set but not used [-Wunused-but-set-variable] It is never used since introduction in commit 76f969e8948d ("cgroup: cgroup v2 freezer") Signed-off-by: YueHaibing --- kernel/cgroup/cgroup.c | 3 --- 1 file changed, 3 deletions(-) diff --git a/kernel/cgroup/cgroup.c b/kernel/cgroup/cgroup.c index 6f09f9b..c9f208d 100644 --- a/kernel/cgroup/cgroup.c +++ b/kernel/cgroup/cgroup.c @@ -5943,11 +5943,8 @@ void cgroup_post_fork(struct task_struct *child) * the task into the frozen state. */ if (unlikely(cgroup_task_freeze(child))) { - struct cgroup *cgrp; - spin_lock(&child->sighand->siglock); WARN_ON_ONCE(child->frozen); - cgrp = cset->dfl_cgrp; child->jobctl |= JOBCTL_TRAP_FREEZE; spin_unlock(&child->sighand->siglock); -- 2.7.4
[PATCH] soc: imx: Fix build error without CONFIG_SOC_BUS
From: YueHaibing During randconfig builds, I occasionally run into an invalid configuration drivers/soc/imx/soc-imx8.o: In function `imx8_soc_init': soc-imx8.c:(.init.text+0x144): undefined reference to `soc_device_register' while CONFIG_SOC_BUS is not set, the building failed like this. This patch selects SOC_BUS to fix it. Reported-by: Hulk Robot Fixes: a7e26f356ca1 ("soc: imx: Add generic i.MX8 SoC driver") Signed-off-by: YueHaibing --- drivers/soc/imx/Kconfig | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/soc/imx/Kconfig b/drivers/soc/imx/Kconfig index d80f899..2fb4e47 100644 --- a/drivers/soc/imx/Kconfig +++ b/drivers/soc/imx/Kconfig @@ -5,6 +5,7 @@ config IMX_GPCV2_PM_DOMAINS depends on ARCH_MXC || (COMPILE_TEST && OF) depends on PM select PM_GENERIC_DOMAINS + select SOC_BUS default y if SOC_IMX7D endmenu -- 2.7.4
[PATCH] Input: walkera0701 - Fix possible NULL pointer dereference in walkera0701_detach
From: YueHaibing KASAN report this: walkera0701: failed to allocate input device kasan: CONFIG_KASAN_INLINE enabled kasan: GPF could be caused by NULL-ptr deref or user memory access general protection fault: [#1] SMP KASAN PTI CPU: 1 PID: 5324 Comm: syz-executor.0 Tainted: G C5.1.0-rc3+ #8 Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.10.2-1ubuntu1 04/01/2014 RIP: 0010:input_unregister_device+0x21/0xe0 drivers/input/input.c:2192 Code: 2e 0f 1f 84 00 00 00 00 00 53 48 89 fb e8 07 41 f6 fe 48 8d bb 20 07 00 00 48 b8 00 00 00 00 00 fc ff df 48 89 fa 48 c1 ea 03 <0f> b6 04 02 84 c0 74 08 84 c0 0f 8e 92 00 00 00 80 bb 20 07 00 00 RSP: 0018:8881f58dfd30 EFLAGS: 00010206 RAX: dc00 RBX: RCX: 82460ca9 RDX: 00e4 RSI: c900013d3000 RDI: 0720 RBP: R08: ed103d30caf7 R09: R10: R11: R12: dc00 R13: c1633000 R14: c086b320 R15: 11103eb1bfaf FS: 7fa407200700() GS:8881f730() knlGS: CS: 0010 DS: ES: CR0: 80050033 CR2: 001b33924000 CR3: 0001e270c006 CR4: 007606e0 DR0: DR1: DR2: DR3: DR6: fffe0ff0 DR7: 0400 PKRU: 5554 Call Trace: walkera0701_detach+0x8e/0xba [walkera0701] port_detach+0x73/0x90 [parport] bus_for_each_dev+0x154/0x1e0 drivers/base/bus.c:304 parport_unregister_driver+0x1f8/0x270 [parport] __do_sys_delete_module kernel/module.c:1018 [inline] __se_sys_delete_module kernel/module.c:961 [inline] __x64_sys_delete_module+0x30c/0x480 kernel/module.c:961 do_syscall_64+0x9f/0x450 arch/x86/entry/common.c:290 entry_SYSCALL_64_after_hwframe+0x49/0xbe RIP: 0033:0x462e99 Code: f7 d8 64 89 02 b8 ff ff ff ff c3 66 0f 1f 44 00 00 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 c7 c1 bc ff ff ff f7 d8 64 89 01 48 RSP: 002b:7fa4071ffc58 EFLAGS: 0246 ORIG_RAX: 00b0 RAX: ffda RBX: 0073bf00 RCX: 00462e99 RDX: RSI: RDI: 21c0 RBP: 0002 R08: R09: R10: R11: 0246 R12: 7fa4072006bc R13: 004bcca9 R14: 006f6b48 R15: Modules linked in: walkera0701(-) tps65090_regulator intel_th mptbase adm1031 snd_soc_wm8753 snd_soc_core snd_pcm_dmaengine snd_pcm ac97_bus snd_compress rtc_ds1286 snd_seq_dummy snd_seq snd_timer snd_seq_device snd soundcore comedi(C) i2c_mux_ltc4306 i2c_mux max14577_regulator max14577 usbcore hid cmac mc13783_regulator mc13xxx_regulator_core mc13xxx_core of_mdio fixed_phy libphy iptable_security iptable_raw iptable_mangle iptable_nat nf_nat nf_conntrack nf_defrag_ipv6 nf_defrag_ipv4 iptable_filter bpfilter ip6_vti ip_vti ip_gre ipip sit tunnel4 ip_tunnel hsr veth netdevsim vxcan batman_adv cfg80211 rfkill chnl_net caif nlmon dummy team bonding vcan bridge stp llc ip6_gre gre ip6_tunnel tunnel6 tun joydev mousedev ppdev tpm kvm_intel kvm irqbypass crct10dif_pclmul crc32_pclmul crc32c_intel ghash_clmulni_intel ide_pci_generic aesni_intel aes_x86_64 piix crypto_simd cryptd input_leds ide_core psmouse glue_helper intel_agp serio_raw intel_gtt ata_generic agpgart i2c_piix4 pata_acpi parport_pc parport floppy rtc_cmos sch_fq_codel ip_tables x_tables sha1_ssse3 sha1_generic ipv6 [last unloaded: walkera0701] Dumping ftrace buffer: (ftrace buffer empty) ---[ end trace 17f6dd401f34af3e ]--- In walkera0701_attach(), if input_allocate_device failed, w->input_dev is set to NULL. But in walkera0701_detach it is not checked while passing to input_unregister_device(), this will trigger a NULL pointer dereference issue. There is also another possible use-after-free issue, when input_register_device() fails, input_free_device be called to free input dev, then in walkera0701_detach() calling input_unregister_device will trigger use-after-free while accessing input dev This patch set w->parport to NULL on walkera0701_attach failed, and only do detach in case attach success. Reported-by: Hulk Robot Fixes: 221bcb24c653 ("Input: walkera0701 - use parallel port device model") Signed-off-by: YueHaibing --- drivers/input/joystick/walkera0701.c | 10 ++ 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/drivers/input/joystick/walkera0701.c b/drivers/input/joystick/walkera0701.c index dce313d..852b8c5 100644 --- a/drivers/input/joystick/walkera0701.c +++ b/drivers/input/joystick/walkera0701.c @@ -207,13 +207,13 @@ static void walkera0701_attach(struct parport *pp) if (pp->number != walkera0701_pp_no) { pr_debug("Not using parport%d.\n", pp->number); - return; + goto err_out; } if (pp->irq == -1) {
[PATCH -next] agp/uninorth: remove set but not used variable 'size'
From: YueHaibing Fixes gcc '-Wunused-but-set-variable' warning: drivers/char/agp/uninorth-agp.c: In function 'uninorth_create_gatt_tablei': drivers/char/agp/uninorth-agp.c:371:6: warning: variable 'size' set but not used [-Wunused-but-set-variable] drivers/char/agp/frontend.c: In function 'agp_find_seg_in_client': drivers/char/agp/frontend.c:105:6: warning: variable 'num_segments' set but not used [-Wunused-but-set-variable] It's never used since introduction. Signed-off-by: YueHaibing --- drivers/char/agp/frontend.c | 3 +-- drivers/char/agp/uninorth-agp.c | 4 +--- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/drivers/char/agp/frontend.c b/drivers/char/agp/frontend.c index f695588..4709864 100644 --- a/drivers/char/agp/frontend.c +++ b/drivers/char/agp/frontend.c @@ -102,14 +102,13 @@ agp_segment_priv *agp_find_seg_in_client(const struct agp_client *client, int size, pgprot_t page_prot) { struct agp_segment_priv *seg; - int num_segments, i; + int i; off_t pg_start; size_t pg_count; pg_start = offset / 4096; pg_count = size / 4096; seg = *(client->segments); - num_segments = client->num_segments; for (i = 0; i < client->num_segments; i++) { if ((seg[i].pg_start == pg_start) && diff --git a/drivers/char/agp/uninorth-agp.c b/drivers/char/agp/uninorth-agp.c index 31fcd043..91ead0ea 100644 --- a/drivers/char/agp/uninorth-agp.c +++ b/drivers/char/agp/uninorth-agp.c @@ -368,7 +368,6 @@ static int uninorth_create_gatt_table(struct agp_bridge_data *bridge) { char *table; char *table_end; - int size; int page_order; int num_entries; int i; @@ -382,10 +381,9 @@ static int uninorth_create_gatt_table(struct agp_bridge_data *bridge) table = NULL; i = bridge->aperture_size_idx; temp = bridge->current_size; - size = page_order = num_entries = 0; + page_order = num_entries = 0; do { - size = A_SIZE_32(temp)->size; page_order = A_SIZE_32(temp)->page_order; num_entries = A_SIZE_32(temp)->num_entries; -- 2.7.0
[PATCH] PCI: keystone: Fix build error while only CONFIG_PCI_KEYSTONE is set
From: YueHaibing During randconfig builds, I occasionally run into an invalid configuration drivers/pci/controller/dwc/pci-keystone.o: In function `ks_pcie_link_up': pci-keystone.c:(.text+0x90): undefined reference to `__dw_pcie_read_dbi' pci-keystone.c:(.text+0x90): relocation truncated to fit: R_AARCH64_CALL26 against undefined symbol `__dw_pcie_read_dbi' drivers/pci/controller/dwc/pci-keystone.o: In function `ks_pcie_v3_65_scan_bus': pci-keystone.c:(.text+0x4f0): undefined reference to `__dw_pcie_write_dbi' pci-keystone.c:(.text+0x4f0): relocation truncated to fit: R_AARCH64_CALL26 against undefined symbol `__dw_pcie_write_dbi' while CONFIG_PCI_KEYSTONE is selected but CONFIG_PCIE_DW is not set, the building failed like this. This patch selects PCIE_DW to fix it. Reported-by: Hulk Robot Fixes: 5709114f0a97 ("PCI: keystone: Add support for PCIe EP in AM654x Platforms") Signed-off-by: YueHaibing --- drivers/pci/controller/dwc/Kconfig | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/pci/controller/dwc/Kconfig b/drivers/pci/controller/dwc/Kconfig index b450ad2..641fa0f 100644 --- a/drivers/pci/controller/dwc/Kconfig +++ b/drivers/pci/controller/dwc/Kconfig @@ -105,6 +105,7 @@ config PCIE_SPEAR13XX config PCI_KEYSTONE bool "TI Keystone PCIe controller" depends on ARCH_KEYSTONE || ARCH_K3 || ((ARM || ARM64) && COMPILE_TEST) + select PCIE_DW help Say Y here if you want to enable PCI controller support on Keystone SoCs. The PCI controller on Keystone is based on DesignWare hardware -- 2.7.4
[PATCH v3 -next] sched/core: Make some functions static
From: YueHaibing Fix these sparse warnings: kernel/sched/core.c:6577:11: warning: symbol 'min_cfs_quota_period' was not declared. Should it be static? kernel/sched/core.c:6657:5: warning: symbol 'tg_set_cfs_quota' was not declared. Should it be static? kernel/sched/core.c:6670:6: warning: symbol 'tg_get_cfs_quota' was not declared. Should it be static? kernel/sched/core.c:6683:5: warning: symbol 'tg_set_cfs_period' was not declared. Should it be static? kernel/sched/core.c:6693:6: warning: symbol 'tg_get_cfs_period' was not declared. Should it be static? kernel/sched/fair.c:2596:6: warning: symbol 'task_tick_numa' was not declared. Should it be static? Signed-off-by: YueHaibing Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/20190322143153.14416-1-yuehaib...@huawei.com --- v2: do not make max_cfs_quota_period static, which has be used in kernel/sched/fair.c v3: fix commit log --- kernel/sched/core.c | 10 +- kernel/sched/fair.c | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/kernel/sched/core.c b/kernel/sched/core.c index f9e9117..226d68c 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c @@ -6521,7 +6521,7 @@ static u64 cpu_shares_read_u64(struct cgroup_subsys_state *css, static DEFINE_MUTEX(cfs_constraints_mutex); const u64 max_cfs_quota_period = 1 * NSEC_PER_SEC; /* 1s */ -const u64 min_cfs_quota_period = 1 * NSEC_PER_MSEC; /* 1ms */ +static const u64 min_cfs_quota_period = 1 * NSEC_PER_MSEC; /* 1ms */ static int __cfs_schedulable(struct task_group *tg, u64 period, u64 runtime); @@ -6601,7 +6601,7 @@ static int tg_set_cfs_bandwidth(struct task_group *tg, u64 period, u64 quota) return ret; } -int tg_set_cfs_quota(struct task_group *tg, long cfs_quota_us) +static int tg_set_cfs_quota(struct task_group *tg, long cfs_quota_us) { u64 quota, period; @@ -6614,7 +6614,7 @@ int tg_set_cfs_quota(struct task_group *tg, long cfs_quota_us) return tg_set_cfs_bandwidth(tg, period, quota); } -long tg_get_cfs_quota(struct task_group *tg) +static long tg_get_cfs_quota(struct task_group *tg) { u64 quota_us; @@ -6627,7 +6627,7 @@ long tg_get_cfs_quota(struct task_group *tg) return quota_us; } -int tg_set_cfs_period(struct task_group *tg, long cfs_period_us) +static int tg_set_cfs_period(struct task_group *tg, long cfs_period_us) { u64 quota, period; @@ -6637,7 +6637,7 @@ int tg_set_cfs_period(struct task_group *tg, long cfs_period_us) return tg_set_cfs_bandwidth(tg, period, quota); } -long tg_get_cfs_period(struct task_group *tg) +static long tg_get_cfs_period(struct task_group *tg) { u64 cfs_period_us; diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c index 99731a5..4275eb0 100644 --- a/kernel/sched/fair.c +++ b/kernel/sched/fair.c @@ -2593,7 +2593,7 @@ void task_numa_work(struct callback_head *work) /* * Drive the periodic memory faults.. */ -void task_tick_numa(struct rq *rq, struct task_struct *curr) +static void task_tick_numa(struct rq *rq, struct task_struct *curr) { struct callback_head *work = &curr->numa_work; u64 period, now; -- 2.7.4
[PATCH -next] phy: ti: am654-serdes: Make serdes_am654_xlate() static
From: YueHaibing Fix sparse warning: drivers/phy/ti/phy-am654-serdes.c:250:12: warning: symbol 'serdes_am654_xlate' was not declared. Should it be static? Reported-by: Hulk Robot Signed-off-by: YueHaibing --- drivers/phy/ti/phy-am654-serdes.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/phy/ti/phy-am654-serdes.c b/drivers/phy/ti/phy-am654-serdes.c index d376920..f8edd08 100644 --- a/drivers/phy/ti/phy-am654-serdes.c +++ b/drivers/phy/ti/phy-am654-serdes.c @@ -247,8 +247,8 @@ static void serdes_am654_release(struct phy *x) mux_control_deselect(phy->control); } -struct phy *serdes_am654_xlate(struct device *dev, struct of_phandle_args -*args) +static struct phy *serdes_am654_xlate(struct device *dev, + struct of_phandle_args *args) { struct serdes_am654 *am654_phy; struct phy *phy; -- 2.7.4
[PATCH v2 -next] sched/core: Make some functions static
From: YueHaibing Fix sparse warnings: kernel/sched/core.c:6524:11: warning: symbol 'min_cfs_quota_period' was not declared. Should it be static? kernel/sched/core.c:6604:5: warning: symbol 'tg_set_cfs_quota' was not declared. Should it be static? kernel/sched/core.c:6617:6: warning: symbol 'tg_get_cfs_quota' was not declared. Should it be static? kernel/sched/core.c:6630:5: warning: symbol 'tg_set_cfs_period' was not declared. Should it be static? kernel/sched/core.c:6640:6: warning: symbol 'tg_get_cfs_period' was not declared. Should it be static? Signed-off-by: YueHaibing --- v2: do not make max_cfs_quota_period static, which has be used in kernel/sched/fair.c --- kernel/sched/core.c | 10 +- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/kernel/sched/core.c b/kernel/sched/core.c index f9e9117..226d68c 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c @@ -6521,7 +6521,7 @@ static u64 cpu_shares_read_u64(struct cgroup_subsys_state *css, static DEFINE_MUTEX(cfs_constraints_mutex); const u64 max_cfs_quota_period = 1 * NSEC_PER_SEC; /* 1s */ -const u64 min_cfs_quota_period = 1 * NSEC_PER_MSEC; /* 1ms */ +static const u64 min_cfs_quota_period = 1 * NSEC_PER_MSEC; /* 1ms */ static int __cfs_schedulable(struct task_group *tg, u64 period, u64 runtime); @@ -6601,7 +6601,7 @@ static int tg_set_cfs_bandwidth(struct task_group *tg, u64 period, u64 quota) return ret; } -int tg_set_cfs_quota(struct task_group *tg, long cfs_quota_us) +static int tg_set_cfs_quota(struct task_group *tg, long cfs_quota_us) { u64 quota, period; @@ -6614,7 +6614,7 @@ int tg_set_cfs_quota(struct task_group *tg, long cfs_quota_us) return tg_set_cfs_bandwidth(tg, period, quota); } -long tg_get_cfs_quota(struct task_group *tg) +static long tg_get_cfs_quota(struct task_group *tg) { u64 quota_us; @@ -6627,7 +6627,7 @@ long tg_get_cfs_quota(struct task_group *tg) return quota_us; } -int tg_set_cfs_period(struct task_group *tg, long cfs_period_us) +static int tg_set_cfs_period(struct task_group *tg, long cfs_period_us) { u64 quota, period; @@ -6637,7 +6637,7 @@ int tg_set_cfs_period(struct task_group *tg, long cfs_period_us) return tg_set_cfs_bandwidth(tg, period, quota); } -long tg_get_cfs_period(struct task_group *tg) +static long tg_get_cfs_period(struct task_group *tg) { u64 cfs_period_us; -- 2.7.4
[PATCH v2 -next] ASoC: Intel: Haswell: Remove set but not used variable 'stage_type'
From: YueHaibing Fixes gcc '-Wunused-but-set-variable' warning: sound/soc/intel/haswell/sst-haswell-ipc.c: In function 'hsw_stream_message': sound/soc/intel/haswell/sst-haswell-ipc.c:669:29: warning: variable 'stage_type' set but not used [-Wunused-but-set-variable] It is never used since introduction in commit ba57f68235cf ("ASoC: Intel: create haswell folder and move haswell platform files in") Signed-off-by: YueHaibing --- v2: also remove the variable declaration and the static inline mst_get_stage_type --- sound/soc/intel/haswell/sst-haswell-ipc.c | 8 +--- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/sound/soc/intel/haswell/sst-haswell-ipc.c b/sound/soc/intel/haswell/sst-haswell-ipc.c index 31fcdf12..74acf9c 100644 --- a/sound/soc/intel/haswell/sst-haswell-ipc.c +++ b/sound/soc/intel/haswell/sst-haswell-ipc.c @@ -345,11 +345,6 @@ static inline u32 msg_get_stream_type(u32 msg) return (msg & IPC_STR_TYPE_MASK) >> IPC_STR_TYPE_SHIFT; } -static inline u32 msg_get_stage_type(u32 msg) -{ - return (msg & IPC_STG_TYPE_MASK) >> IPC_STG_TYPE_SHIFT; -} - static inline u32 msg_get_stream_id(u32 msg) { return (msg & IPC_STR_ID_MASK) >> IPC_STR_ID_SHIFT; @@ -666,13 +661,12 @@ static int hsw_module_message(struct sst_hsw *hsw, u32 header) static int hsw_stream_message(struct sst_hsw *hsw, u32 header) { - u32 stream_msg, stream_id, stage_type; + u32 stream_msg, stream_id; struct sst_hsw_stream *stream; int handled = 0; stream_msg = msg_get_stream_type(header); stream_id = msg_get_stream_id(header); - stage_type = msg_get_stage_type(header); stream = get_stream_by_id(hsw, stream_id); if (stream == NULL) -- 2.7.4
[PATCH] ASoC: Mediatek: MT8183: Fix build err while CONFIG_I2C set to module
From: YueHaibing During randconfig builds, I occasionally run into an invalid configuration WARNING: unmet direct dependencies detected for SND_SOC_TS3A227E Depends on [m]: SOUND [=y] && !UML && SND [=y] && SND_SOC [=y] && I2C [=m] Selected by [y]: - SND_SOC_MT8183_MT6358_TS3A227E_MAX98357A [=y] && SOUND [=y] && !UML && SND [=y] && SND_SOC [=y] && SND_SOC_MT8183 [=y] sound/soc/codecs/ts3a227e.o: In function `ts3a227e_i2c_probe': ts3a227e.c:(.text+0x684): undefined reference to `__devm_regmap_init_i2c' sound/soc/codecs/ts3a227e.o: In function `ts3a227e_driver_init': ts3a227e.c:(.init.text+0x18): undefined reference to `i2c_register_driver' sound/soc/codecs/ts3a227e.o: In function `ts3a227e_driver_exit': ts3a227e.c:(.exit.text+0x14): undefined reference to `i2c_del_driver' This patch add I2C dependency to fix this. Reported-by: Hulk Robot Fixes: ebbddc75bbe8 ("ASoC: Mediatek: MT8183: Add machine driver with DA7219") Signed-off-by: YueHaibing --- sound/soc/mediatek/Kconfig | 1 + 1 file changed, 1 insertion(+) diff --git a/sound/soc/mediatek/Kconfig b/sound/soc/mediatek/Kconfig index 874404b..f70b710 100644 --- a/sound/soc/mediatek/Kconfig +++ b/sound/soc/mediatek/Kconfig @@ -118,6 +118,7 @@ config SND_SOC_MT8183 config SND_SOC_MT8183_MT6358_TS3A227E_MAX98357A tristate "ASoC Audio driver for MT8183 with MT6358 TS3A227E MAX98357A codec" + depends on I2C depends on SND_SOC_MT8183 select SND_SOC_MT6358 select SND_SOC_MAX98357A -- 2.7.4
[PATCH -next] ASoC: Intel: Haswell: Remove set but not used variable 'stage_type'
From: YueHaibing Fixes gcc '-Wunused-but-set-variable' warning: sound/soc/intel/haswell/sst-haswell-ipc.c: In function 'hsw_stream_message': sound/soc/intel/haswell/sst-haswell-ipc.c:669:29: warning: variable 'stage_type' set but not used [-Wunused-but-set-variable] It is never used since introduction in commit ba57f68235cf ("ASoC: Intel: create haswell folder and move haswell platform files in") Signed-off-by: YueHaibing --- sound/soc/intel/haswell/sst-haswell-ipc.c | 1 - 1 file changed, 1 deletion(-) diff --git a/sound/soc/intel/haswell/sst-haswell-ipc.c b/sound/soc/intel/haswell/sst-haswell-ipc.c index 31fcdf12..4d3de99 100644 --- a/sound/soc/intel/haswell/sst-haswell-ipc.c +++ b/sound/soc/intel/haswell/sst-haswell-ipc.c @@ -672,7 +672,6 @@ static int hsw_stream_message(struct sst_hsw *hsw, u32 header) stream_msg = msg_get_stream_type(header); stream_id = msg_get_stream_id(header); - stage_type = msg_get_stage_type(header); stream = get_stream_by_id(hsw, stream_id); if (stream == NULL) -- 2.7.4
[PATCH -next] ASoC: tlv320aic32x4: Remove set but not used variable 'mclk_rate'
From: YueHaibing Fixes gcc '-Wunused-but-set-variable' warning: sound/soc/codecs/tlv320aic32x4.c: In function 'aic32x4_setup_clocks': sound/soc/codecs/tlv320aic32x4.c:669:16: warning: variable 'mclk_rate' set but not used [-Wunused-but-set-variable] It is not used since introduction in commit 96c3bb00239d ("ASoC: tlv320aic32x4: Dynamically Determine Clocking") Signed-off-by: YueHaibing --- sound/soc/codecs/tlv320aic32x4.c | 6 +- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/sound/soc/codecs/tlv320aic32x4.c b/sound/soc/codecs/tlv320aic32x4.c index 6edee05..83608f3 100644 --- a/sound/soc/codecs/tlv320aic32x4.c +++ b/sound/soc/codecs/tlv320aic32x4.c @@ -684,9 +684,8 @@ static int aic32x4_setup_clocks(struct snd_soc_component *component, u8 madc, nadc, mdac, ndac, max_nadc, min_mdac, max_ndac; u8 dosr_increment; u16 max_dosr, min_dosr; - unsigned long mclk_rate, adc_clock_rate, dac_clock_rate; + unsigned long adc_clock_rate, dac_clock_rate; int ret; - struct clk *mclk; struct clk_bulk_data clocks[] = { { .id = "pll" }, @@ -700,9 +699,6 @@ static int aic32x4_setup_clocks(struct snd_soc_component *component, if (ret) return ret; - mclk = clk_get_parent(clocks[1].clk); - mclk_rate = clk_get_rate(mclk); - if (sample_rate <= 48000) { aosr = 128; adc_resource_class = 6; -- 2.7.4
[PATCH -next] staging: most: configfs: Make mdev_link_list static
From: YueHaibing Fix sparse warning: drivers/staging/most/configfs.c:34:18: warning: symbol 'mdev_link_list' was not declared. Should it be static? Reported-by: Hulk Robot Signed-off-by: YueHaibing --- drivers/staging/most/configfs.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/most/configfs.c b/drivers/staging/most/configfs.c index 934fb6d..1d8bf29 100644 --- a/drivers/staging/most/configfs.c +++ b/drivers/staging/most/configfs.c @@ -31,7 +31,7 @@ struct mdev_link { char comp_params[PAGE_SIZE]; }; -struct list_head mdev_link_list; +static struct list_head mdev_link_list; static int set_cfg_buffer_size(struct mdev_link *link) { -- 2.7.4
[PATCH -next] drm/panfrost: Make panfrost_gem_free_object() static
From: YueHaibing Fix sparse warning: drivers/gpu/drm/panfrost/panfrost_gem.c:17:6: warning: symbol 'panfrost_gem_free_object' was not declared. Should it be static? Reported-by: Hulk Robot Signed-off-by: YueHaibing --- drivers/gpu/drm/panfrost/panfrost_gem.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/gpu/drm/panfrost/panfrost_gem.c b/drivers/gpu/drm/panfrost/panfrost_gem.c index 8a03762..a5528a3 100644 --- a/drivers/gpu/drm/panfrost/panfrost_gem.c +++ b/drivers/gpu/drm/panfrost/panfrost_gem.c @@ -14,7 +14,7 @@ /* Called DRM core on the last userspace/kernel unreference of the * BO. */ -void panfrost_gem_free_object(struct drm_gem_object *obj) +static void panfrost_gem_free_object(struct drm_gem_object *obj) { struct panfrost_gem_object *bo = to_panfrost_bo(obj); struct panfrost_device *pfdev = obj->dev->dev_private; -- 2.7.4
[PATCH -next] gpio: pxa: Make two symbols static
From: YueHaibing Fix sparse warnings: drivers/gpio/gpio-pxa.c:580:29: warning: symbol 'pxa_irq_domain_ops' was not declared. Should it be static? drivers/gpio/gpio-pxa.c:819:20: warning: symbol 'pxa_gpio_syscore_ops' was not declared. Should it be static? Reported-by: Hulk Robot Signed-off-by: YueHaibing --- drivers/gpio/gpio-pxa.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/gpio/gpio-pxa.c b/drivers/gpio/gpio-pxa.c index dd47960..26f77fd 100644 --- a/drivers/gpio/gpio-pxa.c +++ b/drivers/gpio/gpio-pxa.c @@ -577,7 +577,7 @@ static int pxa_irq_domain_map(struct irq_domain *d, unsigned int irq, return 0; } -const struct irq_domain_ops pxa_irq_domain_ops = { +static const struct irq_domain_ops pxa_irq_domain_ops = { .map= pxa_irq_domain_map, .xlate = irq_domain_xlate_twocell, }; @@ -812,7 +812,7 @@ static void pxa_gpio_resume(void) #define pxa_gpio_resumeNULL #endif -struct syscore_ops pxa_gpio_syscore_ops = { +static struct syscore_ops pxa_gpio_syscore_ops = { .suspend= pxa_gpio_suspend, .resume = pxa_gpio_resume, }; -- 2.7.4
[PATCH -next] ASoC: amd: acp3x: Make acp3x_dai_i2s_ops static
From: YueHaibing Fix sparse warning: sound/soc/amd/raven/acp3x-pcm-dma.c:561:24: warning: symbol 'acp3x_dai_i2s_ops' was not declared. Should it be static? Reported-by: Hulk Robot Signed-off-by: YueHaibing --- sound/soc/amd/raven/acp3x-pcm-dma.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sound/soc/amd/raven/acp3x-pcm-dma.c b/sound/soc/amd/raven/acp3x-pcm-dma.c index 1a2e15f..9775bda 100644 --- a/sound/soc/amd/raven/acp3x-pcm-dma.c +++ b/sound/soc/amd/raven/acp3x-pcm-dma.c @@ -558,7 +558,7 @@ static int acp3x_dai_i2s_trigger(struct snd_pcm_substream *substream, return ret; } -struct snd_soc_dai_ops acp3x_dai_i2s_ops = { +static struct snd_soc_dai_ops acp3x_dai_i2s_ops = { .hw_params = acp3x_dai_i2s_hwparams, .trigger = acp3x_dai_i2s_trigger, .set_fmt = acp3x_dai_i2s_set_fmt, -- 2.7.4
[PATCH -next] ASoC: atmel: tse850: Make some functions static
From: YueHaibing Fix sparse warnings: sound/soc/atmel/tse850-pcm5142.c:120:5: warning: symbol 'tse850_get_mix' was not declared. Should it be static? sound/soc/atmel/tse850-pcm5142.c:132:5: warning: symbol 'tse850_put_mix' was not declared. Should it be static? sound/soc/atmel/tse850-pcm5142.c:154:5: warning: symbol 'tse850_get_ana' was not declared. Should it be static? sound/soc/atmel/tse850-pcm5142.c:187:5: warning: symbol 'tse850_put_ana' was not declared. Should it be static? Reported-by: Hulk Robot Signed-off-by: YueHaibing --- sound/soc/atmel/tse850-pcm5142.c | 16 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/sound/soc/atmel/tse850-pcm5142.c b/sound/soc/atmel/tse850-pcm5142.c index 214adca..ae44518 100644 --- a/sound/soc/atmel/tse850-pcm5142.c +++ b/sound/soc/atmel/tse850-pcm5142.c @@ -117,8 +117,8 @@ static int tse850_put_mux2(struct snd_kcontrol *kctrl, return snd_soc_dapm_put_enum_double(kctrl, ucontrol); } -int tse850_get_mix(struct snd_kcontrol *kctrl, - struct snd_ctl_elem_value *ucontrol) +static int tse850_get_mix(struct snd_kcontrol *kctrl, + struct snd_ctl_elem_value *ucontrol) { struct snd_soc_dapm_context *dapm = snd_soc_dapm_kcontrol_dapm(kctrl); struct snd_soc_card *card = dapm->card; @@ -129,8 +129,8 @@ int tse850_get_mix(struct snd_kcontrol *kctrl, return 0; } -int tse850_put_mix(struct snd_kcontrol *kctrl, - struct snd_ctl_elem_value *ucontrol) +static int tse850_put_mix(struct snd_kcontrol *kctrl, + struct snd_ctl_elem_value *ucontrol) { struct snd_soc_dapm_context *dapm = snd_soc_dapm_kcontrol_dapm(kctrl); struct snd_soc_card *card = dapm->card; @@ -151,8 +151,8 @@ int tse850_put_mix(struct snd_kcontrol *kctrl, return 1; } -int tse850_get_ana(struct snd_kcontrol *kctrl, - struct snd_ctl_elem_value *ucontrol) +static int tse850_get_ana(struct snd_kcontrol *kctrl, + struct snd_ctl_elem_value *ucontrol) { struct snd_soc_dapm_context *dapm = snd_soc_dapm_kcontrol_dapm(kctrl); struct snd_soc_card *card = dapm->card; @@ -184,8 +184,8 @@ int tse850_get_ana(struct snd_kcontrol *kctrl, return 0; } -int tse850_put_ana(struct snd_kcontrol *kctrl, - struct snd_ctl_elem_value *ucontrol) +static int tse850_put_ana(struct snd_kcontrol *kctrl, + struct snd_ctl_elem_value *ucontrol) { struct snd_soc_dapm_context *dapm = snd_soc_dapm_kcontrol_dapm(kctrl); struct snd_soc_card *card = dapm->card; -- 2.7.4
[PATCH -next] regulator: Make symbols static
From: YueHaibing Fix sparse warnings: drivers/regulator/stm32-pwr.c:35:5: warning: symbol 'ready_mask_table' was not declared. Should it be static? drivers/regulator/stm32-pwr.c:47:5: warning: symbol 'stm32_pwr_reg_is_ready' was not declared. Should it be static? drivers/regulator/stm32-pwr.c:57:5: warning: symbol 'stm32_pwr_reg_is_enabled' was not declared. Should it be static? Reported-by: Hulk Robot Signed-off-by: YueHaibing --- drivers/regulator/stm32-pwr.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/regulator/stm32-pwr.c b/drivers/regulator/stm32-pwr.c index e434b26..222d593 100644 --- a/drivers/regulator/stm32-pwr.c +++ b/drivers/regulator/stm32-pwr.c @@ -32,7 +32,7 @@ enum { STM32PWR_REG_NUM_REGS }; -u32 ready_mask_table[STM32PWR_REG_NUM_REGS] = { +static u32 ready_mask_table[STM32PWR_REG_NUM_REGS] = { [PWR_REG11] = REG_1_1_RDY, [PWR_REG18] = REG_1_8_RDY, [PWR_USB33] = USB_3_3_RDY, @@ -44,7 +44,7 @@ struct stm32_pwr_reg { u32 ready_mask; }; -int stm32_pwr_reg_is_ready(struct regulator_dev *rdev) +static int stm32_pwr_reg_is_ready(struct regulator_dev *rdev) { struct stm32_pwr_reg *priv = rdev_get_drvdata(rdev); u32 val; @@ -54,7 +54,7 @@ int stm32_pwr_reg_is_ready(struct regulator_dev *rdev) return (val & priv->ready_mask); } -int stm32_pwr_reg_is_enabled(struct regulator_dev *rdev) +static int stm32_pwr_reg_is_enabled(struct regulator_dev *rdev) { struct stm32_pwr_reg *priv = rdev_get_drvdata(rdev); u32 val; -- 2.7.4
[PATCH] configfs: Fix possible use-after-free in configfs_register_group
From: YueHaibing Syzkaller report this: BUG: KASAN: use-after-free in __list_add_valid+0xd4/0xe0 lib/list_debug.c:26 Read of size 8 at addr 8881ef61ae20 by task syz-executor.0/5996 CPU: 1 PID: 5996 Comm: syz-executor.0 Tainted: G C5.0.0+ #5 Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.10.2-1ubuntu1 04/01/2014 Call Trace: __dump_stack lib/dump_stack.c:77 [inline] dump_stack+0xa9/0x10e lib/dump_stack.c:113 print_address_description+0x65/0x270 mm/kasan/report.c:187 kasan_report+0x149/0x18d mm/kasan/report.c:317 __list_add_valid+0xd4/0xe0 lib/list_debug.c:26 __list_add include/linux/list.h:60 [inline] list_add_tail include/linux/list.h:93 [inline] link_obj+0xb0/0x190 fs/configfs/dir.c:759 link_group+0x1c/0x130 fs/configfs/dir.c:784 configfs_register_group+0x56/0x1e0 fs/configfs/dir.c:1751 configfs_register_default_group+0x72/0xc0 fs/configfs/dir.c:1834 ? 0xc1be iio_sw_trigger_init+0x23/0x1000 [industrialio_sw_trigger] do_one_initcall+0xbc/0x47d init/main.c:887 do_init_module+0x1b5/0x547 kernel/module.c:3456 load_module+0x6405/0x8c10 kernel/module.c:3804 __do_sys_finit_module+0x162/0x190 kernel/module.c:3898 do_syscall_64+0x9f/0x450 arch/x86/entry/common.c:290 entry_SYSCALL_64_after_hwframe+0x49/0xbe RIP: 0033:0x462e99 Code: f7 d8 64 89 02 b8 ff ff ff ff c3 66 0f 1f 44 00 00 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 c7 c1 bc ff ff ff f7 d8 64 89 01 48 RSP: 002b:7f494ecbcc58 EFLAGS: 0246 ORIG_RAX: 0139 RAX: ffda RBX: 0073bf00 RCX: 00462e99 RDX: RSI: 2180 RDI: 0003 RBP: 7f494ecbcc70 R08: R09: R10: R11: 0246 R12: 7f494ecbd6bc R13: 004bcefa R14: 006f6fb0 R15: 0004 Allocated by task 5987: set_track mm/kasan/common.c:87 [inline] __kasan_kmalloc.constprop.3+0xa0/0xd0 mm/kasan/common.c:497 kmalloc include/linux/slab.h:545 [inline] kzalloc include/linux/slab.h:740 [inline] configfs_register_default_group+0x4c/0xc0 fs/configfs/dir.c:1829 0xc1bd0023 do_one_initcall+0xbc/0x47d init/main.c:887 do_init_module+0x1b5/0x547 kernel/module.c:3456 load_module+0x6405/0x8c10 kernel/module.c:3804 __do_sys_finit_module+0x162/0x190 kernel/module.c:3898 do_syscall_64+0x9f/0x450 arch/x86/entry/common.c:290 entry_SYSCALL_64_after_hwframe+0x49/0xbe Freed by task 5987: set_track mm/kasan/common.c:87 [inline] __kasan_slab_free+0x130/0x180 mm/kasan/common.c:459 slab_free_hook mm/slub.c:1429 [inline] slab_free_freelist_hook mm/slub.c:1456 [inline] slab_free mm/slub.c:3003 [inline] kfree+0xe1/0x270 mm/slub.c:3955 configfs_register_default_group+0x9a/0xc0 fs/configfs/dir.c:1836 0xc1bd0023 do_one_initcall+0xbc/0x47d init/main.c:887 do_init_module+0x1b5/0x547 kernel/module.c:3456 load_module+0x6405/0x8c10 kernel/module.c:3804 __do_sys_finit_module+0x162/0x190 kernel/module.c:3898 do_syscall_64+0x9f/0x450 arch/x86/entry/common.c:290 entry_SYSCALL_64_after_hwframe+0x49/0xbe The buggy address belongs to the object at 8881ef61ae00 which belongs to the cache kmalloc-192 of size 192 The buggy address is located 32 bytes inside of 192-byte region [8881ef61ae00, 8881ef61aec0) The buggy address belongs to the page: page:ea0007bd8680 count:1 mapcount:0 mapping:8881f6c03000 index:0x8881ef61a700 flags: 0x2fffc000200(slab) raw: 02fffc000200 ea0007ca4740 00050005 8881f6c03000 raw: 8881ef61a700 801c 0001 page dumped because: kasan: bad access detected Memory state around the buggy address: 8881ef61ad00: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 8881ef61ad80: 00 00 00 00 00 00 00 00 fc fc fc fc fc fc fc fc >8881ef61ae00: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb ^ 8881ef61ae80: fb fb fb fb fb fb fb fb fc fc fc fc fc fc fc fc 8881ef61af00: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb In configfs_register_group(), if create_default_group() failed, we forgot to unlink group. It will left a invalid item in parent list, which may trigger a use-after-free issue. Reported-by: Hulk Robot Fixes: 5cf6a51e6062 ("configfs: allow dynamic group creation") Signed-off-by: YueHaibing --- fs/configfs/dir.c | 17 - 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/fs/configfs/dir.c b/fs/configfs/dir.c index 591e82b..5e7932d 100644 --- a/fs/configfs/dir.c +++ b/fs/configfs/dir.c @@ -1757,12 +1757,19 @@ int configfs_register_group(struct config_group *parent_group, inode_lock_nested(d_inode(parent), I_MUTEX_PARENT); ret = create_default_group(parent_group, group); - if (!ret) { - spin_lock(&configfs_dirent_lock); - configfs_dir_set_ready(group->cg_item.ci_dentry->d_fsd
[PATCH -next] eventfd: Make eventfd_ida static
From: YueHaibing Fix sparse warning: fs/eventfd.c:26:1: warning: symbol 'eventfd_ida' was not declared. Should it be static? Signed-off-by: YueHaibing --- fs/eventfd.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fs/eventfd.c b/fs/eventfd.c index ce8fa15..93b1fa7 100644 --- a/fs/eventfd.c +++ b/fs/eventfd.c @@ -23,7 +23,7 @@ #include #include -DEFINE_IDA(eventfd_ida); +static DEFINE_IDA(eventfd_ida); struct eventfd_ctx { struct kref kref; -- 2.7.4
[PATCH -next] interconnect: qcom: Make qcs404_rpm static
From: YueHaibing Fix sparse warning: drivers/interconnect/qcom/qcs404.c:27:21: warning: symbol 'qcs404_rpm' was not declared. Should it be static? Signed-off-by: YueHaibing --- drivers/interconnect/qcom/qcs404.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/interconnect/qcom/qcs404.c b/drivers/interconnect/qcom/qcs404.c index de35fd7..c320cbd 100644 --- a/drivers/interconnect/qcom/qcs404.c +++ b/drivers/interconnect/qcom/qcs404.c @@ -24,7 +24,7 @@ #define to_qcom_provider(_provider) \ container_of(_provider, struct qcom_icc_provider, provider) -struct qcom_smd_rpm *qcs404_rpm; +static struct qcom_smd_rpm *qcs404_rpm; struct icc_rpm_smd_req { __le32 key; -- 2.7.4
[PATCH -next] ARM: OMAP2+: Make some variables static
From: YueHaibing Fix sparse warnings: arch/arm/mach-omap2/omap_hwmod_33xx_43xx_ipblock_data.c:532:25: warning: symbol 'am33xx_gpio_hwmod_class' was not declared. Should it be static? arch/arm/mach-omap2/omap_hwmod_33xx_43xx_ipblock_data.c:542:19: warning: symbol 'am33xx_gpio1_hwmod' was not declared. Should it be static? arch/arm/mach-omap2/omap_hwmod_33xx_43xx_ipblock_data.c:562:19: warning: symbol 'am33xx_gpio2_hwmod' was not declared. Should it be static? arch/arm/mach-omap2/omap_hwmod_33xx_43xx_ipblock_data.c:582:19: warning: symbol 'am33xx_gpio3_hwmod' was not declared. Should it be static? Signed-off-by: YueHaibing --- arch/arm/mach-omap2/omap_hwmod_33xx_43xx_ipblock_data.c | 8 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/arch/arm/mach-omap2/omap_hwmod_33xx_43xx_ipblock_data.c b/arch/arm/mach-omap2/omap_hwmod_33xx_43xx_ipblock_data.c index 4c3543b..adb6271 100644 --- a/arch/arm/mach-omap2/omap_hwmod_33xx_43xx_ipblock_data.c +++ b/arch/arm/mach-omap2/omap_hwmod_33xx_43xx_ipblock_data.c @@ -529,7 +529,7 @@ static struct omap_hwmod_class_sysconfig am33xx_gpio_sysc = { .sysc_fields= &omap_hwmod_sysc_type1, }; -struct omap_hwmod_class am33xx_gpio_hwmod_class = { +static struct omap_hwmod_class am33xx_gpio_hwmod_class = { .name = "gpio", .sysc = &am33xx_gpio_sysc, }; @@ -539,7 +539,7 @@ static struct omap_hwmod_opt_clk gpio1_opt_clks[] = { { .role = "dbclk", .clk = "gpio1_dbclk" }, }; -struct omap_hwmod am33xx_gpio1_hwmod = { +static struct omap_hwmod am33xx_gpio1_hwmod = { .name = "gpio2", .class = &am33xx_gpio_hwmod_class, .clkdm_name = "l4ls_clkdm", @@ -559,7 +559,7 @@ static struct omap_hwmod_opt_clk gpio2_opt_clks[] = { { .role = "dbclk", .clk = "gpio2_dbclk" }, }; -struct omap_hwmod am33xx_gpio2_hwmod = { +static struct omap_hwmod am33xx_gpio2_hwmod = { .name = "gpio3", .class = &am33xx_gpio_hwmod_class, .clkdm_name = "l4ls_clkdm", @@ -579,7 +579,7 @@ static struct omap_hwmod_opt_clk gpio3_opt_clks[] = { { .role = "dbclk", .clk = "gpio3_dbclk" }, }; -struct omap_hwmod am33xx_gpio3_hwmod = { +static struct omap_hwmod am33xx_gpio3_hwmod = { .name = "gpio4", .class = &am33xx_gpio_hwmod_class, .clkdm_name = "l4ls_clkdm", -- 2.7.4
[PATCH -next] soc: ti: pm33xx: Make two symbols static
From: YueHaibing Fix sparse warnings: drivers/soc/ti/pm33xx.c:144:27: warning: symbol 'rtc_wake_src' was not declared. Should it be static? drivers/soc/ti/pm33xx.c:160:5: warning: symbol 'am33xx_rtc_only_idle' was not declared. Should it be static? Signed-off-by: YueHaibing --- drivers/soc/ti/pm33xx.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/soc/ti/pm33xx.c b/drivers/soc/ti/pm33xx.c index fc5802c..b22383c 100644 --- a/drivers/soc/ti/pm33xx.c +++ b/drivers/soc/ti/pm33xx.c @@ -141,7 +141,7 @@ static int __init am43xx_map_gic(void) } #ifdef CONFIG_SUSPEND -struct wkup_m3_wakeup_src rtc_wake_src(void) +static struct wkup_m3_wakeup_src rtc_wake_src(void) { u32 i; @@ -157,7 +157,7 @@ struct wkup_m3_wakeup_src rtc_wake_src(void) return rtc_ext_wakeup; } -int am33xx_rtc_only_idle(unsigned long wfi_flags) +static int am33xx_rtc_only_idle(unsigned long wfi_flags) { omap_rtc_power_off_program(&omap_rtc->dev); am33xx_do_wfi_sram(wfi_flags); -- 2.7.4
[PATCH] orangefs: Make some functions static
From: YueHaibing Fix sparse warnings: fs/orangefs/super.c:155:5: warning: symbol 'orangefs_write_inode' was not declared. Should it be static? fs/orangefs/inode.c:387:5: warning: symbol 'orangefs_write_begin' was not declared. Should it be static? fs/orangefs/inode.c:445:5: warning: symbol 'orangefs_write_end' was not declared. Should it be static? fs/orangefs/file.c:607:5: warning: symbol 'orangefs_flush' was not declared. Should it be static? Signed-off-by: YueHaibing --- fs/orangefs/file.c | 2 +- fs/orangefs/inode.c | 13 - fs/orangefs/super.c | 3 ++- 3 files changed, 11 insertions(+), 7 deletions(-) diff --git a/fs/orangefs/file.c b/fs/orangefs/file.c index a2bbed1..a35c170 100644 --- a/fs/orangefs/file.c +++ b/fs/orangefs/file.c @@ -604,7 +604,7 @@ static int orangefs_file_open(struct inode * inode, struct file *file) return generic_file_open(inode, file); } -int orangefs_flush(struct file *file, fl_owner_t id) +static int orangefs_flush(struct file *file, fl_owner_t id) { /* * This is vfs_fsync_range(file, 0, LLONG_MAX, 0) without the diff --git a/fs/orangefs/inode.c b/fs/orangefs/inode.c index d572e807..46235dd 100644 --- a/fs/orangefs/inode.c +++ b/fs/orangefs/inode.c @@ -384,9 +384,10 @@ static int orangefs_readpage(struct file *file, struct page *page) return ret; } -int orangefs_write_begin(struct file *file, struct address_space *mapping, -loff_t pos, unsigned len, unsigned flags, struct page **pagep, -void **fsdata) +static int +orangefs_write_begin(struct file *file, struct address_space *mapping, +loff_t pos, unsigned int len, unsigned int flags, +struct page **pagep, void **fsdata) { struct orangefs_write_range *wr; struct page *page; @@ -442,8 +443,10 @@ int orangefs_write_begin(struct file *file, struct address_space *mapping, return 0; } -int orangefs_write_end(struct file *file, struct address_space *mapping, -loff_t pos, unsigned len, unsigned copied, struct page *page, void *fsdata) +static int +orangefs_write_end(struct file *file, struct address_space *mapping, + loff_t pos, unsigned int len, unsigned int copied, + struct page *page, void *fsdata) { struct inode *inode = page->mapping->host; loff_t last_pos = pos + copied; diff --git a/fs/orangefs/super.c b/fs/orangefs/super.c index 48e0806..8fa30c1 100644 --- a/fs/orangefs/super.c +++ b/fs/orangefs/super.c @@ -152,7 +152,8 @@ static void orangefs_destroy_inode(struct inode *inode) call_rcu(&inode->i_rcu, orangefs_i_callback); } -int orangefs_write_inode(struct inode *inode, struct writeback_control *wbc) +static int orangefs_write_inode(struct inode *inode, + struct writeback_control *wbc) { gossip_debug(GOSSIP_SUPER_DEBUG, "orangefs_write_inode\n"); return orangefs_inode_setattr(inode); -- 2.7.4
[PATCH v3] gpio: merrifield: Fix build err without CONFIG_ACPI
From: YueHaibing When building CONFIG_ACPI is not set gcc warn this: drivers/gpio/gpio-merrifield.c: In function mrfld_gpio_get_pinctrl_dev_name: drivers/gpio/gpio-merrifield.c:388:19: error: dereferencing pointer to incomplete type struct acpi_device put_device(&adev->dev); ^~ Reported-by: Hulk Robot Fixes:d00d2109c367 ("gpio: merrifield: Convert to use acpi_dev_get_first_match_dev()") Suggested-by: Andy Shevchenko Signed-off-by: YueHaibing --- v3: move helper to acpi_bus.h, and change name to acpi_dev_put --- drivers/gpio/gpio-merrifield.c | 2 +- include/acpi/acpi_bus.h| 4 include/linux/acpi.h | 2 ++ 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/drivers/gpio/gpio-merrifield.c b/drivers/gpio/gpio-merrifield.c index 2383dc7..3302125 100644 --- a/drivers/gpio/gpio-merrifield.c +++ b/drivers/gpio/gpio-merrifield.c @@ -385,7 +385,7 @@ static const char *mrfld_gpio_get_pinctrl_dev_name(struct mrfld_gpio *priv) adev = acpi_dev_get_first_match_dev("INTC1002", NULL, -1); if (adev) { name = devm_kstrdup(priv->dev, acpi_dev_name(adev), GFP_KERNEL); - put_device(&adev->dev); + acpi_dev_put(adev); } else { name = "pinctrl-merrifield"; } diff --git a/include/acpi/acpi_bus.h b/include/acpi/acpi_bus.h index f798175..2a462cf 100644 --- a/include/acpi/acpi_bus.h +++ b/include/acpi/acpi_bus.h @@ -687,6 +687,10 @@ static inline bool acpi_device_can_poweroff(struct acpi_device *adev) adev->power.states[ACPI_STATE_D3_HOT].flags.explicit_set); } +static inline void acpi_dev_put(struct acpi_device *adev) +{ + put_device(&adev->dev); +} #else /* CONFIG_ACPI */ static inline int register_acpi_bus_type(void *bus) { return 0; } diff --git a/include/linux/acpi.h b/include/linux/acpi.h index a1bd789..e22c237 100644 --- a/include/linux/acpi.h +++ b/include/linux/acpi.h @@ -679,6 +679,8 @@ acpi_dev_get_first_match_dev(const char *hid, const char *uid, s64 hrv) return NULL; } +static inline void acpi_dev_put(struct acpi_device *adev) {} + static inline bool is_acpi_node(struct fwnode_handle *fwnode) { return false; -- 2.7.4
[PATCH v2] mtd: nand: Fix build error while CONFIG_MTD_NAND_ECC_SW_BCH is set to module
From: YueHaibing Fix gcc build error while CONFIG_MTD_NAND_ECC_SW_BCH is set to module: drivers/mtd/nand/raw/nand_base.o: In function `nand_cleanup': (.text+0xef6): undefined reference to `nand_bch_free' drivers/mtd/nand/raw/nand_base.o: In function `nand_scan_tail': nand_base.c:(.text+0xa101): undefined reference to `nand_bch_calculate_ecc' nand_base.c:(.text+0xa120): undefined reference to `nand_bch_correct_data' nand_base.c:(.text+0xa269): undefined reference to `nand_bch_init' CONFIG_MTD_NAND_ECC_SW_BCH should not be set to M, while MTD_RAW_NAND is set to y. Reported-by: Hulk Robot Fixes: 193bd4002644 ("mtd: nand: add software BCH ECC support") Suggested-by: Boris Brezillon Signed-off-by: YueHaibing --- v2: use imply as suggestion --- drivers/mtd/devices/Kconfig | 2 +- drivers/mtd/nand/raw/Kconfig | 21 +++-- 2 files changed, 12 insertions(+), 11 deletions(-) diff --git a/drivers/mtd/devices/Kconfig b/drivers/mtd/devices/Kconfig index 7fcdaf6..f9258d6 100644 --- a/drivers/mtd/devices/Kconfig +++ b/drivers/mtd/devices/Kconfig @@ -207,7 +207,7 @@ comment "Disk-On-Chip Device Drivers" config MTD_DOCG3 tristate "M-Systems Disk-On-Chip G3" select BCH - select BCH_CONST_PARAMS if !CONFIG_MTD_NAND_ECC_SW_BCH + select BCH_CONST_PARAMS if !MTD_NAND_ECC_SW_BCH select BITREVERSE help This provides an MTD device driver for the M-Systems DiskOnChip diff --git a/drivers/mtd/nand/raw/Kconfig b/drivers/mtd/nand/raw/Kconfig index 615d738..65c85fc 100644 --- a/drivers/mtd/nand/raw/Kconfig +++ b/drivers/mtd/nand/raw/Kconfig @@ -9,11 +9,22 @@ config MTD_NAND_ECC_SW_HAMMING_SMC Software ECC according to the Smart Media Specification. The original Linux implementation had byte 0 and 1 swapped. +config MTD_NAND_ECC_SW_BCH + tristate "Support software BCH ECC" + select BCH + default n + help + This enables support for software BCH error correction. Binary BCH + codes are more powerful and cpu intensive than traditional Hamming + ECC codes. They are used with NAND devices requiring more than 1 bit + of error correction. + menuconfig MTD_RAW_NAND tristate "Raw/Parallel NAND Device Support" depends on MTD select MTD_NAND_CORE select MTD_NAND_ECC_SW_HAMMING + imply MTD_NAND_ECC_SW_BCH help This enables support for accessing all type of raw/parallel NAND flash devices. For further information see @@ -21,16 +32,6 @@ menuconfig MTD_RAW_NAND if MTD_RAW_NAND -config MTD_NAND_ECC_SW_BCH - tristate "Support software BCH ECC" - select BCH - default n - help - This enables support for software BCH error correction. Binary BCH - codes are more powerful and cpu intensive than traditional Hamming - ECC codes. They are used with NAND devices requiring more than 1 bit - of error correction. - comment "Raw/parallel NAND flash controllers" config MTD_NAND_DENALI -- 2.7.4
[PATCH -next] PCI: mvebu: Make mvebu_pci_bridge_emul_ops static
From: YueHaibing Fix sparse warning: drivers/pci/controller/pci-mvebu.c:557:28: warning: symbol 'mvebu_pci_bridge_emul_ops' was not declared. Should it be static? Reported-by: Hulk Robot Signed-off-by: YueHaibing --- drivers/pci/controller/pci-mvebu.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/pci/controller/pci-mvebu.c b/drivers/pci/controller/pci-mvebu.c index d3a0419..ed032e9 100644 --- a/drivers/pci/controller/pci-mvebu.c +++ b/drivers/pci/controller/pci-mvebu.c @@ -554,7 +554,7 @@ mvebu_pci_bridge_emul_pcie_conf_write(struct pci_bridge_emul *bridge, } } -struct pci_bridge_emul_ops mvebu_pci_bridge_emul_ops = { +static struct pci_bridge_emul_ops mvebu_pci_bridge_emul_ops = { .write_base = mvebu_pci_bridge_emul_base_conf_write, .read_pcie = mvebu_pci_bridge_emul_pcie_conf_read, .write_pcie = mvebu_pci_bridge_emul_pcie_conf_write, -- 2.7.4
[PATCH -next] memory: tegra: Make terga20_mc_reset_ops static
From: YueHaibing Fix sparse warning: drivers/memory/tegra/tegra20.c:277:33: warning: symbol 'terga20_mc_reset_ops' was not declared. Should it be static? Reported-by: Hulk Robot Signed-off-by: YueHaibing --- drivers/memory/tegra/tegra20.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/memory/tegra/tegra20.c b/drivers/memory/tegra/tegra20.c index 7119e53..b786aec 100644 --- a/drivers/memory/tegra/tegra20.c +++ b/drivers/memory/tegra/tegra20.c @@ -274,7 +274,7 @@ static int terga20_mc_unblock_dma(struct tegra_mc *mc, return 0; } -const struct tegra_mc_reset_ops terga20_mc_reset_ops = { +static const struct tegra_mc_reset_ops terga20_mc_reset_ops = { .hotreset_assert = terga20_mc_hotreset_assert, .hotreset_deassert = terga20_mc_hotreset_deassert, .block_dma = terga20_mc_block_dma, -- 2.7.4
[PATCH -next] mtd: rawnand: ingenic: Make jz4725b_ooblayout_ops static
From: YueHaibing Fix sparse warning: drivers/mtd/nand/raw/ingenic/ingenic_nand.c:140:32: warning: symbol 'jz4725b_ooblayout_ops' was not declared. Should it be static? Reported-by: Hulk Robot Signed-off-by: YueHaibing --- drivers/mtd/nand/raw/ingenic/ingenic_nand.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/mtd/nand/raw/ingenic/ingenic_nand.c b/drivers/mtd/nand/raw/ingenic/ingenic_nand.c index ad0c905..d7b7c0f 100644 --- a/drivers/mtd/nand/raw/ingenic/ingenic_nand.c +++ b/drivers/mtd/nand/raw/ingenic/ingenic_nand.c @@ -137,7 +137,7 @@ static int jz4725b_ooblayout_free(struct mtd_info *mtd, int section, return 0; } -const struct mtd_ooblayout_ops jz4725b_ooblayout_ops = { +static const struct mtd_ooblayout_ops jz4725b_ooblayout_ops = { .ecc = jz4725b_ooblayout_ecc, .free = jz4725b_ooblayout_free, }; -- 2.7.4
[PATCH] rtc: sirfsoc: Make sysrtc_regmap_config static
From: YueHaibing Fix sparse warning: drivers/rtc/rtc-sirfsoc.c:282:28: warning: symbol 'sysrtc_regmap_config' was not declared. Should it be static? Reported-by: Hulk Robot Signed-off-by: YueHaibing --- drivers/rtc/rtc-sirfsoc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/rtc/rtc-sirfsoc.c b/drivers/rtc/rtc-sirfsoc.c index 2a9e151..9ba28d1 100644 --- a/drivers/rtc/rtc-sirfsoc.c +++ b/drivers/rtc/rtc-sirfsoc.c @@ -279,7 +279,7 @@ static const struct of_device_id sirfsoc_rtc_of_match[] = { {}, }; -const struct regmap_config sysrtc_regmap_config = { +static const struct regmap_config sysrtc_regmap_config = { .reg_bits = 32, .val_bits = 32, .fast_io = true, -- 2.7.4
[PATCH] spi: spi-mem: Make spi_mem_default_supports_op() static inline
From: YueHaibing Stub helper spi_mem_default_supports_op() should be set to static inline Signed-off-by: YueHaibing --- include/linux/spi/spi-mem.h | 1 + 1 file changed, 1 insertion(+) diff --git a/include/linux/spi/spi-mem.h b/include/linux/spi/spi-mem.h index 1941b84..af9ff2f 100644 --- a/include/linux/spi/spi-mem.h +++ b/include/linux/spi/spi-mem.h @@ -315,6 +315,7 @@ spi_controller_dma_unmap_mem_op_data(struct spi_controller *ctlr, { } +static inline bool spi_mem_default_supports_op(struct spi_mem *mem, const struct spi_mem_op *op) { -- 2.7.4
[PATCH] mtd: nand: Fix build error while CONFIG_MTD_NAND_ECC_SW_BCH is set to module
From: YueHaibing Fix gcc build error while CONFIG_MTD_NAND_ECC_SW_BCH is set to module: drivers/mtd/nand/raw/nand_base.o: In function `nand_cleanup': (.text+0xef6): undefined reference to `nand_bch_free' drivers/mtd/nand/raw/nand_base.o: In function `nand_scan_tail': nand_base.c:(.text+0xa101): undefined reference to `nand_bch_calculate_ecc' nand_base.c:(.text+0xa120): undefined reference to `nand_bch_correct_data' nand_base.c:(.text+0xa269): undefined reference to `nand_bch_init' CONFIG_MTD_NAND_ECC_SW_BCH should not be set to M, because MTD_RAW_NAND need it while linked. Reported-by: Hulk Robot Fixes: 193bd4002644 ("mtd: nand: add software BCH ECC support" Signed-off-by: YueHaibing --- drivers/mtd/nand/raw/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/mtd/nand/raw/Kconfig b/drivers/mtd/nand/raw/Kconfig index 615d738..0500c42 100644 --- a/drivers/mtd/nand/raw/Kconfig +++ b/drivers/mtd/nand/raw/Kconfig @@ -22,7 +22,7 @@ menuconfig MTD_RAW_NAND if MTD_RAW_NAND config MTD_NAND_ECC_SW_BCH - tristate "Support software BCH ECC" + bool "Support software BCH ECC" select BCH default n help -- 2.7.4
[PATCH v2] spi: spi-mem: Fix build error without CONFIG_SPI_MEM
From: YueHaibing When building with CONFIG_SPI_MEM is not set gc warns this: drivers/spi/spi-zynq-qspi.o: In function `zynq_qspi_supports_op': spi-zynq-qspi.c:(.text+0x1da): undefined reference to `spi_mem_default_supports_op' Fixes: 67dca5e580f1 ("spi: spi-mem: Add support for Zynq QSPI controller") Signed-off-by: YueHaibing --- v2: make stub helper static inline --- include/linux/spi/spi-mem.h | 15 --- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/include/linux/spi/spi-mem.h b/include/linux/spi/spi-mem.h index c845cd6..3d57db8 100644 --- a/include/linux/spi/spi-mem.h +++ b/include/linux/spi/spi-mem.h @@ -295,6 +295,10 @@ int spi_controller_dma_map_mem_op_data(struct spi_controller *ctlr, void spi_controller_dma_unmap_mem_op_data(struct spi_controller *ctlr, const struct spi_mem_op *op, struct sg_table *sg); + +bool spi_mem_default_supports_op(struct spi_mem *mem, +const struct spi_mem_op *op); + #else static inline int spi_controller_dma_map_mem_op_data(struct spi_controller *ctlr, @@ -310,6 +314,14 @@ spi_controller_dma_unmap_mem_op_data(struct spi_controller *ctlr, struct sg_table *sg) { } + +static inline bool +spi_mem_default_supports_op(struct spi_mem *mem, + const struct spi_mem_op *op) +{ + return false; +} + #endif /* CONFIG_SPI_MEM */ int spi_mem_adjust_op_size(struct spi_mem *mem, struct spi_mem_op *op); @@ -341,9 +353,6 @@ int spi_mem_driver_register_with_owner(struct spi_mem_driver *drv, void spi_mem_driver_unregister(struct spi_mem_driver *drv); -bool spi_mem_default_supports_op(struct spi_mem *mem, -const struct spi_mem_op *op); - #define spi_mem_driver_register(__drv) \ spi_mem_driver_register_with_owner(__drv, THIS_MODULE) -- 2.7.4
[PATCH] iio: adc: ti-ads7950: Fix build error without CONFIG_GPIOLIB
From: YueHaibing When building with CONFIG_GPIOLIB is not set gcc warns this: drivers/iio/adc/ti-ads7950.c:75:19: error: field chip has incomplete type struct gpio_chip chip; ^~~~ drivers/iio/adc/ti-ads7950.c: In function ti_ads7950_set: drivers/iio/adc/ti-ads7950.c:409:32: error: implicit declaration of function gpiochip_get_data; did you mean acpi_get_data? [-Werror=implicit-function-declaration] struct ti_ads7950_state *st = gpiochip_get_data(chip); ^ acpi_get_data Reported-by: Hulk Robot Fixes: c97dce792dc8 ("iio: adc: ti-ads7950: add GPIO support") Signed-off-by: YueHaibing --- drivers/iio/adc/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/iio/adc/Kconfig b/drivers/iio/adc/Kconfig index 846c7ac..f760269 100644 --- a/drivers/iio/adc/Kconfig +++ b/drivers/iio/adc/Kconfig @@ -968,7 +968,7 @@ config TI_ADS1015 config TI_ADS7950 tristate "Texas Instruments ADS7950 ADC driver" - depends on SPI + depends on SPI && GPIOLIB select IIO_BUFFER select IIO_TRIGGERED_BUFFER help -- 2.7.4
[PATCH] lib/Kconfig.debug: Fix build error without CONFIG_BLOCK
From: YueHaibing If CONFIG_TEST_KMOD is set to M, while CONFIG_BLOCK is not set, XFS and BTRFS can not be compiled successly. Reported-by: Hulk Robot Fixes: d9c6a72d6fa2 ("kmod: add test driver to stress test the module loader") Signed-off-by: YueHaibing --- lib/Kconfig.debug | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/Kconfig.debug b/lib/Kconfig.debug index 2020d76..65ad61b 100644 --- a/lib/Kconfig.debug +++ b/lib/Kconfig.debug @@ -1939,6 +1939,7 @@ config TEST_KMOD tristate "kmod stress tester" depends on m depends on NETDEVICES && NET_CORE && INET # for TUN + depends on BLOCK select TEST_LKM select XFS_FS select TUN -- 2.7.4
[PATCH] fs/proc/proc_sysctl.c: Fix a NULL pointer dereference
From: YueHaibing Syzkaller report this: sysctl could not get directory: /net//bridge -12 kasan: CONFIG_KASAN_INLINE enabled kasan: GPF could be caused by NULL-ptr deref or user memory access general protection fault: [#1] SMP KASAN PTI CPU: 1 PID: 7027 Comm: syz-executor.0 Tainted: G C5.1.0-rc3+ #8 Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.10.2-1ubuntu1 04/01/2014 RIP: 0010:__write_once_size include/linux/compiler.h:220 [inline] RIP: 0010:__rb_change_child include/linux/rbtree_augmented.h:144 [inline] RIP: 0010:__rb_erase_augmented include/linux/rbtree_augmented.h:186 [inline] RIP: 0010:rb_erase+0x5f4/0x19f0 lib/rbtree.c:459 Code: 00 0f 85 60 13 00 00 48 89 1a 48 83 c4 18 5b 5d 41 5c 41 5d 41 5e 41 5f c3 48 89 f2 48 b8 00 00 00 00 00 fc ff df 48 c1 ea 03 <80> 3c 02 00 0f 85 75 0c 00 00 4d 85 ed 4c 89 2e 74 ce 4c 89 ea 48 RSP: 0018:8881bb507778 EFLAGS: 00010206 RAX: dc00 RBX: 8881f224b5b8 RCX: 818f3f6a RDX: 000a RSI: 0050 RDI: 8881f224b568 RBP: R08: ed10376a0ef4 R09: ed10376a0ef4 R10: 0001 R11: ed10376a0ef4 R12: 8881f224b558 R13: R14: R15: FS: 7f3e7ce13700() GS:8881f730() knlGS: CS: 0010 DS: ES: CR0: 80050033 CR2: 7fd60fbe9398 CR3: 0001cb55c001 CR4: 007606e0 DR0: DR1: DR2: DR3: DR6: fffe0ff0 DR7: 0400 PKRU: 5554 Call Trace: erase_entry fs/proc/proc_sysctl.c:178 [inline] erase_header+0xe3/0x160 fs/proc/proc_sysctl.c:207 start_unregistering fs/proc/proc_sysctl.c:331 [inline] drop_sysctl_table+0x558/0x880 fs/proc/proc_sysctl.c:1631 get_subdir fs/proc/proc_sysctl.c:1022 [inline] __register_sysctl_table+0xd65/0x1090 fs/proc/proc_sysctl.c:1335 ? 0xc1a88000 br_netfilter_init+0x68/0x1000 [br_netfilter] do_one_initcall+0xbc/0x47d init/main.c:901 do_init_module+0x1b5/0x547 kernel/module.c:3456 load_module+0x6405/0x8c10 kernel/module.c:3804 __do_sys_finit_module+0x162/0x190 kernel/module.c:3898 do_syscall_64+0x9f/0x450 arch/x86/entry/common.c:290 entry_SYSCALL_64_after_hwframe+0x49/0xbe RIP: 0033:0x462e99 Code: f7 d8 64 89 02 b8 ff ff ff ff c3 66 0f 1f 44 00 00 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 c7 c1 bc ff ff ff f7 d8 64 89 01 48 RSP: 002b:7f3e7ce12c58 EFLAGS: 0246 ORIG_RAX: 0139 RAX: ffda RBX: 0073bf00 RCX: 00462e99 RDX: RSI: 2280 RDI: 0003 RBP: 7f3e7ce12c70 R08: R09: R10: R11: 0246 R12: 7f3e7ce136bc R13: 004bcefa R14: 006f6fb0 R15: 0004 Modules linked in: br_netfilter(+) backlight comedi(C) hid_sensor_hub max3100 ti_ads8688 udc_core fddi snd_mona leds_gpio rc_streamzap mtd pata_netcell nf_log_common rc_winfast udp_tunnel snd_usbmidi_lib snd_usb_toneport snd_usb_line6 snd_rawmidi snd_seq_device snd_hwdep videobuf2_v4l2 videobuf2_common videodev media videobuf2_vmalloc videobuf2_memops rc_gadmei_rm008z 8250_of smm665 hid_tmff hid_saitek hwmon_vid rc_ati_tv_wonder_hd_600 rc_core pata_pdc202xx_old dn_rtmsg as3722 ad714x_i2c ad714x snd_soc_cs4265 hid_kensington panel_ilitek_ili9322 drm drm_panel_orientation_quirks ipack cdc_phonet usbcore phonet hid_jabra hid extcon_arizona can_dev industrialio_triggered_buffer kfifo_buf industrialio adm1031 i2c_mux_ltc4306 i2c_mux ipmi_msghandler mlxsw_core snd_soc_cs35l34 snd_soc_core snd_pcm_dmaengine snd_pcm snd_timer ac97_bus snd_compress snd soundcore gpio_da9055 uio ecdh_generic mdio_thunder of_mdio fixed_phy libphy mdio_cavium iptable_security iptable_raw iptable_mangle iptable_nat nf_nat nf_conntrack nf_defrag_ipv6 nf_defrag_ipv4 iptable_filter bpfilter ip6_vti ip_vti ip_gre ipip sit tunnel4 ip_tunnel hsr veth netdevsim vxcan batman_adv cfg80211 rfkill chnl_net caif nlmon dummy team bonding vcan bridge stp llc ip6_gre gre ip6_tunnel tunnel6 tun joydev mousedev ppdev tpm kvm_intel kvm irqbypass crct10dif_pclmul crc32_pclmul crc32c_intel ghash_clmulni_intel aesni_intel ide_pci_generic piix aes_x86_64 crypto_simd cryptd ide_core glue_helper input_leds psmouse intel_agp intel_gtt serio_raw ata_generic i2c_piix4 agpgart pata_acpi parport_pc parport floppy rtc_cmos sch_fq_codel ip_tables x_tables sha1_ssse3 sha1_generic ipv6 [last unloaded: br_netfilter] Dumping ftrace buffer: (ftrace buffer empty) ---[ end trace 68741688d5fbfe85 ]--- commit 23da9588037e forget handle start_unregistering() case, while header->parent is NULL, it calls erase_header as above syzkaller call Trace, accessing &header->parent->root will tigger another NULL pointer dereference. As commit 23da9588037e explained, there also no need call start_unreg
[PATCH] spi: spi-mem: Fix build error without CONFIG_SPI_MEM
From: YueHaibing When building with CONFIG_SPI_MEM is not set gc warns this: drivers/spi/spi-zynq-qspi.o: In function `zynq_qspi_supports_op': spi-zynq-qspi.c:(.text+0x1da): undefined reference to `spi_mem_default_supports_op' Fixes: 67dca5e580f1 ("spi: spi-mem: Add support for Zynq QSPI controller") Signed-off-by: YueHaibing --- include/linux/spi/spi-mem.h | 14 +++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/include/linux/spi/spi-mem.h b/include/linux/spi/spi-mem.h index c845cd6..1941b84 100644 --- a/include/linux/spi/spi-mem.h +++ b/include/linux/spi/spi-mem.h @@ -295,6 +295,10 @@ int spi_controller_dma_map_mem_op_data(struct spi_controller *ctlr, void spi_controller_dma_unmap_mem_op_data(struct spi_controller *ctlr, const struct spi_mem_op *op, struct sg_table *sg); + +bool spi_mem_default_supports_op(struct spi_mem *mem, +const struct spi_mem_op *op); + #else static inline int spi_controller_dma_map_mem_op_data(struct spi_controller *ctlr, @@ -310,6 +314,13 @@ spi_controller_dma_unmap_mem_op_data(struct spi_controller *ctlr, struct sg_table *sg) { } + +bool spi_mem_default_supports_op(struct spi_mem *mem, +const struct spi_mem_op *op) +{ + return false; +} + #endif /* CONFIG_SPI_MEM */ int spi_mem_adjust_op_size(struct spi_mem *mem, struct spi_mem_op *op); @@ -341,9 +352,6 @@ int spi_mem_driver_register_with_owner(struct spi_mem_driver *drv, void spi_mem_driver_unregister(struct spi_mem_driver *drv); -bool spi_mem_default_supports_op(struct spi_mem *mem, -const struct spi_mem_op *op); - #define spi_mem_driver_register(__drv) \ spi_mem_driver_register_with_owner(__drv, THIS_MODULE) -- 2.7.4
[PATCH] fmc: Fix possible NULL pointer dereference
From: YueHaibing Syzkaller report this: kasan: GPF could be caused by NULL-ptr deref or user memory access general protection fault: [#1] SMP KASAN PTI CPU: 0 PID: 3692 Comm: syz-executor.0 Tainted: G C5.0.0+ #5 Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.10.2-1ubuntu1 04/01/2014 RIP: 0010:ff_dev_create+0xf7/0x2e0 [fmc_fakedev] Code: 00 e8 4d 2d a7 f6 ba c0 0c 00 00 48 c7 c7 00 20 15 c1 be e8 04 00 00 e8 e7 8e c7 f6 48 8d b8 a8 04 00 00 48 89 fa 48 c1 ea 03 <80> 3c 1a 00 0f 85 90 01 00 00 48 8d 78 50 4c 89 b0 a8 04 00 00 48 RSP: 0018:8881ea7a78e8 EFLAGS: 00010206 RAX: RBX: dc00 RCX: 815c9540 RDX: 0095 RSI: c900013ec000 RDI: 04a8 RBP: R08: ed103ee458b8 R09: ed103ee458b8 R10: 0001 R11: ed103ee458b7 R12: 8881e4865d80 R13: dc00 R14: 8881e4865da0 R15: c115b0b0 FS: 7fb08a226700() GS:8881f720() knlGS: CS: 0010 DS: ES: CR0: 80050033 CR2: 7f6bd5a37890 CR3: 0001c5632006 CR4: 007606f0 DR0: DR1: DR2: DR3: DR6: fffe0ff0 DR7: 0400 PKRU: 5554 Call Trace: ff_init+0x10b/0x3a0 [fmc_fakedev] do_one_initcall+0xbc/0x47d init/main.c:887 do_init_module+0x1b5/0x547 kernel/module.c:3456 load_module+0x6405/0x8c10 kernel/module.c:3804 __do_sys_finit_module+0x162/0x190 kernel/module.c:3898 do_syscall_64+0x9f/0x450 arch/x86/entry/common.c:290 entry_SYSCALL_64_after_hwframe+0x49/0xbe RIP: 0033:0x462e99 Code: f7 d8 64 89 02 b8 ff ff ff ff c3 66 0f 1f 44 00 00 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 c7 c1 bc ff ff ff f7 d8 64 89 01 48 RSP: 002b:7fb08a225c58 EFLAGS: 0246 ORIG_RAX: 0139 RAX: ffda RBX: 0073bf00 RCX: 00462e99 RDX: RSI: 2100 RDI: 0003 RBP: 7fb08a225c70 R08: R09: R10: R11: 0246 R12: 7fb08a2266bc R13: 004bcefa R14: 006f6fb0 R15: 0004 Modules linked in: fmc_fakedev(+) fmc iptable_security iptable_raw iptable_mangle iptable_nat nf_nat nf_conntrack nf_defrag_ipv6 nf_defrag_ipv4 iptable_filter bpfilter ip6_vti ip_vti ip_gre ipip sit tunnel4 ip_tunnel hsr veth netdevsim vxcan batman_adv cfg80211 rfkill chnl_net caif nlmon dummy team bonding vcan bridge stp llc ip6_gre gre ip6_tunnel tunnel6 tun joydev mousedev ppdev tpm kvm_intel kvm irqbypass crct10dif_pclmul crc32_pclmul crc32c_intel ghash_clmulni_intel aesni_intel ide_pci_generic piix aes_x86_64 crypto_simd cryptd ide_core psmouse glue_helper input_leds intel_agp serio_raw intel_gtt i2c_piix4 ata_generic agpgart pata_acpi rtc_cmos parport_pc floppy parport sch_fq_codel ip_tables x_tables sha1_ssse3 sha1_generic ipv6 [last unloaded: lib80211] Dumping ftrace buffer: (ftrace buffer empty) ---[ end trace 297e0e50d0ab9883 ]--- If kmemdup failed, we should rollback all the alloced resources. Reported-by: Hulk Robot Fixes: 6c62a895e572 ("FMC: add a software carrier driver") Signed-off-by: YueHaibing --- drivers/fmc/fmc-fakedev.c | 18 ++ 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/drivers/fmc/fmc-fakedev.c b/drivers/fmc/fmc-fakedev.c index 941d093..43d99fe 100644 --- a/drivers/fmc/fmc-fakedev.c +++ b/drivers/fmc/fmc-fakedev.c @@ -273,15 +273,18 @@ static struct ff_dev *ff_dev_create(void) ff->dev.release = ff_dev_release; ret = device_register(&ff->dev); - if (ret < 0) { - put_device(&ff->dev); - return ERR_PTR(ret); - } + if (ret < 0) + goto failed_register; /* Create fmc structures that refer to this new "hw" device */ for (i = 0; i < ff_nr_dev; i++) { fmc = kmemdup(&ff_template_fmc, sizeof(ff_template_fmc), GFP_KERNEL); + if (!fmc) { + ret = -ENOMEM + goto free_fmc; + } + fmc->hwdev = &ff->dev; fmc->carrier_data = ff; fmc->nr_slots = ff_nr_dev; @@ -294,6 +297,13 @@ static struct ff_dev *ff_dev_create(void) ff_template_fmc.device_id++; } return ff; + +free_fmc: + for (i--; i >= 0; i--) + kfree(ff->fmc[i]); +failed_register: + put_device(&ff->dev); + return ERR_PTR(ret); } /* init and exit */ -- 2.7.4
[PATCH] spi: bcm2835aux: Fix build error without CONFIG_DEBUG_FS
From: YueHaibing When building CONFIG_DEBUG_FS is not set gcc warn this: drivers/spi/spi-bcm2835aux.c: In function bcm2835aux_spi_probe: drivers/spi/spi-bcm2835aux.c:591:2: error: too many arguments to function bcm2835aux_debugfs_create bcm2835aux_debugfs_create(bs, dev_name(&pdev->dev)); ^ drivers/spi/spi-bcm2835aux.c:145:13: note: declared here static void bcm2835aux_debugfs_create(struct bcm2835aux_spi *bs) Reported-by: Hulk Robot Fixes: 8048d151eb4d ("spi: bcm2835aux: add driver stats to debugfs") Signed-off-by: YueHaibing --- drivers/spi/spi-bcm2835aux.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/spi/spi-bcm2835aux.c b/drivers/spi/spi-bcm2835aux.c index fd8252d..bbf87ad 100644 --- a/drivers/spi/spi-bcm2835aux.c +++ b/drivers/spi/spi-bcm2835aux.c @@ -142,7 +142,8 @@ static void bcm2835aux_debugfs_remove(struct bcm2835aux_spi *bs) bs->debugfs_dir = NULL; } #else -static void bcm2835aux_debugfs_create(struct bcm2835aux_spi *bs) +static void bcm2835aux_debugfs_create(struct bcm2835aux_spi *bs, + const char *dname) { } -- 2.7.4
[PATCH v2] gpio: merrifield: Fix build err without CONFIG_ACPI
From: YueHaibing When building CONFIG_ACPI is not set gcc warn this: drivers/gpio/gpio-merrifield.c: In function mrfld_gpio_get_pinctrl_dev_name: drivers/gpio/gpio-merrifield.c:388:19: error: dereferencing pointer to incomplete type struct acpi_device put_device(&adev->dev); ^ Reported-by: Hulk Robot Suggested-by: Andy Shevchenko Fixes:d00d2109c367 ("gpio: merrifield: Convert to use acpi_dev_get_first_match_dev()") Signed-off-by: YueHaibing --- v2: rework patch use put_acpi_device helper --- drivers/gpio/gpio-merrifield.c | 2 +- include/linux/acpi.h | 7 +++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/drivers/gpio/gpio-merrifield.c b/drivers/gpio/gpio-merrifield.c index 2383dc7..99ca18c 100644 --- a/drivers/gpio/gpio-merrifield.c +++ b/drivers/gpio/gpio-merrifield.c @@ -385,7 +385,7 @@ static const char *mrfld_gpio_get_pinctrl_dev_name(struct mrfld_gpio *priv) adev = acpi_dev_get_first_match_dev("INTC1002", NULL, -1); if (adev) { name = devm_kstrdup(priv->dev, acpi_dev_name(adev), GFP_KERNEL); - put_device(&adev->dev); + put_acpi_device(adev); } else { name = "pinctrl-merrifield"; } diff --git a/include/linux/acpi.h b/include/linux/acpi.h index a1bd789..2563e13 100644 --- a/include/linux/acpi.h +++ b/include/linux/acpi.h @@ -1331,12 +1331,19 @@ static inline int find_acpi_cpu_cache_topology(unsigned int cpu, int level) #ifdef CONFIG_ACPI extern int acpi_platform_notify(struct device *dev, enum kobject_action action); + +static inline void put_acpi_device(struct acpi_device *adev) +{ + put_device(&adev->dev); +} #else static inline int acpi_platform_notify(struct device *dev, enum kobject_action action) { return 0; } + +static inline void put_acpi_device(struct acpi_device *adev) {} #endif #endif /*_LINUX_ACPI_H*/ -- 2.7.4
[PATCH v2] extcon: axp288: Add a depends on ACPI to the Kconfig entry
From: YueHaibing As Hans de Goede pointed, using this driver without ACPI makes little sense, so add ACPI dependency to Kconfig entry to fix a build error while CONFIG_ACPI is not set. drivers/extcon/extcon-axp288.c: In function 'axp288_extcon_probe': drivers/extcon/extcon-axp288.c:363:20: error: dereferencing pointer to incomplete type put_device(&adev->dev); Fixes: 0cf064db948a ("extcon: axp288: Convert to use acpi_dev_get_first_match_dev()") Reported-by: Hulk Robot Suggested-by: Hans de Goede Signed-off-by: YueHaibing --- v2: rework patch --- drivers/extcon/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/extcon/Kconfig b/drivers/extcon/Kconfig index 1ed4b45..de06faf 100644 --- a/drivers/extcon/Kconfig +++ b/drivers/extcon/Kconfig @@ -30,7 +30,7 @@ config EXTCON_ARIZONA config EXTCON_AXP288 tristate "X-Power AXP288 EXTCON support" - depends on MFD_AXP20X && USB_SUPPORT && X86 + depends on MFD_AXP20X && USB_SUPPORT && X86 && ACPI select USB_ROLE_SWITCH help Say Y here to enable support for USB peripheral detection -- 2.7.4
[PATCH -next] mtd: rawnand: ingenic: Add missing MODULE_* information
From: YueHaibing gcc warning this: WARNING: modpost: missing MODULE_LICENSE() in drivers/mtd/nand/raw/ingenic/ingenic_ecc.o Add MODULE_LICENSE,MODULE_AUTHOR and MODULE_DESCRIPTION. Reported-by: Hulk Robot Fixes: 9df5741a577e ("mtd: rawnand: ingenic: Separate top-level and SoC specific code") Signed-off-by: YueHaibing --- drivers/mtd/nand/raw/ingenic/ingenic_ecc.c | 5 + 1 file changed, 5 insertions(+) diff --git a/drivers/mtd/nand/raw/ingenic/ingenic_ecc.c b/drivers/mtd/nand/raw/ingenic/ingenic_ecc.c index 7b07a6a..77e996e 100644 --- a/drivers/mtd/nand/raw/ingenic/ingenic_ecc.c +++ b/drivers/mtd/nand/raw/ingenic/ingenic_ecc.c @@ -158,3 +158,8 @@ int ingenic_ecc_probe(struct platform_device *pdev) return 0; } EXPORT_SYMBOL(ingenic_ecc_probe); + +MODULE_AUTHOR("Alex Smith "); +MODULE_AUTHOR("Harvey Hunt "); +MODULE_DESCRIPTION("Ingenic ECC common driver"); +MODULE_LICENSE("GPL v2"); -- 2.7.0
[PATCH] extcon: axp288: Fix build err without CONFIG_ACPI
From: YueHaibing When building CONFIG_ACPI is not set gcc warn this: drivers/extcon/extcon-axp288.c: In function 'axp288_extcon_probe': drivers/extcon/extcon-axp288.c:363:20: error: dereferencing pointer to incomplete type put_device(&adev->dev); Reported-by: Hulk Robot Fixes: 0cf064db948a ("extcon: axp288: Convert to use acpi_dev_get_first_match_dev()") Signed-off-by: YueHaibing --- drivers/extcon/extcon-axp288.c | 8 +--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/drivers/extcon/extcon-axp288.c b/drivers/extcon/extcon-axp288.c index 50f9402..ed8ac3f 100644 --- a/drivers/extcon/extcon-axp288.c +++ b/drivers/extcon/extcon-axp288.c @@ -333,7 +333,6 @@ static int axp288_extcon_probe(struct platform_device *pdev) struct axp288_extcon_info *info; struct axp20x_dev *axp20x = dev_get_drvdata(pdev->dev.parent); struct device *dev = &pdev->dev; - struct acpi_device *adev; int ret, i, pirq; info = devm_kzalloc(&pdev->dev, sizeof(*info), GFP_KERNEL); @@ -357,6 +356,8 @@ static int axp288_extcon_probe(struct platform_device *pdev) if (ret) return ret; +#ifdef CONFIG_ACPI + struct acpi_device *adev; adev = acpi_dev_get_first_match_dev("INT3496", NULL, -1); if (adev) { info->id_extcon = extcon_get_extcon_dev(acpi_dev_name(adev)); @@ -365,9 +366,10 @@ static int axp288_extcon_probe(struct platform_device *pdev) return -EPROBE_DEFER; dev_info(dev, "controlling USB role\n"); - } else { - dev_info(dev, "controlling USB role based on Vbus presence\n"); } +#else + dev_info(dev, "controlling USB role based on Vbus presence\n"); +#endif } info->vbus_attach = axp288_get_vbus_attach(info); -- 2.7.4
[PATCH] gpio: merrifield: Fix build err without CONFIG_ACPI
From: YueHaibing When building CONFIG_ACPI is not set gcc warn this: drivers/gpio/gpio-merrifield.c: In function mrfld_gpio_get_pinctrl_dev_name: drivers/gpio/gpio-merrifield.c:388:19: error: dereferencing pointer to incomplete type struct acpi_device put_device(&adev->dev); ^ Reported-by: Hulk Robot Fixes:d00d2109c367 ("gpio: merrifield: Convert to use acpi_dev_get_first_match_dev()") Signed-off-by: YueHaibing --- drivers/gpio/gpio-merrifield.c | 9 + 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/drivers/gpio/gpio-merrifield.c b/drivers/gpio/gpio-merrifield.c index 2383dc7..78ac32f 100644 --- a/drivers/gpio/gpio-merrifield.c +++ b/drivers/gpio/gpio-merrifield.c @@ -379,17 +379,18 @@ static void mrfld_irq_init_hw(struct mrfld_gpio *priv) static const char *mrfld_gpio_get_pinctrl_dev_name(struct mrfld_gpio *priv) { - struct acpi_device *adev; const char *name; +#ifdef CONFIG_ACPI + struct acpi_device *adev; adev = acpi_dev_get_first_match_dev("INTC1002", NULL, -1); if (adev) { name = devm_kstrdup(priv->dev, acpi_dev_name(adev), GFP_KERNEL); put_device(&adev->dev); - } else { - name = "pinctrl-merrifield"; } - +#else + name = "pinctrl-merrifield"; +#endif return name; } -- 2.7.4
[PATCH -next] ibmvnic: remove set but not used variable 'netdev'
From: YueHaibing Fixes gcc '-Wunused-but-set-variable' warning: drivers/net/ethernet/ibm/ibmvnic.c: In function '__ibmvnic_reset': drivers/net/ethernet/ibm/ibmvnic.c:1971:21: warning: variable 'netdev' set but not used [-Wunused-but-set-variable] It's never used since introduction in commit ed651a10875f ("ibmvnic: Updated reset handling") Signed-off-by: YueHaibing --- drivers/net/ethernet/ibm/ibmvnic.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/drivers/net/ethernet/ibm/ibmvnic.c b/drivers/net/ethernet/ibm/ibmvnic.c index 25b8e04..20c4e08 100644 --- a/drivers/net/ethernet/ibm/ibmvnic.c +++ b/drivers/net/ethernet/ibm/ibmvnic.c @@ -1968,13 +1968,11 @@ static void __ibmvnic_reset(struct work_struct *work) { struct ibmvnic_rwi *rwi; struct ibmvnic_adapter *adapter; - struct net_device *netdev; bool we_lock_rtnl = false; u32 reset_state; int rc = 0; adapter = container_of(work, struct ibmvnic_adapter, ibmvnic_reset); - netdev = adapter->netdev; /* netif_set_real_num_xx_queues needs to take rtnl lock here * unless wait_for_reset is set, in which case the rtnl lock -- 2.7.0
[PATCH v2] ASoC: Mediatek: MT8183: Fix build error in mt8183_da7219_max98357_dev_probe
From: YueHaibing When building CONFIG_SND_SOC_MT8183_DA7219_MAX98357A=m gcc warn this: sound/soc/mediatek/mt8183/mt8183-da7219-max98357.c: In function mt8183_da7219_max98357_dev_probe: sound/soc/mediatek/mt8183/mt8183-da7219-max98357.c:413:13: error: struct snd_soc_dai_link has no member named platform; did you mean platforms? dai_link->platform = NULL; ^~~~ platforms use 'dai_link->platforms' instead of 'dai_link->platform'. Fixes: 11c0269017b2 ("ASoC: Mediatek: MT8183: Add machine driver with TS3A227") Signed-off-by: YueHaibing --- v2: use correct build log --- sound/soc/mediatek/mt8183/mt8183-da7219-max98357.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sound/soc/mediatek/mt8183/mt8183-da7219-max98357.c b/sound/soc/mediatek/mt8183/mt8183-da7219-max98357.c index 9353665..1e7e8ae 100644 --- a/sound/soc/mediatek/mt8183/mt8183-da7219-max98357.c +++ b/sound/soc/mediatek/mt8183/mt8183-da7219-max98357.c @@ -410,7 +410,7 @@ static int mt8183_da7219_max98357_dev_probe(struct platform_device *pdev) * the "platform" will not null when probe is trying * again. It's not expected normally. */ - dai_link->platform = NULL; + dai_link->platforms = NULL; if (dai_link->platform_name) continue; -- 2.7.0
[PATCH] ASoC: Mediatek: MT8183: Fix build error in mt8183_da7219_max98357_dev_probe
From: YueHaibing When building CONFIG_SND_SOC_MT8183_DA7219_MAX98357A=m gcc warn this: sound/soc/mediatek/mt8183/mt8183-mt6358-ts3a227-max98357.c: In function mt8183_mt6358_ts3a227_max98357_dev_probe: sound/soc/mediatek/mt8183/mt8183-mt6358-ts3a227-max98357.c:325:13: error: struct snd_soc_dai_link has no member named platform; did you mean platforms? dai_link->platform = NULL; ^~~~ platforms use 'dai_link->platforms' instead of 'dai_link->platform'. Fixes: 11c0269017b2 ("ASoC: Mediatek: MT8183: Add machine driver with TS3A227") Signed-off-by: YueHaibing --- sound/soc/mediatek/mt8183/mt8183-da7219-max98357.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sound/soc/mediatek/mt8183/mt8183-da7219-max98357.c b/sound/soc/mediatek/mt8183/mt8183-da7219-max98357.c index 9353665..1e7e8ae 100644 --- a/sound/soc/mediatek/mt8183/mt8183-da7219-max98357.c +++ b/sound/soc/mediatek/mt8183/mt8183-da7219-max98357.c @@ -410,7 +410,7 @@ static int mt8183_da7219_max98357_dev_probe(struct platform_device *pdev) * the "platform" will not null when probe is trying * again. It's not expected normally. */ - dai_link->platform = NULL; + dai_link->platforms = NULL; if (dai_link->platform_name) continue; -- 2.7.0
[PATCH -next] clocksource: mips-gic-timer: Make gic_compare_irqaction static
From: YueHaibing Fix sparse warning: drivers/clocksource/mips-gic-timer.c:70:18: warning: symbol 'gic_compare_irqaction' was not declared. Should it be static? Signed-off-by: YueHaibing --- drivers/clocksource/mips-gic-timer.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/clocksource/mips-gic-timer.c b/drivers/clocksource/mips-gic-timer.c index 54f8a33..37671a5 100644 --- a/drivers/clocksource/mips-gic-timer.c +++ b/drivers/clocksource/mips-gic-timer.c @@ -67,7 +67,7 @@ static irqreturn_t gic_compare_interrupt(int irq, void *dev_id) return IRQ_HANDLED; } -struct irqaction gic_compare_irqaction = { +static struct irqaction gic_compare_irqaction = { .handler = gic_compare_interrupt, .percpu_dev_id = &gic_clockevent_device, .flags = IRQF_PERCPU | IRQF_TIMER, -- 2.7.0
[PATCH -next] clocksource: timer-ti-dm: Make omap_dm_timer_set_load_start static
From: YueHaibing Fix sparse warning: drivers/clocksource/timer-ti-dm.c:589:5: warning: symbol 'omap_dm_timer_set_load_start' was not declared. Should it be static? Signed-off-by: YueHaibing --- drivers/clocksource/timer-ti-dm.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/clocksource/timer-ti-dm.c b/drivers/clocksource/timer-ti-dm.c index c364027..3352da6 100644 --- a/drivers/clocksource/timer-ti-dm.c +++ b/drivers/clocksource/timer-ti-dm.c @@ -586,8 +586,8 @@ static int omap_dm_timer_set_load(struct omap_dm_timer *timer, int autoreload, } /* Optimized set_load which removes costly spin wait in timer_start */ -int omap_dm_timer_set_load_start(struct omap_dm_timer *timer, int autoreload, -unsigned int load) +static int omap_dm_timer_set_load_start(struct omap_dm_timer *timer, + int autoreload, unsigned int load) { u32 l; -- 2.7.0
[PATCH -next] clocksource: tcb_clksrc: Make tc_clksrc_suspend and tc_clksrc_resume static
From: YueHaibing Fix sparse warnings: drivers/clocksource/tcb_clksrc.c:74:6: warning: symbol 'tc_clksrc_suspend' was not declared. Should it be static? drivers/clocksource/tcb_clksrc.c:89:6: warning: symbol 'tc_clksrc_resume' was not declared. Should it be static? Signed-off-by: YueHaibing --- drivers/clocksource/tcb_clksrc.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/clocksource/tcb_clksrc.c b/drivers/clocksource/tcb_clksrc.c index 43f4d5c..f987027 100644 --- a/drivers/clocksource/tcb_clksrc.c +++ b/drivers/clocksource/tcb_clksrc.c @@ -71,7 +71,7 @@ static u64 tc_get_cycles32(struct clocksource *cs) return readl_relaxed(tcaddr + ATMEL_TC_REG(0, CV)); } -void tc_clksrc_suspend(struct clocksource *cs) +static void tc_clksrc_suspend(struct clocksource *cs) { int i; @@ -86,7 +86,7 @@ void tc_clksrc_suspend(struct clocksource *cs) bmr_cache = readl(tcaddr + ATMEL_TC_BMR); } -void tc_clksrc_resume(struct clocksource *cs) +static void tc_clksrc_resume(struct clocksource *cs) { int i; -- 2.7.0
[PATCH -next] clocksource: clps711x: Make clps711x_clksrc_init static
From: YueHaibing Fix sparse warning: drivers/clocksource/clps711x-timer.c:96:13: warning: symbol 'clps711x_clksrc_init' was not declared. Should it be static? Signed-off-by: YueHaibing --- drivers/clocksource/clps711x-timer.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/drivers/clocksource/clps711x-timer.c b/drivers/clocksource/clps711x-timer.c index a8dd805..cdc2515 100644 --- a/drivers/clocksource/clps711x-timer.c +++ b/drivers/clocksource/clps711x-timer.c @@ -93,8 +93,9 @@ static int __init _clps711x_clkevt_init(struct clk *clock, void __iomem *base, "clps711x-timer", clkevt); } -void __init clps711x_clksrc_init(void __iomem *tc1_base, void __iomem *tc2_base, -unsigned int irq) +static void __init clps711x_clksrc_init(void __iomem *tc1_base, + void __iomem *tc2_base, + unsigned int irq) { struct clk *tc1 = clk_get_sys("clps711x-timer.0", NULL); struct clk *tc2 = clk_get_sys("clps711x-timer.1", NULL); -- 2.7.0
[PATCH -next] sched/core: Make some functions static
From: YueHaibing Fix sparse warnings: kernel/sched/core.c:6576:11: warning: symbol 'max_cfs_quota_period' was not declared. Should it be static? kernel/sched/core.c:6577:11: warning: symbol 'min_cfs_quota_period' was not declared. Should it be static? kernel/sched/core.c:6657:5: warning: symbol 'tg_set_cfs_quota' was not declared. Should it be static? kernel/sched/core.c:6670:6: warning: symbol 'tg_get_cfs_quota' was not declared. Should it be static? kernel/sched/core.c:6683:5: warning: symbol 'tg_set_cfs_period' was not declared. Should it be static? kernel/sched/core.c:6693:6: warning: symbol 'tg_get_cfs_period' was not declared. Should it be static? Signed-off-by: YueHaibing --- kernel/sched/core.c | 12 ++-- 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/kernel/sched/core.c b/kernel/sched/core.c index 4778c48..5ddab2f 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c @@ -6573,8 +6573,8 @@ static u64 cpu_shares_read_u64(struct cgroup_subsys_state *css, #ifdef CONFIG_CFS_BANDWIDTH static DEFINE_MUTEX(cfs_constraints_mutex); -const u64 max_cfs_quota_period = 1 * NSEC_PER_SEC; /* 1s */ -const u64 min_cfs_quota_period = 1 * NSEC_PER_MSEC; /* 1ms */ +static const u64 max_cfs_quota_period = 1 * NSEC_PER_SEC; /* 1s */ +static const u64 min_cfs_quota_period = 1 * NSEC_PER_MSEC; /* 1ms */ static int __cfs_schedulable(struct task_group *tg, u64 period, u64 runtime); @@ -6654,7 +6654,7 @@ static int tg_set_cfs_bandwidth(struct task_group *tg, u64 period, u64 quota) return ret; } -int tg_set_cfs_quota(struct task_group *tg, long cfs_quota_us) +static int tg_set_cfs_quota(struct task_group *tg, long cfs_quota_us) { u64 quota, period; @@ -6667,7 +6667,7 @@ int tg_set_cfs_quota(struct task_group *tg, long cfs_quota_us) return tg_set_cfs_bandwidth(tg, period, quota); } -long tg_get_cfs_quota(struct task_group *tg) +static long tg_get_cfs_quota(struct task_group *tg) { u64 quota_us; @@ -6680,7 +6680,7 @@ long tg_get_cfs_quota(struct task_group *tg) return quota_us; } -int tg_set_cfs_period(struct task_group *tg, long cfs_period_us) +static int tg_set_cfs_period(struct task_group *tg, long cfs_period_us) { u64 quota, period; @@ -6690,7 +6690,7 @@ int tg_set_cfs_period(struct task_group *tg, long cfs_period_us) return tg_set_cfs_bandwidth(tg, period, quota); } -long tg_get_cfs_period(struct task_group *tg) +static long tg_get_cfs_period(struct task_group *tg) { u64 cfs_period_us; -- 2.7.0
[PATCH -next] sched/fair: Make some functions static
From: YueHaibing Fix sparse warnings: kernel/sched/fair.c:2596:6: warning: symbol 'task_tick_numa' was not declared. Should it be static? kernel/sched/fair.c:3570:6: warning: symbol 'sync_entity_load_avg' was not declared. Should it be static? kernel/sched/fair.c:3583:6: warning: symbol 'remove_entity_load_avg' was not declared. Should it be static? Signed-off-by: YueHaibing --- kernel/sched/fair.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c index fdab7eb..18fb781 100644 --- a/kernel/sched/fair.c +++ b/kernel/sched/fair.c @@ -2593,7 +2593,7 @@ void task_numa_work(struct callback_head *work) /* * Drive the periodic memory faults.. */ -void task_tick_numa(struct rq *rq, struct task_struct *curr) +static void task_tick_numa(struct rq *rq, struct task_struct *curr) { struct callback_head *work = &curr->numa_work; u64 period, now; @@ -3567,7 +3567,7 @@ static inline u64 cfs_rq_last_update_time(struct cfs_rq *cfs_rq) * Synchronize entity load avg of dequeued entity without locking * the previous rq. */ -void sync_entity_load_avg(struct sched_entity *se) +static void sync_entity_load_avg(struct sched_entity *se) { struct cfs_rq *cfs_rq = cfs_rq_of(se); u64 last_update_time; @@ -3580,7 +3580,7 @@ void sync_entity_load_avg(struct sched_entity *se) * Task first catches up with cfs_rq, and then subtract * itself from the cfs_rq (task must be off the queue now). */ -void remove_entity_load_avg(struct sched_entity *se) +static void remove_entity_load_avg(struct sched_entity *se) { struct cfs_rq *cfs_rq = cfs_rq_of(se); unsigned long flags; -- 2.7.0
[PATCH -next] rcu/tree: Make rcu_check_gp_start_stall static
From: YueHaibing Fix sparse warning: kernel/rcu/tree.c:2643:1: warning: symbol 'rcu_check_gp_start_stall' was not declared. Should it be static? Signed-off-by: YueHaibing --- kernel/rcu/tree.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/kernel/rcu/tree.c b/kernel/rcu/tree.c index acd6ccf..ed3ef40 100644 --- a/kernel/rcu/tree.c +++ b/kernel/rcu/tree.c @@ -2639,7 +2639,7 @@ EXPORT_SYMBOL_GPL(rcu_force_quiescent_state); * This function checks for grace-period requests that fail to motivate * RCU to come out of its idle mode. */ -void +static void rcu_check_gp_start_stall(struct rcu_node *rnp, struct rcu_data *rdp, const unsigned long gpssdelay) { -- 2.7.0
[PATCH -next] mmc: sdhci-omap: Make sdhci_omap_reset static
From: YueHaibing Fix sparse warning: drivers/mmc/host/sdhci-omap.c:788:6: warning: symbol 'sdhci_omap_reset' was not declared. Should it be static? Signed-off-by: YueHaibing --- drivers/mmc/host/sdhci-omap.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/mmc/host/sdhci-omap.c b/drivers/mmc/host/sdhci-omap.c index 5bbed47..649c03f 100644 --- a/drivers/mmc/host/sdhci-omap.c +++ b/drivers/mmc/host/sdhci-omap.c @@ -785,7 +785,7 @@ static void sdhci_omap_set_uhs_signaling(struct sdhci_host *host, sdhci_omap_start_clock(omap_host); } -void sdhci_omap_reset(struct sdhci_host *host, u8 mask) +static void sdhci_omap_reset(struct sdhci_host *host, u8 mask) { struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); struct sdhci_omap_host *omap_host = sdhci_pltfm_priv(pltfm_host); -- 2.7.0
[PATCH -next] mfd: stpmic1: Make stpmic1_regmap_config static
From: YueHaibing Fix sparse warning: drivers/mfd/stpmic1.c:62:28: warning: symbol 'stpmic1_regmap_config' was not declared. Should it be static? Signed-off-by: YueHaibing --- drivers/mfd/stpmic1.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/mfd/stpmic1.c b/drivers/mfd/stpmic1.c index 7dfbe89..eb3da55 100644 --- a/drivers/mfd/stpmic1.c +++ b/drivers/mfd/stpmic1.c @@ -59,7 +59,7 @@ static const struct regmap_access_table stpmic1_volatile_table = { .n_yes_ranges = ARRAY_SIZE(stpmic1_volatile_ranges), }; -const struct regmap_config stpmic1_regmap_config = { +static const struct regmap_config stpmic1_regmap_config = { .reg_bits = 8, .val_bits = 8, .cache_type = REGCACHE_RBTREE, -- 2.7.0
[PATCH -next] selinux: Make selinux_kernfs_init_security static
From: YueHaibing Fix sparse warning: security/selinux/hooks.c:3389:5: warning: symbol 'selinux_kernfs_init_security' was not declared. Should it be static? Signed-off-by: YueHaibing --- security/selinux/hooks.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/security/selinux/hooks.c b/security/selinux/hooks.c index ab4b049..b6e6152 100644 --- a/security/selinux/hooks.c +++ b/security/selinux/hooks.c @@ -3386,8 +3386,8 @@ static int selinux_inode_copy_up_xattr(const char *name) /* kernfs node operations */ -int selinux_kernfs_init_security(struct kernfs_node *kn_dir, -struct kernfs_node *kn) +static int selinux_kernfs_init_security(struct kernfs_node *kn_dir, + struct kernfs_node *kn) { const struct task_security_struct *tsec = current_security(); u32 parent_sid, newsid, clen; -- 2.7.0
[PATCH -next] uio: uio_fsl_elbc_gpcm: Make dev_attr_reg_br and dev_attr_reg_or static
From: YueHaibing Fix sparse warnings: drivers/uio/uio_fsl_elbc_gpcm.c:71:1: warning: symbol 'dev_attr_reg_br' was not declared. Should it be static? drivers/uio/uio_fsl_elbc_gpcm.c:72:1: warning: symbol 'dev_attr_reg_or' was not declared. Should it be static? Signed-off-by: YueHaibing --- drivers/uio/uio_fsl_elbc_gpcm.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/uio/uio_fsl_elbc_gpcm.c b/drivers/uio/uio_fsl_elbc_gpcm.c index 0ee3cd3..c112727 100644 --- a/drivers/uio/uio_fsl_elbc_gpcm.c +++ b/drivers/uio/uio_fsl_elbc_gpcm.c @@ -68,8 +68,8 @@ static ssize_t reg_show(struct device *dev, struct device_attribute *attr, static ssize_t reg_store(struct device *dev, struct device_attribute *attr, const char *buf, size_t count); -DEVICE_ATTR(reg_br, S_IRUGO|S_IWUSR|S_IWGRP, reg_show, reg_store); -DEVICE_ATTR(reg_or, S_IRUGO|S_IWUSR|S_IWGRP, reg_show, reg_store); +static DEVICE_ATTR(reg_br, 0664, reg_show, reg_store); +static DEVICE_ATTR(reg_or, 0664, reg_show, reg_store); static ssize_t reg_show(struct device *dev, struct device_attribute *attr, char *buf) -- 2.7.0
[PATCH -next] coresight: catu: Make catu_helper_ops and catu_ops static
From: YueHaibing Fix sparse warnings: drivers/hwtracing/coresight/coresight-catu.c:488:35: warning: symbol 'catu_helper_ops' was not declared. Should it be static? drivers/hwtracing/coresight/coresight-catu.c:493:28: warning: symbol 'catu_ops' was not declared. Should it be static? Signed-off-by: YueHaibing --- drivers/hwtracing/coresight/coresight-catu.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/hwtracing/coresight/coresight-catu.c b/drivers/hwtracing/coresight/coresight-catu.c index 170fbb6..057627a 100644 --- a/drivers/hwtracing/coresight/coresight-catu.c +++ b/drivers/hwtracing/coresight/coresight-catu.c @@ -485,12 +485,12 @@ static int catu_disable(struct coresight_device *csdev, void *__unused) return rc; } -const struct coresight_ops_helper catu_helper_ops = { +static const struct coresight_ops_helper catu_helper_ops = { .enable = catu_enable, .disable = catu_disable, }; -const struct coresight_ops catu_ops = { +static const struct coresight_ops catu_ops = { .helper_ops = &catu_helper_ops, }; -- 2.7.0
[PATCH -next] spi: atmel-quadspi: Make atmel_qspi_get_name static
From: YueHaibing Fix sparse warning: drivers/spi/atmel-quadspi.c:369:12: warning: symbol 'atmel_qspi_get_name' was not declared. Should it be static? Signed-off-by: YueHaibing --- drivers/spi/atmel-quadspi.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/spi/atmel-quadspi.c b/drivers/spi/atmel-quadspi.c index fffc21c..e541097 100644 --- a/drivers/spi/atmel-quadspi.c +++ b/drivers/spi/atmel-quadspi.c @@ -366,7 +366,7 @@ static int atmel_qspi_exec_op(struct spi_mem *mem, const struct spi_mem_op *op) return err; } -const char *atmel_qspi_get_name(struct spi_mem *spimem) +static const char *atmel_qspi_get_name(struct spi_mem *spimem) { return dev_name(spimem->spi->dev.parent); } -- 2.7.0
[PATCH -next] irqchip/irq-mvebu-sei: Make mvebu_sei_ap806_caps static
From: YueHaibing Fix sparse warning: drivers/irqchip/irq-mvebu-sei.c:481:23: warning: symbol 'mvebu_sei_ap806_caps' was not declared. Should it be static? Signed-off-by: YueHaibing --- drivers/irqchip/irq-mvebu-sei.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/irqchip/irq-mvebu-sei.c b/drivers/irqchip/irq-mvebu-sei.c index add4c9c..18832cc 100644 --- a/drivers/irqchip/irq-mvebu-sei.c +++ b/drivers/irqchip/irq-mvebu-sei.c @@ -478,7 +478,7 @@ static int mvebu_sei_probe(struct platform_device *pdev) return ret; } -struct mvebu_sei_caps mvebu_sei_ap806_caps = { +static struct mvebu_sei_caps mvebu_sei_ap806_caps = { .ap_range = { .first = 0, .size = 21, -- 2.7.0
[PATCH -next] pinctrl: artpec6: Make two functions static
From: YueHaibing Fix sparse warnings: drivers/pinctrl/pinctrl-artpec6.c:691:5: warning: symbol 'artpec6_pmx_enable' was not declared. Should it be static? drivers/pinctrl/pinctrl-artpec6.c:705:6: warning: symbol 'artpec6_pmx_disable' was not declared. Should it be static? Signed-off-by: YueHaibing --- drivers/pinctrl/pinctrl-artpec6.c | 10 ++ 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/drivers/pinctrl/pinctrl-artpec6.c b/drivers/pinctrl/pinctrl-artpec6.c index d89dc43..e836850 100644 --- a/drivers/pinctrl/pinctrl-artpec6.c +++ b/drivers/pinctrl/pinctrl-artpec6.c @@ -688,8 +688,9 @@ static void artpec6_pmx_select_func(struct pinctrl_dev *pctldev, } } -int artpec6_pmx_enable(struct pinctrl_dev *pctldev, unsigned int function, - unsigned int group) +static int artpec6_pmx_enable(struct pinctrl_dev *pctldev, + unsigned int function, + unsigned int group) { struct artpec6_pmx *pmx = pinctrl_dev_get_drvdata(pctldev); @@ -702,8 +703,9 @@ int artpec6_pmx_enable(struct pinctrl_dev *pctldev, unsigned int function, return 0; } -void artpec6_pmx_disable(struct pinctrl_dev *pctldev, unsigned int function, -unsigned int group) +static void artpec6_pmx_disable(struct pinctrl_dev *pctldev, + unsigned int function, + unsigned int group) { struct artpec6_pmx *pmx = pinctrl_dev_get_drvdata(pctldev); -- 2.7.0
[PATCH] parport_cs: Fix memory leak in parport_config
From: YueHaibing parport_probe() alloc parport device 'info', but while parport_config failed it does not free it. Signed-off-by: YueHaibing --- drivers/parport/parport_cs.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/drivers/parport/parport_cs.c b/drivers/parport/parport_cs.c index e9b52e4..e77044c2 100644 --- a/drivers/parport/parport_cs.c +++ b/drivers/parport/parport_cs.c @@ -158,8 +158,9 @@ static int parport_config(struct pcmcia_device *link) return 0; failed: -parport_cs_release(link); -return -ENODEV; + parport_cs_release(link); + kfree(link->priv); + return -ENODEV; } /* parport_config */ static void parport_cs_release(struct pcmcia_device *link) -- 2.7.0
[PATCH v2 2/2] perf cs-etm: return errcode in cs_etm__process_auxtrace_info()
From: YueHaibing 'err' is set in err path, but it's not returned to callers. Don't always return -EINVAL, return err. Fixes: cd8bfd8c973e ("perf tools: Add processing of coresight metadata") Signed-off-by: YueHaibing --- tools/perf/util/cs-etm.c | 10 +++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/tools/perf/util/cs-etm.c b/tools/perf/util/cs-etm.c index fd7f1da..2cc773a 100644 --- a/tools/perf/util/cs-etm.c +++ b/tools/perf/util/cs-etm.c @@ -1965,8 +1965,10 @@ int cs_etm__process_auxtrace_info(union perf_event *event, session->auxtrace = &etm->auxtrace; etm->unknown_thread = thread__new(9, 9); - if (!etm->unknown_thread) + if (!etm->unknown_thread) { + err = -ENOMEM; goto err_free_queues; + } /* * Initialize list node so that at thread__zput() we can avoid @@ -1978,8 +1980,10 @@ int cs_etm__process_auxtrace_info(union perf_event *event, if (err) goto err_delete_thread; - if (thread__init_map_groups(etm->unknown_thread, etm->machine)) + if (thread__init_map_groups(etm->unknown_thread, etm->machine)) { + err = -ENOMEM; goto err_delete_thread; + } if (dump_trace) { cs_etm__print_auxtrace_info(auxtrace_info->priv, num_cpu); @@ -2023,5 +2027,5 @@ int cs_etm__process_auxtrace_info(union perf_event *event, err_free_hdr: zfree(&hdr); - return -EINVAL; + return err; } -- 2.7.0
[PATCH v2 1/2] perf cs-etm: Remove errnoeous ERR_PTR() usage in cs_etm__process_auxtrace_info
From: YueHaibing intlist__findnew() doesn't uses ERR_PTR() as a return mechanism so its callers shouldn't try to extract the error using PTR_ERR( ret) from intlist__findnew(), make cs_etm__process_auxtrace_info return -ENOMEM instead. Fixes: cd8bfd8c973e ("perf tools: Add processing of coresight metadata") Signed-off-by: YueHaibing --- tools/perf/util/cs-etm.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/perf/util/cs-etm.c b/tools/perf/util/cs-etm.c index 1108049..fd7f1da 100644 --- a/tools/perf/util/cs-etm.c +++ b/tools/perf/util/cs-etm.c @@ -1908,7 +1908,7 @@ int cs_etm__process_auxtrace_info(union perf_event *event, /* Something went wrong, no need to continue */ if (!inode) { - err = PTR_ERR(inode); + err = -ENOMEM; goto err_free_metadata; } -- 2.7.0
[PATCH v2 0/2] minor fixes for perf cs-etm
From: YueHaibing v2: - patch 1 fix commilt log - patch 2 use correct Fixes tag This patch series fixes two issue: 1. fix pass-zero-to-ERR_PTR warning 2. return correct errcode to upstream callers YueHaibing (2): perf cs-etm: Remove errnoeous ERR_PTR() usage in in cs_etm__process_auxtrace_info perf cs-etm: return errcode in cs_etm__process_auxtrace_info() tools/perf/util/cs-etm.c | 12 1 file changed, 8 insertions(+), 4 deletions(-) -- 2.7.0
[PATCH v2 -next] ASoC: wm_adsp: Make some variables static
From: YueHaibing Fix sparse warnings: sound/soc/codecs/wm_adsp.c:309:20: warning: symbol 'wm_adsp1_ops' was not declared. Should it be static? sound/soc/codecs/wm_adsp.c:310:20: warning: symbol 'wm_adsp2_ops' was not declared. Should it be static? sound/soc/codecs/wm_adsp.c:311:20: warning: symbol 'wm_halo_ops' was not declared. Should it be static? Signed-off-by: YueHaibing --- v2: make variables static --- sound/soc/codecs/wm_adsp.c | 12 ++-- 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/sound/soc/codecs/wm_adsp.c b/sound/soc/codecs/wm_adsp.c index 644aaf1..c41bffc 100644 --- a/sound/soc/codecs/wm_adsp.c +++ b/sound/soc/codecs/wm_adsp.c @@ -306,9 +306,9 @@ #define HALO_MPU_VIO_ERR_SRC_MASK 0x7fff #define HALO_MPU_VIO_ERR_SRC_SHIFT 0 -struct wm_adsp_ops wm_adsp1_ops; -struct wm_adsp_ops wm_adsp2_ops[]; -struct wm_adsp_ops wm_halo_ops; +static struct wm_adsp_ops wm_adsp1_ops; +static struct wm_adsp_ops wm_adsp2_ops[]; +static struct wm_adsp_ops wm_halo_ops; struct wm_adsp_buf { struct list_head list; @@ -4407,13 +4407,13 @@ irqreturn_t wm_halo_wdt_expire(int irq, void *data) } EXPORT_SYMBOL_GPL(wm_halo_wdt_expire); -struct wm_adsp_ops wm_adsp1_ops = { +static struct wm_adsp_ops wm_adsp1_ops = { .validate_version = wm_adsp_validate_version, .parse_sizes = wm_adsp1_parse_sizes, .region_to_reg = wm_adsp_region_to_reg, }; -struct wm_adsp_ops wm_adsp2_ops[] = { +static struct wm_adsp_ops wm_adsp2_ops[] = { { .sys_config_size = sizeof(struct wm_adsp_system_config_xm_hdr), .parse_sizes = wm_adsp2_parse_sizes, @@ -4474,7 +4474,7 @@ struct wm_adsp_ops wm_adsp2_ops[] = { }, }; -struct wm_adsp_ops wm_halo_ops = { +static struct wm_adsp_ops wm_halo_ops = { .sys_config_size = sizeof(struct wm_halo_system_config_xm_hdr), .parse_sizes = wm_adsp2_parse_sizes, .validate_version = wm_halo_validate_version, -- 2.7.0
[PATCH -next] ASoC: wm_adsp: Make some variables static
From: YueHaibing Fix sparse warnings: sound/soc/codecs/wm_adsp.c:309:20: warning: symbol 'wm_adsp1_ops' was not declared. Should it be static? sound/soc/codecs/wm_adsp.c:310:20: warning: symbol 'wm_adsp2_ops' was not declared. Should it be static? sound/soc/codecs/wm_adsp.c:311:20: warning: symbol 'wm_halo_ops' was not declared. Should it be static? Signed-off-by: YueHaibing --- sound/soc/codecs/wm_adsp.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/sound/soc/codecs/wm_adsp.c b/sound/soc/codecs/wm_adsp.c index 644aaf1..4ed587f 100644 --- a/sound/soc/codecs/wm_adsp.c +++ b/sound/soc/codecs/wm_adsp.c @@ -306,9 +306,9 @@ #define HALO_MPU_VIO_ERR_SRC_MASK 0x7fff #define HALO_MPU_VIO_ERR_SRC_SHIFT 0 -struct wm_adsp_ops wm_adsp1_ops; -struct wm_adsp_ops wm_adsp2_ops[]; -struct wm_adsp_ops wm_halo_ops; +static struct wm_adsp_ops wm_adsp1_ops; +static struct wm_adsp_ops wm_adsp2_ops[]; +static struct wm_adsp_ops wm_halo_ops; struct wm_adsp_buf { struct list_head list; -- 2.7.0
[PATCH -next] irqchip/brcmstb-l2: Make two init functions static
From: YueHaibing Fix sparse warnings: drivers/irqchip/irq-brcmstb-l2.c:278:12: warning: symbol 'brcmstb_l2_edge_intc_of_init' was not declared. Should it be static? drivers/irqchip/irq-brcmstb-l2.c:285:12: warning: symbol 'brcmstb_l2_lvl_intc_of_init' was not declared. Should it be static? Signed-off-by: YueHaibing --- drivers/irqchip/irq-brcmstb-l2.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/irqchip/irq-brcmstb-l2.c b/drivers/irqchip/irq-brcmstb-l2.c index 83364fe..5e4ca13 100644 --- a/drivers/irqchip/irq-brcmstb-l2.c +++ b/drivers/irqchip/irq-brcmstb-l2.c @@ -275,14 +275,14 @@ static int __init brcmstb_l2_intc_of_init(struct device_node *np, return ret; } -int __init brcmstb_l2_edge_intc_of_init(struct device_node *np, +static int __init brcmstb_l2_edge_intc_of_init(struct device_node *np, struct device_node *parent) { return brcmstb_l2_intc_of_init(np, parent, &l2_edge_intc_init); } IRQCHIP_DECLARE(brcmstb_l2_intc, "brcm,l2-intc", brcmstb_l2_edge_intc_of_init); -int __init brcmstb_l2_lvl_intc_of_init(struct device_node *np, +static int __init brcmstb_l2_lvl_intc_of_init(struct device_node *np, struct device_node *parent) { return brcmstb_l2_intc_of_init(np, parent, &l2_lvl_intc_init); -- 2.7.0
[PATCH -next] ntb: intel: Make intel_ntb3_peer_db_addr static
From: YueHaibing Fix sparse warning: drivers/ntb/hw/intel/ntb_hw_gen3.c:535:5: warning: symbol 'intel_ntb3_peer_db_addr' was not declared. Should it be static? Signed-off-by: YueHaibing --- drivers/ntb/hw/intel/ntb_hw_gen3.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/ntb/hw/intel/ntb_hw_gen3.c b/drivers/ntb/hw/intel/ntb_hw_gen3.c index f475b56..c339716 100644 --- a/drivers/ntb/hw/intel/ntb_hw_gen3.c +++ b/drivers/ntb/hw/intel/ntb_hw_gen3.c @@ -532,9 +532,9 @@ static int intel_ntb3_mw_set_trans(struct ntb_dev *ntb, int pidx, int idx, return 0; } -int intel_ntb3_peer_db_addr(struct ntb_dev *ntb, phys_addr_t *db_addr, - resource_size_t *db_size, - u64 *db_data, int db_bit) +static int intel_ntb3_peer_db_addr(struct ntb_dev *ntb, phys_addr_t *db_addr, + resource_size_t *db_size, + u64 *db_data, int db_bit) { phys_addr_t db_addr_base; struct intel_ntb_dev *ndev = ntb_ndev(ntb); -- 2.7.0
[PATCH -next] pinctrl: fsl: Make pinctrl_ipc_handle static
From: YueHaibing Fix sparse warning: drivers/pinctrl/freescale/pinctrl-scu.c:38:19: warning: symbol 'pinctrl_ipc_handle' was not declared. Should it be static? Signed-off-by: YueHaibing --- drivers/pinctrl/freescale/pinctrl-scu.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/pinctrl/freescale/pinctrl-scu.c b/drivers/pinctrl/freescale/pinctrl-scu.c index 83e69c0..73bf1d9 100644 --- a/drivers/pinctrl/freescale/pinctrl-scu.c +++ b/drivers/pinctrl/freescale/pinctrl-scu.c @@ -35,7 +35,7 @@ struct imx_sc_msg_resp_pad_get { u32 val; } __packed; -struct imx_sc_ipc *pinctrl_ipc_handle; +static struct imx_sc_ipc *pinctrl_ipc_handle; int imx_pinctrl_sc_ipc_init(struct platform_device *pdev) { -- 2.7.0
[PATCH -next] ubifs: remove unused function __ubifs_shash_final
From: YueHaibing There is no callers in tree, and can be removed. Signed-off-by: YueHaibing --- fs/ubifs/auth.c | 18 -- 1 file changed, 18 deletions(-) diff --git a/fs/ubifs/auth.c b/fs/ubifs/auth.c index 5bf5fd0..2a40ccce 100644 --- a/fs/ubifs/auth.c +++ b/fs/ubifs/auth.c @@ -147,24 +147,6 @@ struct shash_desc *__ubifs_hash_get_desc(const struct ubifs_info *c) } /** - * __ubifs_shash_final - finalize shash - * @c: UBIFS file-system description object - * @desc: the descriptor - * @out: the output hash - * - * Simple wrapper around crypto_shash_final(), safe to be called with - * disabled authentication. - */ -int __ubifs_shash_final(const struct ubifs_info *c, struct shash_desc *desc, - u8 *out) -{ - if (ubifs_authenticated(c)) - return crypto_shash_final(desc, out); - - return 0; -} - -/** * ubifs_bad_hash - Report hash mismatches * @c: UBIFS file-system description object * @node: the node -- 2.7.0
[PATCH -next] proc/kcore: Make kcore_modules static
From: YueHaibing Fix sparse warning: fs/proc/kcore.c:591:19: warning: symbol 'kcore_modules' was not declared. Should it be static? Signed-off-by: YueHaibing --- fs/proc/kcore.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fs/proc/kcore.c b/fs/proc/kcore.c index bbcc185..378f453 100644 --- a/fs/proc/kcore.c +++ b/fs/proc/kcore.c @@ -588,7 +588,7 @@ static void __init proc_kcore_text_init(void) /* * MODULES_VADDR has no intersection with VMALLOC_ADDR. */ -struct kcore_list kcore_modules; +static struct kcore_list kcore_modules; static void __init add_modules_range(void) { if (MODULES_VADDR != VMALLOC_START && MODULES_END != VMALLOC_END) { -- 2.7.0
[PATCH -next] RDMA/hns: Make hns_roce_cmq_send static
From: YueHaibing Fix sparse warning: drivers/infiniband/hw/hns/hns_roce_hw_v2.c:1089:5: warning: symbol 'hns_roce_cmq_send' was not declared. Should it be static? Signed-off-by: YueHaibing --- drivers/infiniband/hw/hns/hns_roce_hw_v2.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/infiniband/hw/hns/hns_roce_hw_v2.c b/drivers/infiniband/hw/hns/hns_roce_hw_v2.c index 1c54390..b13436e 100644 --- a/drivers/infiniband/hw/hns/hns_roce_hw_v2.c +++ b/drivers/infiniband/hw/hns/hns_roce_hw_v2.c @@ -1086,7 +1086,7 @@ static int __hns_roce_cmq_send(struct hns_roce_dev *hr_dev, return ret; } -int hns_roce_cmq_send(struct hns_roce_dev *hr_dev, +static int hns_roce_cmq_send(struct hns_roce_dev *hr_dev, struct hns_roce_cmq_desc *desc, int num) { int retval; -- 2.7.0
[PATCH -next] watchdog: sb_wdog: Make sbwdog_set and sbwdog_pet static
From: YueHaibing Fix sparse warning: drivers/watchdog/sb_wdog.c:70:6: warning: symbol 'sbwdog_set' was not declared. Should it be static? drivers/watchdog/sb_wdog.c:84:6: warning: symbol 'sbwdog_pet' was not declared. Should it be static? Signed-off-by: YueHaibing --- drivers/watchdog/sb_wdog.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/watchdog/sb_wdog.c b/drivers/watchdog/sb_wdog.c index 3abae50..8264fced 100644 --- a/drivers/watchdog/sb_wdog.c +++ b/drivers/watchdog/sb_wdog.c @@ -67,7 +67,7 @@ static DEFINE_SPINLOCK(sbwd_lock); * * wdog is the iomem address of the cfg register */ -void sbwdog_set(char __iomem *wdog, unsigned long t) +static void sbwdog_set(char __iomem *wdog, unsigned long t) { spin_lock(&sbwd_lock); __raw_writeb(0, wdog); @@ -81,7 +81,7 @@ void sbwdog_set(char __iomem *wdog, unsigned long t) * * wdog is the iomem address of the cfg register */ -void sbwdog_pet(char __iomem *wdog) +static void sbwdog_pet(char __iomem *wdog) { spin_lock(&sbwd_lock); __raw_writeb(__raw_readb(wdog) | 1, wdog); -- 2.7.0
[PATCH -next] irqchip/mmp: Make mmp_irq_domain_ops static
From: YueHaibing Fix sparse warning: drivers/irqchip/irq-mmp.c:182:29: warning: symbol 'mmp_irq_domain_ops' was not declared. Should it be static? Signed-off-by: YueHaibing --- drivers/irqchip/irq-mmp.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/irqchip/irq-mmp.c b/drivers/irqchip/irq-mmp.c index 3496b61..8eed478 100644 --- a/drivers/irqchip/irq-mmp.c +++ b/drivers/irqchip/irq-mmp.c @@ -179,7 +179,7 @@ static int mmp_irq_domain_xlate(struct irq_domain *d, struct device_node *node, return 0; } -const struct irq_domain_ops mmp_irq_domain_ops = { +static const struct irq_domain_ops mmp_irq_domain_ops = { .map= mmp_irq_domain_map, .xlate = mmp_irq_domain_xlate, }; -- 2.7.0
[PATCH -next] sched/fair: Make sync_entity_load_avg and remove_entity_load_avg static
From: YueHaibing Fix sparse warnigs: kernel/sched/fair.c:3570:6: warning: symbol 'sync_entity_load_avg' was not declared. Should it be static? kernel/sched/fair.c:3583:6: warning: symbol 'remove_entity_load_avg' was not declared. Should it be static? Signed-off-by: YueHaibing --- kernel/sched/fair.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c index fdab7eb..5c42291 100644 --- a/kernel/sched/fair.c +++ b/kernel/sched/fair.c @@ -3567,7 +3567,7 @@ static inline u64 cfs_rq_last_update_time(struct cfs_rq *cfs_rq) * Synchronize entity load avg of dequeued entity without locking * the previous rq. */ -void sync_entity_load_avg(struct sched_entity *se) +static void sync_entity_load_avg(struct sched_entity *se) { struct cfs_rq *cfs_rq = cfs_rq_of(se); u64 last_update_time; @@ -3580,7 +3580,7 @@ void sync_entity_load_avg(struct sched_entity *se) * Task first catches up with cfs_rq, and then subtract * itself from the cfs_rq (task must be off the queue now). */ -void remove_entity_load_avg(struct sched_entity *se) +static void remove_entity_load_avg(struct sched_entity *se) { struct cfs_rq *cfs_rq = cfs_rq_of(se); unsigned long flags; -- 2.7.0
[PATCH 0/2] minor fixes for perf cs-etm
From: YueHaibing This patch series fixes two issue: 1. fix pass-zero-to-ERR_PTR warning 2. return correct errcode to upstream callers YueHaibing (2): perf cs-etm: Remove errnoeous ERR_PTR() usage in in cs_etm__process_auxtrace_info perf cs-etm: return errcode in cs_etm__process_auxtrace_info() tools/perf/util/cs-etm.c | 12 1 file changed, 8 insertions(+), 4 deletions(-) -- 2.7.0
[PATCH 1/2] perf cs-etm: Remove errnoeous ERR_PTR() usage in in cs_etm__process_auxtrace_info
From: YueHaibing intlist__findnew() doesn't uses ERR_PTR() as a return mechanism so its callers shouldn't try to extract the error using PTR_ERR(ret-from-intlist__findnew()), make cs_etm__process_auxtrace_info9) return -ENOMEM instead. Fixes: cd8bfd8c973e ("perf tools: Add processing of coresight metadata") Signed-off-by: YueHaibing --- tools/perf/util/cs-etm.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/perf/util/cs-etm.c b/tools/perf/util/cs-etm.c index 1108049..fd7f1da 100644 --- a/tools/perf/util/cs-etm.c +++ b/tools/perf/util/cs-etm.c @@ -1908,7 +1908,7 @@ int cs_etm__process_auxtrace_info(union perf_event *event, /* Something went wrong, no need to continue */ if (!inode) { - err = PTR_ERR(inode); + err = -ENOMEM; goto err_free_metadata; } -- 2.7.0
[PATCH 2/2] perf cs-etm: return errcode in cs_etm__process_auxtrace_info()
From: YueHaibing Make sure 'err' is set in every err path, and returned it to callers intead of -EINVAL. Fixes: cd8bfd8c973e ("perf tools: Add processing of coresight metadata") Signed-off-by: YueHaibing --- tools/perf/util/cs-etm.c | 10 +++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/tools/perf/util/cs-etm.c b/tools/perf/util/cs-etm.c index fd7f1da..2cc773a 100644 --- a/tools/perf/util/cs-etm.c +++ b/tools/perf/util/cs-etm.c @@ -1965,8 +1965,10 @@ int cs_etm__process_auxtrace_info(union perf_event *event, session->auxtrace = &etm->auxtrace; etm->unknown_thread = thread__new(9, 9); - if (!etm->unknown_thread) + if (!etm->unknown_thread) { + err = -ENOMEM; goto err_free_queues; + } /* * Initialize list node so that at thread__zput() we can avoid @@ -1978,8 +1980,10 @@ int cs_etm__process_auxtrace_info(union perf_event *event, if (err) goto err_delete_thread; - if (thread__init_map_groups(etm->unknown_thread, etm->machine)) + if (thread__init_map_groups(etm->unknown_thread, etm->machine)) { + err = -ENOMEM; goto err_delete_thread; + } if (dump_trace) { cs_etm__print_auxtrace_info(auxtrace_info->priv, num_cpu); @@ -2023,5 +2027,5 @@ int cs_etm__process_auxtrace_info(union perf_event *event, err_free_hdr: zfree(&hdr); - return -EINVAL; + return err; } -- 2.7.0
[PATCH -next] clk: tegra: Make tegra_clk_super_mux_ops static
From: YueHaibing Fix sparse warning: drivers/clk/tegra/clk-super.c:124:22: warning: symbol 'tegra_clk_super_mux_ops' was not declared. Should it be static? Signed-off-by: YueHaibing --- drivers/clk/tegra/clk-super.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/clk/tegra/clk-super.c b/drivers/clk/tegra/clk-super.c index 84267cf..b5ff76c 100644 --- a/drivers/clk/tegra/clk-super.c +++ b/drivers/clk/tegra/clk-super.c @@ -121,7 +121,7 @@ static int clk_super_set_parent(struct clk_hw *hw, u8 index) return err; } -const struct clk_ops tegra_clk_super_mux_ops = { +static const struct clk_ops tegra_clk_super_mux_ops = { .get_parent = clk_super_get_parent, .set_parent = clk_super_set_parent, }; -- 2.7.4
[PATCH -next] phy: tegra: xusb: Make two functions static
From: YueHaibing Fix sparse warning: drivers/phy/tegra/xusb-tegra186.c:250:6: warning: symbol 'tegra_phy_xusb_utmi_pad_power_on' was not declared. Should it be static? drivers/phy/tegra/xusb-tegra186.c:281:6: warning: symbol 'tegra_phy_xusb_utmi_pad_power_down' was not declared. Should it be static? Signed-off-by: YueHaibing --- drivers/phy/tegra/xusb-tegra186.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/phy/tegra/xusb-tegra186.c b/drivers/phy/tegra/xusb-tegra186.c index 11ad6e4..7a308b4 100644 --- a/drivers/phy/tegra/xusb-tegra186.c +++ b/drivers/phy/tegra/xusb-tegra186.c @@ -247,7 +247,7 @@ static void tegra186_utmi_bias_pad_power_off(struct tegra_xusb_padctl *padctl) mutex_unlock(&padctl->lock); } -void tegra_phy_xusb_utmi_pad_power_on(struct phy *phy) +static void tegra_phy_xusb_utmi_pad_power_on(struct phy *phy) { struct tegra_xusb_lane *lane = phy_get_drvdata(phy); struct tegra_xusb_padctl *padctl = lane->pad->padctl; @@ -278,7 +278,7 @@ void tegra_phy_xusb_utmi_pad_power_on(struct phy *phy) padctl_writel(padctl, value, XUSB_PADCTL_USB2_OTG_PADX_CTL1(index)); } -void tegra_phy_xusb_utmi_pad_power_down(struct phy *phy) +static void tegra_phy_xusb_utmi_pad_power_down(struct phy *phy) { struct tegra_xusb_lane *lane = phy_get_drvdata(phy); struct tegra_xusb_padctl *padctl = lane->pad->padctl; -- 2.7.4
[PATCH -next] phy: rockchip-typec: Make usb3_pll_cfg and dp_pll_cfg static
From: YueHaibing Fix sparse warning: drivers/phy/rockchip/phy-rockchip-typec.c:403:16: warning: symbol 'usb3_pll_cfg' was not declared. Should it be static? drivers/phy/rockchip/phy-rockchip-typec.c:420:16: warning: symbol 'dp_pll_cfg' was not declared. Should it be static? Signed-off-by: YueHaibing --- drivers/phy/rockchip/phy-rockchip-typec.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/phy/rockchip/phy-rockchip-typec.c b/drivers/phy/rockchip/phy-rockchip-typec.c index e32edee..8ad366e 100644 --- a/drivers/phy/rockchip/phy-rockchip-typec.c +++ b/drivers/phy/rockchip/phy-rockchip-typec.c @@ -400,7 +400,7 @@ struct phy_reg { u32 addr; }; -struct phy_reg usb3_pll_cfg[] = { +static struct phy_reg usb3_pll_cfg[] = { { 0xf0, CMN_PLL0_VCOCAL_INIT }, { 0x18, CMN_PLL0_VCOCAL_ITER }, { 0xd0, CMN_PLL0_INTDIV }, @@ -417,7 +417,7 @@ struct phy_reg usb3_pll_cfg[] = { { 0x8, CMN_DIAG_PLL0_LF_PROG }, }; -struct phy_reg dp_pll_cfg[] = { +static struct phy_reg dp_pll_cfg[] = { { 0xf0, CMN_PLL1_VCOCAL_INIT }, { 0x18, CMN_PLL1_VCOCAL_ITER }, { 0x30b9, CMN_PLL1_VCOCAL_START }, -- 2.7.4
[PATCH -next] phy: qcom-ufs: Make ufs_qcom_phy_disable_iface_clk static
From: YueHaibing Fix sparse warning: drivers/phy/qualcomm/phy-qcom-ufs.c:462:6: warning: symbol 'ufs_qcom_phy_disable_iface_clk' was not declared. Should it be static? Signed-off-by: YueHaibing --- drivers/phy/qualcomm/phy-qcom-ufs.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/phy/qualcomm/phy-qcom-ufs.c b/drivers/phy/qualcomm/phy-qcom-ufs.c index f2979cc..78c339b 100644 --- a/drivers/phy/qualcomm/phy-qcom-ufs.c +++ b/drivers/phy/qualcomm/phy-qcom-ufs.c @@ -459,7 +459,7 @@ static int ufs_qcom_phy_enable_iface_clk(struct ufs_qcom_phy *phy) } /* Turn OFF M-PHY RMMI interface clocks */ -void ufs_qcom_phy_disable_iface_clk(struct ufs_qcom_phy *phy) +static void ufs_qcom_phy_disable_iface_clk(struct ufs_qcom_phy *phy) { if (phy->is_iface_clk_enabled) { clk_disable_unprepare(phy->tx_iface_clk); -- 2.7.4
[PATCH -next] rtc: opal: Make opal_tpo_alarm_irq_enable static
From: YueHaibing Fix sparse warning: drivers/rtc/rtc-opal.c:227:5: warning: symbol 'opal_tpo_alarm_irq_enable' was not declared. Should it be static? Signed-off-by: YueHaibing --- drivers/rtc/rtc-opal.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/rtc/rtc-opal.c b/drivers/rtc/rtc-opal.c index 60f2250..3dd9d26 100644 --- a/drivers/rtc/rtc-opal.c +++ b/drivers/rtc/rtc-opal.c @@ -224,7 +224,7 @@ static int opal_set_tpo_time(struct device *dev, struct rtc_wkalrm *alarm) return rc; } -int opal_tpo_alarm_irq_enable(struct device *dev, unsigned int enabled) +static int opal_tpo_alarm_irq_enable(struct device *dev, unsigned int enabled) { struct rtc_wkalrm alarm = { .enabled = 0 }; -- 2.7.4
[PATCH -next] regulator: of: Make regulator_of_get_init_node static
From: YueHaibing Fix sparse warning: drivers/regulator/of_regulator.c:374:20: warning: symbol 'regulator_of_get_init_node' was not declared. Should it be static? Signed-off-by: YueHaibing --- drivers/regulator/of_regulator.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/drivers/regulator/of_regulator.c b/drivers/regulator/of_regulator.c index 7b6bf35..6dca0ba 100644 --- a/drivers/regulator/of_regulator.c +++ b/drivers/regulator/of_regulator.c @@ -371,8 +371,9 @@ int of_regulator_match(struct device *dev, struct device_node *node, } EXPORT_SYMBOL_GPL(of_regulator_match); -struct device_node *regulator_of_get_init_node(struct device *dev, - const struct regulator_desc *desc) +static struct +device_node *regulator_of_get_init_node(struct device *dev, + const struct regulator_desc *desc) { struct device_node *search, *child; const char *name; -- 2.7.4
[PATCH -next] drivers: base: swnode: Make two functions static
From: YueHaibing Fix sparse warning: drivers/base/swnode.c:475:22: warning: symbol 'software_node_get_parent' was not declared. Should it be static? drivers/base/swnode.c:484:22: warning: symbol 'software_node_get_next_child' was not declared. Should it be static? Signed-off-by: YueHaibing --- drivers/base/swnode.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/base/swnode.c b/drivers/base/swnode.c index 1fad929..7fc5a18 100644 --- a/drivers/base/swnode.c +++ b/drivers/base/swnode.c @@ -472,7 +472,7 @@ static int software_node_read_string_array(const struct fwnode_handle *fwnode, val, nval); } -struct fwnode_handle * +static struct fwnode_handle * software_node_get_parent(const struct fwnode_handle *fwnode) { struct software_node *swnode = to_software_node(fwnode); @@ -481,7 +481,7 @@ software_node_get_parent(const struct fwnode_handle *fwnode) NULL; } -struct fwnode_handle * +static struct fwnode_handle * software_node_get_next_child(const struct fwnode_handle *fwnode, struct fwnode_handle *child) { -- 2.7.4
[PATCH -next] serial: 8250_fintek: Make fintek_8250_set_termios static
From: YueHaibing Fix sparse warning: drivers/tty/serial/8250/8250_fintek.c:306:6: warning: symbol 'fintek_8250_set_termios' was not declared. Should it be static? Signed-off-by: YueHaibing --- drivers/tty/serial/8250/8250_fintek.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/drivers/tty/serial/8250/8250_fintek.c b/drivers/tty/serial/8250/8250_fintek.c index 79a4958..31c91c2 100644 --- a/drivers/tty/serial/8250/8250_fintek.c +++ b/drivers/tty/serial/8250/8250_fintek.c @@ -303,8 +303,9 @@ static void fintek_8250_goto_highspeed(struct uart_8250_port *uart, } } -void fintek_8250_set_termios(struct uart_port *port, struct ktermios *termios, - struct ktermios *old) +static void fintek_8250_set_termios(struct uart_port *port, + struct ktermios *termios, + struct ktermios *old) { struct fintek_8250 *pdata = port->private_data; unsigned int baud = tty_termios_baud_rate(termios); -- 2.7.4
[PATCH net-next] igc: Make igc_write_rss_indir_tbl static
From: YueHaibing Fix sparse warning: drivers/net/ethernet/intel/igc/igc_ethtool.c:646:6: warning: symbol 'igc_write_rss_indir_tbl' was not declared. Should it be static? Signed-off-by: YueHaibing --- drivers/net/ethernet/intel/igc/igc_ethtool.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/net/ethernet/intel/igc/igc_ethtool.c b/drivers/net/ethernet/intel/igc/igc_ethtool.c index eff37a6..5442394 100644 --- a/drivers/net/ethernet/intel/igc/igc_ethtool.c +++ b/drivers/net/ethernet/intel/igc/igc_ethtool.c @@ -643,7 +643,7 @@ static int igc_set_coalesce(struct net_device *netdev, return 0; } -void igc_write_rss_indir_tbl(struct igc_adapter *adapter) +static void igc_write_rss_indir_tbl(struct igc_adapter *adapter) { struct igc_hw *hw = &adapter->hw; u32 reg = IGC_RETA(0); -- 2.7.4
[PATCH net-next] ibmveth: Make array ibmveth_stats static
From: YueHaibing Fix sparse warning: drivers/net/ethernet/ibm/ibmveth.c:96:21: warning: symbol 'ibmveth_stats' was not declared. Should it be static? Signed-off-by: YueHaibing --- drivers/net/ethernet/ibm/ibmveth.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/net/ethernet/ibm/ibmveth.c b/drivers/net/ethernet/ibm/ibmveth.c index dd71d5d..d86b0e5 100644 --- a/drivers/net/ethernet/ibm/ibmveth.c +++ b/drivers/net/ethernet/ibm/ibmveth.c @@ -93,7 +93,7 @@ struct ibmveth_stat { #define IBMVETH_STAT_OFF(stat) offsetof(struct ibmveth_adapter, stat) #define IBMVETH_GET_STAT(a, off) *((u64 *)(((unsigned long)(a)) + off)) -struct ibmveth_stat ibmveth_stats[] = { +static struct ibmveth_stat ibmveth_stats[] = { { "replenish_task_cycles", IBMVETH_STAT_OFF(replenish_task_cycles) }, { "replenish_no_mem", IBMVETH_STAT_OFF(replenish_no_mem) }, { "replenish_add_buff_failure", -- 2.7.4
[PATCH -next] crypto: ccp - Make ccp_register_rsa_alg static
From: YueHaibing Fix sparse warning: drivers/crypto/ccp/ccp-crypto-rsa.c:251:5: warning: symbol 'ccp_register_rsa_alg' was not declared. Should it be static? Signed-off-by: YueHaibing --- drivers/crypto/ccp/ccp-crypto-rsa.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/crypto/ccp/ccp-crypto-rsa.c b/drivers/crypto/ccp/ccp-crypto-rsa.c index 05850df..0b8aab00 100644 --- a/drivers/crypto/ccp/ccp-crypto-rsa.c +++ b/drivers/crypto/ccp/ccp-crypto-rsa.c @@ -248,7 +248,8 @@ static struct ccp_rsa_def rsa_algs[] = { } }; -int ccp_register_rsa_alg(struct list_head *head, const struct ccp_rsa_def *def) +static int ccp_register_rsa_alg(struct list_head *head, + const struct ccp_rsa_def *def) { struct ccp_crypto_akcipher_alg *ccp_alg; struct akcipher_alg *alg; -- 2.7.4
[PATCH -next] crypto: cavium - remove unused fucntions
From: YueHaibing cptvf_mbox_send_ack and cptvf_mbox_send_nack are never used since introdution in commit c694b233295b ("crypto: cavium - Add the Virtual Function driver for CPT") Signed-off-by: YueHaibing --- drivers/crypto/cavium/cpt/cptvf_mbox.c | 17 - 1 file changed, 17 deletions(-) diff --git a/drivers/crypto/cavium/cpt/cptvf_mbox.c b/drivers/crypto/cavium/cpt/cptvf_mbox.c index d5ec3b8..4f438ec 100644 --- a/drivers/crypto/cavium/cpt/cptvf_mbox.c +++ b/drivers/crypto/cavium/cpt/cptvf_mbox.c @@ -17,23 +17,6 @@ static void cptvf_send_msg_to_pf(struct cpt_vf *cptvf, struct cpt_mbox *mbx) mbx->data); } -/* ACKs PF's mailbox message - */ -void cptvf_mbox_send_ack(struct cpt_vf *cptvf, struct cpt_mbox *mbx) -{ - mbx->msg = CPT_MBOX_MSG_TYPE_ACK; - cptvf_send_msg_to_pf(cptvf, mbx); -} - -/* NACKs PF's mailbox message that VF is not able to - * complete the action - */ -void cptvf_mbox_send_nack(struct cpt_vf *cptvf, struct cpt_mbox *mbx) -{ - mbx->msg = CPT_MBOX_MSG_TYPE_NACK; - cptvf_send_msg_to_pf(cptvf, mbx); -} - /* Interrupt handler to handle mailbox messages from VFs */ void cptvf_handle_mbox_intr(struct cpt_vf *cptvf) { -- 2.7.4
[PATCH] perf tools: return errcode in cs_etm__process_auxtrace_info
From: YueHaibing 'err' is set in err path, but it's not returned to callers. Also fix a pass zero to PTR_ERR issue. Fixes: cd8bfd8c973e ("perf tools: Add processing of coresight metadata") Signed-off-by: YueHaibing --- tools/perf/util/cs-etm.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tools/perf/util/cs-etm.c b/tools/perf/util/cs-etm.c index 1108049..111f33c 100644 --- a/tools/perf/util/cs-etm.c +++ b/tools/perf/util/cs-etm.c @@ -1908,7 +1908,7 @@ int cs_etm__process_auxtrace_info(union perf_event *event, /* Something went wrong, no need to continue */ if (!inode) { - err = PTR_ERR(inode); + err = -ENOMEM; goto err_free_metadata; } @@ -2023,5 +2023,5 @@ int cs_etm__process_auxtrace_info(union perf_event *event, err_free_hdr: zfree(&hdr); - return -EINVAL; + return err; } -- 2.7.0