Messages in this thread | | | Date | Thu, 4 Aug 2022 20:49:13 +0800 | From | kernel test robot <> | Subject | [kuba:gnl-gen-dpll 111/133] drivers/ptp/ptp_ocp.c:3721:41: error: call to undeclared function 'dpll_priv'; ISO C99 and later do not support implicit function declarations |
| |
tree: https://git.kernel.org/pub/scm/linux/kernel/git/kuba/linux.git gnl-gen-dpll head: fe9b39bc400264b4403591191c918670b7766de9 commit: 48c4cd1d7a94aeb6ab460989f1561117291092a5 [111/133] ptp_ocp: implement DPLL ops config: x86_64-randconfig-a005 (https://download.01.org/0day-ci/archive/20220804/202208042049.C42zYO15-lkp@intel.com/config) compiler: clang version 16.0.0 (https://github.com/llvm/llvm-project 26dd42705c2af0b8f6e5d6cdb32c9bd5ed9524eb) reproduce (this is a W=1 build): wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # https://git.kernel.org/pub/scm/linux/kernel/git/kuba/linux.git/commit/?id=48c4cd1d7a94aeb6ab460989f1561117291092a5 git remote add kuba https://git.kernel.org/pub/scm/linux/kernel/git/kuba/linux.git git fetch --no-tags kuba gnl-gen-dpll git checkout 48c4cd1d7a94aeb6ab460989f1561117291092a5 # save the config file mkdir build_dir && cp config build_dir/.config COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=x86_64 SHELL=/bin/bash drivers/
If you fix the issue, kindly add following tag where applicable Reported-by: kernel test robot <lkp@intel.com>
All errors (new ones prefixed by >>):
>> drivers/ptp/ptp_ocp.c:3721:41: error: call to undeclared function 'dpll_priv'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration] struct ptp_ocp *bp = (struct ptp_ocp *)dpll_priv(dpll); ^ drivers/ptp/ptp_ocp.c:3721:23: warning: cast to 'struct ptp_ocp *' from smaller integer type 'int' [-Wint-to-pointer-cast] struct ptp_ocp *bp = (struct ptp_ocp *)dpll_priv(dpll); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/ptp/ptp_ocp.c:3730:41: error: call to undeclared function 'dpll_priv'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration] struct ptp_ocp *bp = (struct ptp_ocp *)dpll_priv(dpll); ^ drivers/ptp/ptp_ocp.c:3730:23: warning: cast to 'struct ptp_ocp *' from smaller integer type 'int' [-Wint-to-pointer-cast] struct ptp_ocp *bp = (struct ptp_ocp *)dpll_priv(dpll); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ >> drivers/ptp/ptp_ocp.c:3743:7: error: assigning to 'struct ocp_selector *' from 'const struct ocp_selector *const' discards qualifiers [-Werror,-Wincompatible-pointer-types-discards-qualifiers] tbl = bp->sma_op->tbl[0]; ^ ~~~~~~~~~~~~~~~~~~ drivers/ptp/ptp_ocp.c:3745:7: error: assigning to 'struct ocp_selector *' from 'const struct ocp_selector *const' discards qualifiers [-Werror,-Wincompatible-pointer-types-discards-qualifiers] tbl = bp->sma_op->tbl[1]; ^ ~~~~~~~~~~~~~~~~~~ drivers/ptp/ptp_ocp.c:3753:41: error: call to undeclared function 'dpll_priv'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration] struct ptp_ocp *bp = (struct ptp_ocp *)dpll_priv(dpll); ^ drivers/ptp/ptp_ocp.c:3753:23: warning: cast to 'struct ptp_ocp *' from smaller integer type 'int' [-Wint-to-pointer-cast] struct ptp_ocp *bp = (struct ptp_ocp *)dpll_priv(dpll); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ >> drivers/ptp/ptp_ocp.c:3754:23: error: initializing 'struct ocp_selector *' with an expression of type 'const struct ocp_selector *const' discards qualifiers [-Werror,-Wincompatible-pointer-types-discards-qualifiers] struct ocp_selector *tbl = bp->sma_op->tbl[dir]; ^ ~~~~~~~~~~~~~~~~~~~~ drivers/ptp/ptp_ocp.c:3766:41: error: call to undeclared function 'dpll_priv'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration] struct ptp_ocp *bp = (struct ptp_ocp *)dpll_priv(dpll); ^ drivers/ptp/ptp_ocp.c:3766:23: warning: cast to 'struct ptp_ocp *' from smaller integer type 'int' [-Wint-to-pointer-cast] struct ptp_ocp *bp = (struct ptp_ocp *)dpll_priv(dpll); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/ptp/ptp_ocp.c:3781:41: error: call to undeclared function 'dpll_priv'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration] struct ptp_ocp *bp = (struct ptp_ocp *)dpll_priv(dpll); ^ drivers/ptp/ptp_ocp.c:3781:23: warning: cast to 'struct ptp_ocp *' from smaller integer type 'int' [-Wint-to-pointer-cast] struct ptp_ocp *bp = (struct ptp_ocp *)dpll_priv(dpll); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ >> drivers/ptp/ptp_ocp.c:3794:31: error: variable has incomplete type 'struct dpll_device_ops' static struct dpll_device_ops dpll_ops = { ^ drivers/ptp/ptp_ocp.c:3794:15: note: forward declaration of 'struct dpll_device_ops' static struct dpll_device_ops dpll_ops = { ^ >> drivers/ptp/ptp_ocp.c:3859:13: error: call to undeclared function 'dpll_device_alloc'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration] bp->dpll = dpll_device_alloc(&dpll_ops, ARRAY_SIZE(bp->sma), ARRAY_SIZE(bp->sma), bp); ^ >> drivers/ptp/ptp_ocp.c:3864:2: error: call to undeclared function 'dpll_device_register'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration] dpll_device_register(bp->dpll); ^ drivers/ptp/ptp_ocp.c:3864:2: note: did you mean 'device_register'? include/linux/device.h:895:18: note: 'device_register' declared here int __must_check device_register(struct device *dev); ^ >> drivers/ptp/ptp_ocp.c:3883:2: error: call to undeclared function 'dpll_device_unregister'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration] dpll_device_unregister(bp->dpll); ^ >> drivers/ptp/ptp_ocp.c:3884:2: error: call to undeclared function 'dpll_device_free'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration] dpll_device_free(bp->dpll); ^ 5 warnings and 13 errors generated. -- >> drivers/dpll/dpll_core.c:77:21: error: conflicting types for 'dpll_device_alloc' struct dpll_device *dpll_device_alloc(struct dpll_device_ops *ops, int sources_count, ^ include/linux/dpll.h:23:21: note: previous declaration is here struct dpll_device *dpll_device_alloc(struct dpll_device_ops *ops, int sources_count, ^ 1 error generated. -- >> drivers/dpll/dpll_netlink.c:227:24: error: initializing 'const struct nlattr **' with an expression of type 'struct nlattr **' discards qualifiers in nested pointer types [-Werror,-Wincompatible-pointer-types-discards-qualifiers] const struct nlattr **attrs = p->attrs; ^ ~~~~~~~~ drivers/dpll/dpll_netlink.c:252:24: error: initializing 'const struct nlattr **' with an expression of type 'struct nlattr **' discards qualifiers in nested pointer types [-Werror,-Wincompatible-pointer-types-discards-qualifiers] const struct nlattr **attrs = p->attrs; ^ ~~~~~~~~ drivers/dpll/dpll_netlink.c:600:13: warning: no previous prototype for function 'dpll_netlink_fini' [-Wmissing-prototypes] void __exit dpll_netlink_fini(void) ^ drivers/dpll/dpll_netlink.c:600:1: note: declare 'static' if the function is not intended to be used outside of this translation unit void __exit dpll_netlink_fini(void) ^ static 1 warning and 2 errors generated.
vim +/dpll_priv +3721 drivers/ptp/ptp_ocp.c
3718 3719 static int ptp_ocp_dpll_get_status(struct dpll_device *dpll) 3720 { > 3721 struct ptp_ocp *bp = (struct ptp_ocp *)dpll_priv(dpll); 3722 int sync; 3723 3724 sync = ioread32(&bp->reg->status) & OCP_STATUS_IN_SYNC; 3725 return sync; 3726 } 3727 3728 static int ptp_ocp_dpll_get_lock_status(struct dpll_device *dpll) 3729 { 3730 struct ptp_ocp *bp = (struct ptp_ocp *)dpll_priv(dpll); 3731 int sync; 3732 3733 sync = ioread32(&bp->reg->status) & OCP_STATUS_IN_SYNC; 3734 return sync; 3735 } 3736 3737 static int ptp_ocp_sma_get_dpll_type(struct ptp_ocp *bp, int sma_nr) 3738 { 3739 struct ocp_selector *tbl; 3740 u32 val; 3741 3742 if (bp->sma[sma_nr].mode == SMA_MODE_IN) > 3743 tbl = bp->sma_op->tbl[0]; 3744 else 3745 tbl = bp->sma_op->tbl[1]; 3746 3747 val = ptp_ocp_sma_get(bp, sma_nr); 3748 return tbl[val].dpll_type; 3749 } 3750 3751 static int ptp_ocp_dpll_type_supported(struct dpll_device *dpll, int sma, int type, int dir) 3752 { 3753 struct ptp_ocp *bp = (struct ptp_ocp *)dpll_priv(dpll); > 3754 struct ocp_selector *tbl = bp->sma_op->tbl[dir]; 3755 int i; 3756 3757 for (i = 0; i < sizeof(*tbl); i++) { 3758 if (tbl[i].dpll_type == type) 3759 return 1; 3760 } 3761 return 0; 3762 } 3763 3764 static int ptp_ocp_dpll_get_source_type(struct dpll_device *dpll, int sma) 3765 { 3766 struct ptp_ocp *bp = (struct ptp_ocp *)dpll_priv(dpll); 3767 3768 if (bp->sma[sma].mode != SMA_MODE_IN) 3769 return -1; 3770 3771 return ptp_ocp_sma_get_dpll_type(bp, sma); 3772 } 3773 3774 static int ptp_ocp_dpll_get_source_supported(struct dpll_device *dpll, int sma, int type) 3775 { 3776 return ptp_ocp_dpll_type_supported(dpll, sma, type, 0); 3777 } 3778 3779 static int ptp_ocp_dpll_get_output_type(struct dpll_device *dpll, int sma) 3780 { 3781 struct ptp_ocp *bp = (struct ptp_ocp *)dpll_priv(dpll); 3782 3783 if (bp->sma[sma].mode != SMA_MODE_OUT) 3784 return -1; 3785 3786 return ptp_ocp_sma_get_dpll_type(bp, sma); 3787 } 3788 3789 static int ptp_ocp_dpll_get_output_supported(struct dpll_device *dpll, int sma, int type) 3790 { 3791 return ptp_ocp_dpll_type_supported(dpll, sma, type, 1); 3792 } 3793 > 3794 static struct dpll_device_ops dpll_ops = { 3795 .get_status = ptp_ocp_dpll_get_status, 3796 .get_lock_status = ptp_ocp_dpll_get_lock_status, 3797 .get_source_type = ptp_ocp_dpll_get_source_type, 3798 .get_source_supported = ptp_ocp_dpll_get_source_supported, 3799 .get_output_type = ptp_ocp_dpll_get_output_type, 3800 .get_output_supported = ptp_ocp_dpll_get_output_supported, 3801 }; 3802 3803 static int 3804 ptp_ocp_probe(struct pci_dev *pdev, const struct pci_device_id *id) 3805 { 3806 struct devlink *devlink; 3807 struct ptp_ocp *bp; 3808 int err; 3809 3810 devlink = devlink_alloc(&ptp_ocp_devlink_ops, sizeof(*bp), &pdev->dev); 3811 if (!devlink) { 3812 dev_err(&pdev->dev, "devlink_alloc failed\n"); 3813 return -ENOMEM; 3814 } 3815 3816 err = pci_enable_device(pdev); 3817 if (err) { 3818 dev_err(&pdev->dev, "pci_enable_device\n"); 3819 goto out_free; 3820 } 3821 3822 bp = devlink_priv(devlink); 3823 err = ptp_ocp_device_init(bp, pdev); 3824 if (err) 3825 goto out_disable; 3826 3827 /* compat mode. 3828 * Older FPGA firmware only returns 2 irq's. 3829 * allow this - if not all of the IRQ's are returned, skip the 3830 * extra devices and just register the clock. 3831 */ 3832 err = pci_alloc_irq_vectors(pdev, 1, 17, PCI_IRQ_MSI | PCI_IRQ_MSIX); 3833 if (err < 0) { 3834 dev_err(&pdev->dev, "alloc_irq_vectors err: %d\n", err); 3835 goto out; 3836 } 3837 bp->n_irqs = err; 3838 pci_set_master(pdev); 3839 3840 err = ptp_ocp_register_resources(bp, id->driver_data); 3841 if (err) 3842 goto out; 3843 3844 bp->ptp = ptp_clock_register(&bp->ptp_info, &pdev->dev); 3845 if (IS_ERR(bp->ptp)) { 3846 err = PTR_ERR(bp->ptp); 3847 dev_err(&pdev->dev, "ptp_clock_register: %d\n", err); 3848 bp->ptp = NULL; 3849 goto out; 3850 } 3851 3852 err = ptp_ocp_complete(bp); 3853 if (err) 3854 goto out; 3855 3856 ptp_ocp_info(bp); 3857 devlink_register(devlink); 3858 > 3859 bp->dpll = dpll_device_alloc(&dpll_ops, ARRAY_SIZE(bp->sma), ARRAY_SIZE(bp->sma), bp); 3860 if (!bp->dpll) { 3861 dev_err(&pdev->dev, "dpll_device_alloc failed\n"); 3862 return 0; 3863 } > 3864 dpll_device_register(bp->dpll); 3865 3866 return 0; 3867 3868 out: 3869 ptp_ocp_detach(bp); 3870 out_disable: 3871 pci_disable_device(pdev); 3872 out_free: 3873 devlink_free(devlink); 3874 return err; 3875 } 3876 3877 static void 3878 ptp_ocp_remove(struct pci_dev *pdev) 3879 { 3880 struct ptp_ocp *bp = pci_get_drvdata(pdev); 3881 struct devlink *devlink = priv_to_devlink(bp); 3882 > 3883 dpll_device_unregister(bp->dpll); > 3884 dpll_device_free(bp->dpll); 3885 devlink_unregister(devlink); 3886 ptp_ocp_detach(bp); 3887 pci_disable_device(pdev); 3888 3889 devlink_free(devlink); 3890 } 3891
-- 0-DAY CI Kernel Test Service https://01.org/lkp
| |