CC: [email protected]
TO: Jianqun Xu <[email protected]>
CC: 0day robot <[email protected]>

tree:   
https://github.com/0day-ci/linux/commits/UPDATE-20200908-102106/Jianqun-Xu/rockchip-pinctrl-fixes-for-GKI/20200907-114040
head:   a776a4cf1db2ee8aa66af470cd58c14a956c28ff
commit: 2538e20be43ec8b9aa8e5ca1518c9fc3600b502e [2/5] pinctrl: rockchip: make 
driver be tristate module
:::::: branch date: 4 days ago
:::::: commit date: 4 days ago
config: riscv-randconfig-m031-20200911 (attached as .config)
compiler: riscv32-linux-gcc (GCC) 9.3.0

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <[email protected]>
Reported-by: Dan Carpenter <[email protected]>

smatch warnings:
drivers/pinctrl/pinctrl-rockchip.c:2871 rockchip_pinctrl_parse_groups() warn: 
passing a valid pointer to 'PTR_ERR'

# 
https://github.com/0day-ci/linux/commit/2538e20be43ec8b9aa8e5ca1518c9fc3600b502e
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review 
UPDATE-20200908-102106/Jianqun-Xu/rockchip-pinctrl-fixes-for-GKI/20200907-114040
git checkout 2538e20be43ec8b9aa8e5ca1518c9fc3600b502e
vim +/PTR_ERR +2871 drivers/pinctrl/pinctrl-rockchip.c

d3e5116119bd02e Heiko Stübner   2013-06-10  2823  
d3e5116119bd02e Heiko Stübner   2013-06-10  2824  static int 
rockchip_pinctrl_parse_groups(struct device_node *np,
d3e5116119bd02e Heiko Stübner   2013-06-10  2825                                
              struct rockchip_pin_group *grp,
d3e5116119bd02e Heiko Stübner   2013-06-10  2826                                
              struct rockchip_pinctrl *info,
d3e5116119bd02e Heiko Stübner   2013-06-10  2827                                
              u32 index)
