[PATCH -next] counter: 104-quad-8: Make quad8_ops static

2019-04-26 Thread Yue Haibing
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

2019-04-26 Thread Yue Haibing
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

2019-04-26 Thread Yue Haibing
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'

2019-04-26 Thread Yue Haibing
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(>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

2019-04-25 Thread Yue Haibing
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

2019-04-24 Thread Yue Haibing
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'

2019-04-24 Thread Yue Haibing
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(>sighand->siglock);
WARN_ON_ONCE(child->frozen);
-   cgrp = cset->dfl_cgrp;
child->jobctl |= JOBCTL_TRAP_FREEZE;
spin_unlock(>sighand->siglock);
 
-- 
2.7.4




[PATCH] soc: imx: Fix build error without CONFIG_SOC_BUS

2019-04-24 Thread Yue Haibing
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

2019-04-23 Thread Yue Haibing
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'

2019-04-23 Thread Yue Haibing
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

2019-04-18 Thread Yue Haibing
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

2019-04-18 Thread Yue Haibing
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 = >numa_work;
u64 period, now;
-- 
2.7.4




[PATCH -next] phy: ti: am654-serdes: Make serdes_am654_xlate() static

2019-04-18 Thread Yue Haibing
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

2019-04-18 Thread Yue Haibing
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'

2019-04-17 Thread Yue Haibing
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

2019-04-17 Thread Yue Haibing
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'

2019-04-17 Thread Yue Haibing
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'

2019-04-17 Thread Yue Haibing
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

2019-04-17 Thread Yue Haibing
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

2019-04-16 Thread Yue Haibing
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

2019-04-16 Thread Yue Haibing
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

2019-04-16 Thread Yue Haibing
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

2019-04-16 Thread Yue Haibing
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

2019-04-16 Thread Yue Haibing
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

2019-04-16 Thread Yue Haibing
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(_dirent_lock);
-   configfs_dir_set_ready(group->cg_item.ci_dentry->d_fsdata);
-  

[PATCH -next] eventfd: Make eventfd_ida static

2019-04-13 Thread Yue Haibing
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

2019-04-13 Thread Yue Haibing
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

2019-04-13 Thread Yue Haibing
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= _hwmod_sysc_type1,
 };
 
