CC: [email protected] BCC: [email protected] CC: [email protected] TO: Lad Prabhakar <[email protected]> CC: "Marc Kleine-Budde" <[email protected]>
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master head: 8013d1d3d2e33236dee13a133fba49ad55045e79 commit: eff104cf3cf328ade52469b269c1b9b81f78a3f5 can: ti_hecc: ti_hecc_probe(): use platform_get_irq() to get the interrupt date: 4 months ago :::::: branch date: 8 hours ago :::::: commit date: 4 months ago compiler: arm-linux-gnueabi-gcc (GCC) 11.3.0 reproduce (cppcheck warning): # apt-get install cppcheck git checkout eff104cf3cf328ade52469b269c1b9b81f78a3f5 cppcheck --quiet --enable=style,performance,portability --template=gcc FILE If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot <[email protected]> cppcheck possible warnings: (new ones prefixed by >>, may not real problems) >> drivers/net/can/ti_hecc.c:936:6: warning: Redundant initialization for >> 'err'. The initialized value is overwritten before it is read. >> [redundantInitialization] err = clk_prepare_enable(priv->clk); ^ drivers/net/can/ti_hecc.c:863:10: note: err is initialized int err = -ENODEV; ^ drivers/net/can/ti_hecc.c:936:6: note: err is overwritten err = clk_prepare_enable(priv->clk); ^ vim +/err +936 drivers/net/can/ti_hecc.c dabf54dd1c6369 Yegor Yefremov 2017-02-17 856 3758bf25db8cae Anant Gole 2009-10-07 857 static int ti_hecc_probe(struct platform_device *pdev) 3758bf25db8cae Anant Gole 2009-10-07 858 { 3758bf25db8cae Anant Gole 2009-10-07 859 struct net_device *ndev = (struct net_device *)0; 3758bf25db8cae Anant Gole 2009-10-07 860 struct ti_hecc_priv *priv; dabf54dd1c6369 Yegor Yefremov 2017-02-17 861 struct device_node *np = pdev->dev.of_node; dabf54dd1c6369 Yegor Yefremov 2017-02-17 862 struct regulator *reg_xceiver; 3758bf25db8cae Anant Gole 2009-10-07 863 int err = -ENODEV; 3758bf25db8cae Anant Gole 2009-10-07 864 dabf54dd1c6369 Yegor Yefremov 2017-02-17 865 if (!IS_ENABLED(CONFIG_OF) || !np) dabf54dd1c6369 Yegor Yefremov 2017-02-17 866 return -EINVAL; dabf54dd1c6369 Yegor Yefremov 2017-02-17 867 dabf54dd1c6369 Yegor Yefremov 2017-02-17 868 reg_xceiver = devm_regulator_get(&pdev->dev, "xceiver"); dabf54dd1c6369 Yegor Yefremov 2017-02-17 869 if (PTR_ERR(reg_xceiver) == -EPROBE_DEFER) dabf54dd1c6369 Yegor Yefremov 2017-02-17 870 return -EPROBE_DEFER; dabf54dd1c6369 Yegor Yefremov 2017-02-17 871 else if (IS_ERR(reg_xceiver)) dabf54dd1c6369 Yegor Yefremov 2017-02-17 872 reg_xceiver = NULL; dabf54dd1c6369 Yegor Yefremov 2017-02-17 873 dabf54dd1c6369 Yegor Yefremov 2017-02-17 874 ndev = alloc_candev(sizeof(struct ti_hecc_priv), HECC_MAX_TX_MBOX); dabf54dd1c6369 Yegor Yefremov 2017-02-17 875 if (!ndev) { dabf54dd1c6369 Yegor Yefremov 2017-02-17 876 dev_err(&pdev->dev, "alloc_candev failed\n"); dabf54dd1c6369 Yegor Yefremov 2017-02-17 877 return -ENOMEM; 3758bf25db8cae Anant Gole 2009-10-07 878 } dabf54dd1c6369 Yegor Yefremov 2017-02-17 879 priv = netdev_priv(ndev); 3758bf25db8cae Anant Gole 2009-10-07 880 dabf54dd1c6369 Yegor Yefremov 2017-02-17 881 /* handle hecc memory */ 0cf38586c2162a Dejin Zheng 2020-04-20 882 priv->base = devm_platform_ioremap_resource_byname(pdev, "hecc"); b655f0e96d4061 Wei Yongjun 2017-04-25 883 if (IS_ERR(priv->base)) { dabf54dd1c6369 Yegor Yefremov 2017-02-17 884 dev_err(&pdev->dev, "hecc ioremap failed\n"); 7968c7c79d3be8 Zhang Qilong 2020-11-14 885 err = PTR_ERR(priv->base); 7968c7c79d3be8 Zhang Qilong 2020-11-14 886 goto probe_exit_candev; 3758bf25db8cae Anant Gole 2009-10-07 887 } dabf54dd1c6369 Yegor Yefremov 2017-02-17 888 dabf54dd1c6369 Yegor Yefremov 2017-02-17 889 /* handle hecc-ram memory */ 0cf38586c2162a Dejin Zheng 2020-04-20 890 priv->hecc_ram = devm_platform_ioremap_resource_byname(pdev, 0cf38586c2162a Dejin Zheng 2020-04-20 891 "hecc-ram"); b655f0e96d4061 Wei Yongjun 2017-04-25 892 if (IS_ERR(priv->hecc_ram)) { dabf54dd1c6369 Yegor Yefremov 2017-02-17 893 dev_err(&pdev->dev, "hecc-ram ioremap failed\n"); 7968c7c79d3be8 Zhang Qilong 2020-11-14 894 err = PTR_ERR(priv->hecc_ram); 7968c7c79d3be8 Zhang Qilong 2020-11-14 895 goto probe_exit_candev; 3758bf25db8cae Anant Gole 2009-10-07 896 } 3758bf25db8cae Anant Gole 2009-10-07 897 dabf54dd1c6369 Yegor Yefremov 2017-02-17 898 /* handle mbx memory */ 0cf38586c2162a Dejin Zheng 2020-04-20 899 priv->mbx = devm_platform_ioremap_resource_byname(pdev, "mbx"); b655f0e96d4061 Wei Yongjun 2017-04-25 900 if (IS_ERR(priv->mbx)) { dabf54dd1c6369 Yegor Yefremov 2017-02-17 901 dev_err(&pdev->dev, "mbx ioremap failed\n"); 7968c7c79d3be8 Zhang Qilong 2020-11-14 902 err = PTR_ERR(priv->mbx); 7968c7c79d3be8 Zhang Qilong 2020-11-14 903 goto probe_exit_candev; dabf54dd1c6369 Yegor Yefremov 2017-02-17 904 } dabf54dd1c6369 Yegor Yefremov 2017-02-17 905 eff104cf3cf328 Lad Prabhakar 2021-12-21 906 ndev->irq = platform_get_irq(pdev, 0); eff104cf3cf328 Lad Prabhakar 2021-12-21 907 if (ndev->irq < 0) { eff104cf3cf328 Lad Prabhakar 2021-12-21 908 err = ndev->irq; 7968c7c79d3be8 Zhang Qilong 2020-11-14 909 goto probe_exit_candev; 3758bf25db8cae Anant Gole 2009-10-07 910 } 3758bf25db8cae Anant Gole 2009-10-07 911 3758bf25db8cae Anant Gole 2009-10-07 912 priv->ndev = ndev; dabf54dd1c6369 Yegor Yefremov 2017-02-17 913 priv->reg_xceiver = reg_xceiver; dabf54dd1c6369 Yegor Yefremov 2017-02-17 914 priv->use_hecc1int = of_property_read_bool(np, "ti,use-hecc1int"); 3758bf25db8cae Anant Gole 2009-10-07 915 3758bf25db8cae Anant Gole 2009-10-07 916 priv->can.bittiming_const = &ti_hecc_bittiming_const; 3758bf25db8cae Anant Gole 2009-10-07 917 priv->can.do_set_mode = ti_hecc_do_set_mode; 79d0d8a7d5edca Wolfgang Grandegger 2012-02-01 918 priv->can.do_get_berr_counter = ti_hecc_get_berr_counter; ad72c347e56bf3 Christian Pellegrin 2010-01-14 919 priv->can.ctrlmode_supported = CAN_CTRLMODE_3_SAMPLES; 3758bf25db8cae Anant Gole 2009-10-07 920 86ad47fff97a9e Abhilash K V 2011-08-23 921 spin_lock_init(&priv->mbx_lock); 3758bf25db8cae Anant Gole 2009-10-07 922 ndev->flags |= IFF_ECHO; 3758bf25db8cae Anant Gole 2009-10-07 923 platform_set_drvdata(pdev, ndev); 3758bf25db8cae Anant Gole 2009-10-07 924 SET_NETDEV_DEV(ndev, &pdev->dev); 3758bf25db8cae Anant Gole 2009-10-07 925 ndev->netdev_ops = &ti_hecc_netdev_ops; 3758bf25db8cae Anant Gole 2009-10-07 926 3758bf25db8cae Anant Gole 2009-10-07 927 priv->clk = clk_get(&pdev->dev, "hecc_ck"); 3758bf25db8cae Anant Gole 2009-10-07 928 if (IS_ERR(priv->clk)) { 3758bf25db8cae Anant Gole 2009-10-07 929 dev_err(&pdev->dev, "No clock available\n"); 3758bf25db8cae Anant Gole 2009-10-07 930 err = PTR_ERR(priv->clk); 3758bf25db8cae Anant Gole 2009-10-07 931 priv->clk = NULL; 3758bf25db8cae Anant Gole 2009-10-07 932 goto probe_exit_candev; 3758bf25db8cae Anant Gole 2009-10-07 933 } 3758bf25db8cae Anant Gole 2009-10-07 934 priv->can.clock.freq = clk_get_rate(priv->clk); 3758bf25db8cae Anant Gole 2009-10-07 935 befa60113ce7ea Yegor Yefremov 2017-01-18 @936 err = clk_prepare_enable(priv->clk); befa60113ce7ea Yegor Yefremov 2017-01-18 937 if (err) { befa60113ce7ea Yegor Yefremov 2017-01-18 938 dev_err(&pdev->dev, "clk_prepare_enable() failed\n"); e002103b36a695 Zhang Changzhong 2020-07-17 939 goto probe_exit_release_clk; befa60113ce7ea Yegor Yefremov 2017-01-18 940 } befa60113ce7ea Yegor Yefremov 2017-01-18 941 4c7f715485159a Jeroen Hofstee 2019-04-29 942 priv->offload.mailbox_read = ti_hecc_mailbox_read; 4c7f715485159a Jeroen Hofstee 2019-04-29 943 priv->offload.mb_first = HECC_RX_FIRST_MBOX; 678d85ed8554e1 Jeroen Hofstee 2019-09-24 944 priv->offload.mb_last = HECC_RX_LAST_MBOX; 4c7f715485159a Jeroen Hofstee 2019-04-29 945 err = can_rx_offload_add_timestamp(ndev, &priv->offload); 4c7f715485159a Jeroen Hofstee 2019-04-29 946 if (err) { 4c7f715485159a Jeroen Hofstee 2019-04-29 947 dev_err(&pdev->dev, "can_rx_offload_add_timestamp() failed\n"); e002103b36a695 Zhang Changzhong 2020-07-17 948 goto probe_exit_disable_clk; 4c7f715485159a Jeroen Hofstee 2019-04-29 949 } 4c7f715485159a Jeroen Hofstee 2019-04-29 950 3758bf25db8cae Anant Gole 2009-10-07 951 err = register_candev(ndev); 3758bf25db8cae Anant Gole 2009-10-07 952 if (err) { 3758bf25db8cae Anant Gole 2009-10-07 953 dev_err(&pdev->dev, "register_candev() failed\n"); 4c7f715485159a Jeroen Hofstee 2019-04-29 954 goto probe_exit_offload; 3758bf25db8cae Anant Gole 2009-10-07 955 } d7ff5aae6ce367 Fabio Baltieri 2012-12-18 956 d7ff5aae6ce367 Fabio Baltieri 2012-12-18 957 devm_can_led_init(ndev); d7ff5aae6ce367 Fabio Baltieri 2012-12-18 958 3758bf25db8cae Anant Gole 2009-10-07 959 dev_info(&pdev->dev, "device registered (reg_base=%p, irq=%u)\n", 3758bf25db8cae Anant Gole 2009-10-07 960 priv->base, (u32)ndev->irq); 3758bf25db8cae Anant Gole 2009-10-07 961 3758bf25db8cae Anant Gole 2009-10-07 962 return 0; 3758bf25db8cae Anant Gole 2009-10-07 963 4c7f715485159a Jeroen Hofstee 2019-04-29 964 probe_exit_offload: 4c7f715485159a Jeroen Hofstee 2019-04-29 965 can_rx_offload_del(&priv->offload); e002103b36a695 Zhang Changzhong 2020-07-17 966 probe_exit_disable_clk: e002103b36a695 Zhang Changzhong 2020-07-17 967 clk_disable_unprepare(priv->clk); e002103b36a695 Zhang Changzhong 2020-07-17 968 probe_exit_release_clk: 3758bf25db8cae Anant Gole 2009-10-07 969 clk_put(priv->clk); 3758bf25db8cae Anant Gole 2009-10-07 970 probe_exit_candev: 3758bf25db8cae Anant Gole 2009-10-07 971 free_candev(ndev); 7968c7c79d3be8 Zhang Qilong 2020-11-14 972 3758bf25db8cae Anant Gole 2009-10-07 973 return err; 3758bf25db8cae Anant Gole 2009-10-07 974 } 3758bf25db8cae Anant Gole 2009-10-07 975 :::::: The code at line 936 was first introduced by commit :::::: befa60113ce7ea270cb51eada28443ca2756f480 can: ti_hecc: add missing prepare and unprepare of the clock :::::: TO: Yegor Yefremov <[email protected]> :::::: CC: Marc Kleine-Budde <[email protected]> -- 0-DAY CI Kernel Test Service https://01.org/lkp _______________________________________________ kbuild mailing list -- [email protected] To unsubscribe send an email to [email protected]