d3e5116119bd02e Heiko Stübner   2013-06-10  2828  {
d3e5116119bd02e Heiko Stübner   2013-06-10  2829        struct 
rockchip_pin_bank *bank;
d3e5116119bd02e Heiko Stübner   2013-06-10  2830        int size;
d3e5116119bd02e Heiko Stübner   2013-06-10  2831        const __be32 *list;
d3e5116119bd02e Heiko Stübner   2013-06-10  2832        int num;
d3e5116119bd02e Heiko Stübner   2013-06-10  2833        int i, j;
d3e5116119bd02e Heiko Stübner   2013-06-10  2834        int ret;
d3e5116119bd02e Heiko Stübner   2013-06-10  2835  
94f4e54cecaf3ec Rob Herring     2018-08-27  2836        dev_dbg(info->dev, 
"group(%d): %pOFn\n", index, np);
d3e5116119bd02e Heiko Stübner   2013-06-10  2837  
d3e5116119bd02e Heiko Stübner   2013-06-10  2838        /* Initialise group */
d3e5116119bd02e Heiko Stübner   2013-06-10  2839        grp->name = np->name;
d3e5116119bd02e Heiko Stübner   2013-06-10  2840  
d3e5116119bd02e Heiko Stübner   2013-06-10  2841        /*
d3e5116119bd02e Heiko Stübner   2013-06-10  2842         * the binding format 
is rockchip,pins = <bank pin mux CONFIG>,
d3e5116119bd02e Heiko Stübner   2013-06-10  2843         * do sanity check and 
calculate pins number
d3e5116119bd02e Heiko Stübner   2013-06-10  2844         */
d3e5116119bd02e Heiko Stübner   2013-06-10  2845        list = 
of_get_property(np, "rockchip,pins", &size);
d3e5116119bd02e Heiko Stübner   2013-06-10  2846        /* we do not check 
return since it's safe node passed down */
d3e5116119bd02e Heiko Stübner   2013-06-10  2847        size /= sizeof(*list);
d3e5116119bd02e Heiko Stübner   2013-06-10  2848        if (!size || size % 4) {
d3e5116119bd02e Heiko Stübner   2013-06-10  2849                
dev_err(info->dev, "wrong pins number or pins and configs should be by 4\n");
d3e5116119bd02e Heiko Stübner   2013-06-10  2850                return -EINVAL;
d3e5116119bd02e Heiko Stübner   2013-06-10  2851        }
d3e5116119bd02e Heiko Stübner   2013-06-10  2852  
d3e5116119bd02e Heiko Stübner   2013-06-10  2853        grp->npins = size / 4;
d3e5116119bd02e Heiko Stübner   2013-06-10  2854  
a86854d0c599b32 Kees Cook       2018-06-12  2855        grp->pins = 
devm_kcalloc(info->dev, grp->npins, sizeof(unsigned int),
d3e5116119bd02e Heiko Stübner   2013-06-10  2856                                
                GFP_KERNEL);
a86854d0c599b32 Kees Cook       2018-06-12  2857        grp->data = 
devm_kcalloc(info->dev,
a86854d0c599b32 Kees Cook       2018-06-12  2858                                
        grp->npins,
d3e5116119bd02e Heiko Stübner   2013-06-10  2859                                
        sizeof(struct rockchip_pin_config),
d3e5116119bd02e Heiko Stübner   2013-06-10  2860                                
        GFP_KERNEL);
d3e5116119bd02e Heiko Stübner   2013-06-10  2861        if (!grp->pins || 
!grp->data)
d3e5116119bd02e Heiko Stübner   2013-06-10  2862                return -ENOMEM;
d3e5116119bd02e Heiko Stübner   2013-06-10  2863  
d3e5116119bd02e Heiko Stübner   2013-06-10  2864        for (i = 0, j = 0; i < 
size; i += 4, j++) {
d3e5116119bd02e Heiko Stübner   2013-06-10  2865                const __be32 
*phandle;
d3e5116119bd02e Heiko Stübner   2013-06-10  2866                struct 
device_node *np_config;
d3e5116119bd02e Heiko Stübner   2013-06-10  2867  
d3e5116119bd02e Heiko Stübner   2013-06-10  2868                num = 
be32_to_cpu(*list++);
d3e5116119bd02e Heiko Stübner   2013-06-10  2869                bank = 
bank_num_to_bank(info, num);
d3e5116119bd02e Heiko Stübner   2013-06-10  2870                if 
(IS_ERR(bank))
d3e5116119bd02e Heiko Stübner   2013-06-10 @2871                        return 
PTR_ERR(bank);
d3e5116119bd02e Heiko Stübner   2013-06-10  2872  
d3e5116119bd02e Heiko Stübner   2013-06-10  2873                grp->pins[j] = 
bank->pin_base + be32_to_cpu(*list++);
d3e5116119bd02e Heiko Stübner   2013-06-10  2874                
grp->data[j].func = be32_to_cpu(*list++);
d3e5116119bd02e Heiko Stübner   2013-06-10  2875  
d3e5116119bd02e Heiko Stübner   2013-06-10  2876                phandle = 
list++;
d3e5116119bd02e Heiko Stübner   2013-06-10  2877                if (!phandle)
d3e5116119bd02e Heiko Stübner   2013-06-10  2878                        return 
-EINVAL;
d3e5116119bd02e Heiko Stübner   2013-06-10  2879  
d3e5116119bd02e Heiko Stübner   2013-06-10  2880                np_config = 
of_find_node_by_phandle(be32_to_cpup(phandle));
dd4d01f7bad886c Soren Brinkmann 2015-01-09  2881                ret = 
pinconf_generic_parse_dt_config(np_config, NULL,
d3e5116119bd02e Heiko Stübner   2013-06-10  2882                                
&grp->data[j].configs, &grp->data[j].nconfigs);
d3e5116119bd02e Heiko Stübner   2013-06-10  2883                if (ret)
d3e5116119bd02e Heiko Stübner   2013-06-10  2884                        return 
ret;
d3e5116119bd02e Heiko Stübner   2013-06-10  2885        }
d3e5116119bd02e Heiko Stübner   2013-06-10  2886  
d3e5116119bd02e Heiko Stübner   2013-06-10  2887        return 0;
d3e5116119bd02e Heiko Stübner   2013-06-10  2888  }
d3e5116119bd02e Heiko Stübner   2013-06-10  2889  

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/[email protected]

Attachment: .config.gz
Description: application/gzip

_______________________________________________
kbuild mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to