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]
.config.gz
Description: application/gzip
_______________________________________________ kbuild mailing list -- [email protected] To unsubscribe send an email to [email protected]