-struct omap_hwmod_class am33xx_gpio_hwmod_class = {
+static struct omap_hwmod_class am33xx_gpio_hwmod_class = {
.name   = "gpio",
.sysc   = _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  = _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  = _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  = _gpio_hwmod_class,
.clkdm_name = "l4ls_clkdm",
-- 
2.7.4




[PATCH -next] soc: ti: pm33xx: Make two symbols static

2019-04-13 Thread Yue Haibing
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(_rtc->dev);
am33xx_do_wfi_sram(wfi_flags);
-- 
2.7.4




[PATCH] orangefs: Make some functions static

2019-04-13 Thread Yue Haibing
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(>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

2019-04-12 Thread Yue Haibing
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(>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(>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(>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

2019-04-10 Thread Yue Haibing
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

2019-04-10 Thread Yue Haibing
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

2019-04-10 Thread Yue Haibing
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

2019-04-10 Thread Yue Haibing
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

2019-04-10 Thread Yue Haibing
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

2019-04-10 Thread Yue Haibing
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

2019-04-10 Thread Yue Haibing
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

2019-04-10 Thread Yue Haibing
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

2019-04-10 Thread Yue Haibing
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

2019-04-10 Thread Yue Haibing
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

2019-04-09 Thread Yue Haibing
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 >parent->root
will tigger another NULL pointer dereference. 
As commit 23da9588037e explained, there also no need call

[PATCH] spi: spi-mem: Fix build error without CONFIG_SPI_MEM

2019-04-08 Thread Yue Haibing
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

2019-04-08 Thread Yue Haibing
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(>dev);
-   if (ret < 0) {
-   put_device(>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(_template_fmc, sizeof(ff_template_fmc),
  GFP_KERNEL);
+   if (!fmc) {
+   ret = -ENOMEM
+   goto free_fmc;
+   }
+
fmc->hwdev = >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(>dev);
+   return ERR_PTR(ret);
 }
 
 /* init and exit */
-- 
2.7.4




[PATCH] spi: bcm2835aux: Fix build error without CONFIG_DEBUG_FS

2019-04-06 Thread Yue Haibing
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(>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

2019-04-05 Thread Yue Haibing
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(>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(>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(>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

2019-04-04 Thread Yue Haibing
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(>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

2019-04-04 Thread Yue Haibing
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

2019-04-04 Thread Yue Haibing
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(>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 = >dev;
-   struct acpi_device *adev;
int ret, i, pirq;
 
info = devm_kzalloc(>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

2019-04-04 Thread Yue Haibing
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(>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(>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'

2019-04-03 Thread Yue Haibing
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

2019-04-02 Thread Yue Haibing
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

2019-04-02 Thread Yue Haibing
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

2019-03-22 Thread Yue Haibing
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 = _clockevent_device,
.flags = IRQF_PERCPU | IRQF_TIMER,
-- 
2.7.0




[PATCH -next] clocksource: timer-ti-dm: Make omap_dm_timer_set_load_start static

2019-03-22 Thread Yue Haibing
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

2019-03-22 Thread Yue Haibing
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

2019-03-22 Thread Yue Haibing
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

2019-03-22 Thread Yue Haibing
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

2019-03-22 Thread Yue Haibing
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 = >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

2019-03-22 Thread Yue Haibing
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

2019-03-22 Thread Yue Haibing
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

2019-03-22 Thread Yue Haibing
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

2019-03-22 Thread Yue Haibing
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

2019-03-21 Thread Yue Haibing
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

2019-03-21 Thread Yue Haibing
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 = _helper_ops,
 };
 
-- 
2.7.0




[PATCH -next] spi: atmel-quadspi: Make atmel_qspi_get_name static

2019-03-21 Thread Yue Haibing
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

2019-03-21 Thread Yue Haibing
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

2019-03-21 Thread Yue Haibing
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

2019-03-21 Thread Yue Haibing
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()

2019-03-20 Thread Yue Haibing
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 = >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();
 
-   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

2019-03-20 Thread Yue Haibing
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

2019-03-20 Thread Yue Haibing
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

2019-03-20 Thread Yue Haibing
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

2019-03-20 Thread Yue Haibing
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

2019-03-20 Thread Yue Haibing
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, _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, _lvl_intc_init);
-- 
2.7.0




[PATCH -next] ntb: intel: Make intel_ntb3_peer_db_addr static

2019-03-20 Thread Yue Haibing
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

2019-03-20 Thread Yue Haibing
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

2019-03-20 Thread Yue Haibing
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

2019-03-20 Thread Yue Haibing
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

2019-03-20 Thread Yue Haibing
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

2019-03-20 Thread Yue Haibing
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(_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(_lock);
__raw_writeb(__raw_readb(wdog) | 1, wdog);
-- 
2.7.0




[PATCH -next] irqchip/mmp: Make mmp_irq_domain_ops static

2019-03-20 Thread Yue Haibing
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

2019-03-20 Thread Yue Haibing
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

2019-03-20 Thread Yue Haibing
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

2019-03-20 Thread Yue Haibing
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()

2019-03-20 Thread Yue Haibing
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 = >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();
 
-   return -EINVAL;
+   return err;
 }
-- 
2.7.0




[PATCH -next] clk: tegra: Make tegra_clk_super_mux_ops static

2019-03-19 Thread Yue Haibing
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

2019-03-19 Thread Yue Haibing
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(>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

2019-03-19 Thread Yue Haibing
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

2019-03-19 Thread Yue Haibing
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

2019-03-19 Thread Yue Haibing
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

2019-03-19 Thread Yue Haibing
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

2019-03-19 Thread Yue Haibing
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

2019-03-19 Thread Yue Haibing
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

2019-03-19 Thread Yue Haibing
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 = >hw;
u32 reg = IGC_RETA(0);
-- 
2.7.4




[PATCH net-next] ibmveth: Make array ibmveth_stats static

2019-03-19 Thread Yue Haibing
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

2019-03-19 Thread Yue Haibing
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

2019-03-19 Thread Yue Haibing
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

2019-03-14 Thread Yue Haibing
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();
 
-   return -EINVAL;
+   return err;
 }
-- 
2.7.0




[PATCH] ARM: dma-mapping: always clear allocated buffers in __alloc_from_pool

2019-03-12 Thread Yue Haibing
From: YueHaibing 

Like commit 518a2f1925c3 ("dma-mapping: zero memory returned
from dma_alloc_*"), if we want to map memory from the DMA
allocator to userspace it must be zeroed at allocation time 
to prevent stale data leaks. On arm platform, if the allocator
is pool_allocator in __dma_alloc, then the mem is alloced by
__alloc_from_pool, which also need be zeroed.

Signed-off-by: YueHaibing 
---
 arch/arm/mm/dma-mapping.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/arch/arm/mm/dma-mapping.c b/arch/arm/mm/dma-mapping.c
index 8a90f29..28ad6d5 100644
--- a/arch/arm/mm/dma-mapping.c
+++ b/arch/arm/mm/dma-mapping.c
@@ -558,6 +558,7 @@ static void *__alloc_from_pool(size_t size, struct page 
**ret_page)
 
*ret_page = phys_to_page(phys);
ptr = (void *)val;
+   memset(ptr, 0, size);
}
 
return ptr;
-- 
2.7.0




  1   2   >