lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [day] [month] [year] [list]
Date:   Mon, 13 Feb 2017 04:09:25 +0800
From:   kbuild test robot <fengguang.wu@...el.com>
To:     Viresh Kumar <viresh.kumar@...aro.org>
Cc:     kbuild-all@...org, linux-kernel@...r.kernel.org,
        "Rafael J. Wysocki" <rjw@...ysocki.net>,
        Stephen Boyd <sboyd@...eaurora.org>
Subject: drivers/base/power/opp/core.c:302:15: error: redefinition of
 'dev_pm_opp_get_max_transition_latency'

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   1ce42845f987e92eabfc6e026d44d826c25c74a5
commit: 2174344765f472895c076d703c9cdc58215e1393 PM / OPP: Introduce dev_pm_opp_get_max_transition_latency()
date:   1 year ago
config: x86_64-randconfig-x008-201707 (attached as .config)
compiler: gcc-6 (Debian 6.2.0-3) 6.2.0 20160901
reproduce:
        git checkout 2174344765f472895c076d703c9cdc58215e1393
        # save the attached .config to linux build tree
        make ARCH=x86_64 

All errors (new ones prefixed by >>):

   drivers/base/power/opp/core.c:124:15: error: redefinition of 'dev_pm_opp_get_voltage'
    unsigned long dev_pm_opp_get_voltage(struct dev_pm_opp *opp)
                  ^~~~~~~~~~~~~~~~~~~~~~
   In file included from drivers/base/power/opp/opp.h:21:0,
                    from drivers/base/power/opp/core.c:24:
   include/linux/pm_opp.h:68:29: note: previous definition of 'dev_pm_opp_get_voltage' was here
    static inline unsigned long dev_pm_opp_get_voltage(struct dev_pm_opp *opp)
                                ^~~~~~~~~~~~~~~~~~~~~~
   drivers/base/power/opp/core.c:156:15: error: redefinition of 'dev_pm_opp_get_freq'
    unsigned long dev_pm_opp_get_freq(struct dev_pm_opp *opp)
                  ^~~~~~~~~~~~~~~~~~~
   In file included from drivers/base/power/opp/opp.h:21:0,
                    from drivers/base/power/opp/core.c:24:
   include/linux/pm_opp.h:73:29: note: previous definition of 'dev_pm_opp_get_freq' was here
    static inline unsigned long dev_pm_opp_get_freq(struct dev_pm_opp *opp)
                                ^~~~~~~~~~~~~~~~~~~
   drivers/base/power/opp/core.c:191:6: error: redefinition of 'dev_pm_opp_is_turbo'
    bool dev_pm_opp_is_turbo(struct dev_pm_opp *opp)
         ^~~~~~~~~~~~~~~~~~~
   In file included from drivers/base/power/opp/opp.h:21:0,
                    from drivers/base/power/opp/core.c:24:
   include/linux/pm_opp.h:78:20: note: previous definition of 'dev_pm_opp_is_turbo' was here
    static inline bool dev_pm_opp_is_turbo(struct dev_pm_opp *opp)
                       ^~~~~~~~~~~~~~~~~~~
   drivers/base/power/opp/core.c:215:15: error: redefinition of 'dev_pm_opp_get_max_clock_latency'
    unsigned long dev_pm_opp_get_max_clock_latency(struct device *dev)
                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   In file included from drivers/base/power/opp/opp.h:21:0,
                    from drivers/base/power/opp/core.c:24:
   include/linux/pm_opp.h:88:29: note: previous definition of 'dev_pm_opp_get_max_clock_latency' was here
    static inline unsigned long dev_pm_opp_get_max_clock_latency(struct device *dev)
                                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/base/power/opp/core.c:241:15: error: redefinition of 'dev_pm_opp_get_max_volt_latency'
    unsigned long dev_pm_opp_get_max_volt_latency(struct device *dev)
                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   In file included from drivers/base/power/opp/opp.h:21:0,
                    from drivers/base/power/opp/core.c:24:
   include/linux/pm_opp.h:93:29: note: previous definition of 'dev_pm_opp_get_max_volt_latency' was here
    static inline unsigned long dev_pm_opp_get_max_volt_latency(struct device *dev)
                                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>> drivers/base/power/opp/core.c:302:15: error: redefinition of 'dev_pm_opp_get_max_transition_latency'
    unsigned long dev_pm_opp_get_max_transition_latency(struct device *dev)
                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   In file included from drivers/base/power/opp/opp.h:21:0,
                    from drivers/base/power/opp/core.c:24:
   include/linux/pm_opp.h:98:29: note: previous definition of 'dev_pm_opp_get_max_transition_latency' was here
    static inline unsigned long dev_pm_opp_get_max_transition_latency(struct device *dev)
                                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/base/power/opp/core.c:322:20: error: redefinition of 'dev_pm_opp_get_suspend_opp'
    struct dev_pm_opp *dev_pm_opp_get_suspend_opp(struct device *dev)
                       ^~~~~~~~~~~~~~~~~~~~~~~~~~
   In file included from drivers/base/power/opp/opp.h:21:0,
                    from drivers/base/power/opp/core.c:24:
   include/linux/pm_opp.h:103:34: note: previous definition of 'dev_pm_opp_get_suspend_opp' was here
    static inline struct dev_pm_opp *dev_pm_opp_get_suspend_opp(struct device *dev)
                                     ^~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/base/power/opp/core.c:346:5: error: redefinition of 'dev_pm_opp_get_opp_count'
    int dev_pm_opp_get_opp_count(struct device *dev)
        ^~~~~~~~~~~~~~~~~~~~~~~~
   In file included from drivers/base/power/opp/opp.h:21:0,
                    from drivers/base/power/opp/core.c:24:
   include/linux/pm_opp.h:83:19: note: previous definition of 'dev_pm_opp_get_opp_count' was here
    static inline int dev_pm_opp_get_opp_count(struct device *dev)
                      ^~~~~~~~~~~~~~~~~~~~~~~~
   drivers/base/power/opp/core.c:399:20: error: redefinition of 'dev_pm_opp_find_freq_exact'
    struct dev_pm_opp *dev_pm_opp_find_freq_exact(struct device *dev,
                       ^~~~~~~~~~~~~~~~~~~~~~~~~~
   In file included from drivers/base/power/opp/opp.h:21:0,
                    from drivers/base/power/opp/core.c:24:
   include/linux/pm_opp.h:108:34: note: previous definition of 'dev_pm_opp_find_freq_exact' was here
    static inline struct dev_pm_opp *dev_pm_opp_find_freq_exact(struct device *dev,
                                     ^~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/base/power/opp/core.c:448:20: error: redefinition of 'dev_pm_opp_find_freq_ceil'
    struct dev_pm_opp *dev_pm_opp_find_freq_ceil(struct device *dev,
                       ^~~~~~~~~~~~~~~~~~~~~~~~~
   In file included from drivers/base/power/opp/opp.h:21:0,
                    from drivers/base/power/opp/core.c:24:
   include/linux/pm_opp.h:120:34: note: previous definition of 'dev_pm_opp_find_freq_ceil' was here
    static inline struct dev_pm_opp *dev_pm_opp_find_freq_ceil(struct device *dev,
                                     ^~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/base/power/opp/core.c:498:20: error: redefinition of 'dev_pm_opp_find_freq_floor'
    struct dev_pm_opp *dev_pm_opp_find_freq_floor(struct device *dev,
                       ^~~~~~~~~~~~~~~~~~~~~~~~~~
   In file included from drivers/base/power/opp/opp.h:21:0,
                    from drivers/base/power/opp/core.c:24:
   include/linux/pm_opp.h:114:34: note: previous definition of 'dev_pm_opp_find_freq_floor' was here
    static inline struct dev_pm_opp *dev_pm_opp_find_freq_floor(struct device *dev,
                                     ^~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/base/power/opp/core.c:713:6: error: redefinition of 'dev_pm_opp_remove'
    void dev_pm_opp_remove(struct device *dev, unsigned long freq)
         ^~~~~~~~~~~~~~~~~
   In file included from drivers/base/power/opp/opp.h:21:0,
                    from drivers/base/power/opp/core.c:24:
   include/linux/pm_opp.h:132:20: note: previous definition of 'dev_pm_opp_remove' was here
    static inline void dev_pm_opp_remove(struct device *dev, unsigned long freq)
                       ^~~~~~~~~~~~~~~~~
   drivers/base/power/opp/core.c:989:5: error: redefinition of 'dev_pm_opp_set_supported_hw'
    int dev_pm_opp_set_supported_hw(struct device *dev, const u32 *versions,
        ^~~~~~~~~~~~~~~~~~~~~~~~~~~
   In file included from drivers/base/power/opp/opp.h:21:0,
                    from drivers/base/power/opp/core.c:24:
   include/linux/pm_opp.h:152:19: note: previous definition of 'dev_pm_opp_set_supported_hw' was here
    static inline int dev_pm_opp_set_supported_hw(struct device *dev,
                      ^~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/base/power/opp/core.c:1049:6: error: redefinition of 'dev_pm_opp_put_supported_hw'
    void dev_pm_opp_put_supported_hw(struct device *dev)
         ^~~~~~~~~~~~~~~~~~~~~~~~~~~
   In file included from drivers/base/power/opp/opp.h:21:0,
                    from drivers/base/power/opp/core.c:24:
   include/linux/pm_opp.h:159:20: note: previous definition of 'dev_pm_opp_put_supported_hw' was here
    static inline void dev_pm_opp_put_supported_hw(struct device *dev) {}
                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/base/power/opp/core.c:1100:5: error: redefinition of 'dev_pm_opp_set_prop_name'
    int dev_pm_opp_set_prop_name(struct device *dev, const char *name)
        ^~~~~~~~~~~~~~~~~~~~~~~~
   In file included from drivers/base/power/opp/opp.h:21:0,
                    from drivers/base/power/opp/core.c:24:
   include/linux/pm_opp.h:161:19: note: previous definition of 'dev_pm_opp_set_prop_name' was here
    static inline int dev_pm_opp_set_prop_name(struct device *dev, const char *name)
                      ^~~~~~~~~~~~~~~~~~~~~~~~
   drivers/base/power/opp/core.c:1157:6: error: redefinition of 'dev_pm_opp_put_prop_name'
    void dev_pm_opp_put_prop_name(struct device *dev)
         ^~~~~~~~~~~~~~~~~~~~~~~~
   In file included from drivers/base/power/opp/opp.h:21:0,
                    from drivers/base/power/opp/core.c:24:
   include/linux/pm_opp.h:166:20: note: previous definition of 'dev_pm_opp_put_prop_name' was here
    static inline void dev_pm_opp_put_prop_name(struct device *dev) {}
                       ^~~~~~~~~~~~~~~~~~~~~~~~
   drivers/base/power/opp/core.c:1206:5: error: redefinition of 'dev_pm_opp_set_regulator'
    int dev_pm_opp_set_regulator(struct device *dev, const char *name)
        ^~~~~~~~~~~~~~~~~~~~~~~~
   In file included from drivers/base/power/opp/opp.h:21:0,
                    from drivers/base/power/opp/core.c:24:
   include/linux/pm_opp.h:168:19: note: previous definition of 'dev_pm_opp_set_regulator' was here
    static inline int dev_pm_opp_set_regulator(struct device *dev, const char *name)
                      ^~~~~~~~~~~~~~~~~~~~~~~~
   drivers/base/power/opp/core.c:1265:6: error: redefinition of 'dev_pm_opp_put_regulator'
    void dev_pm_opp_put_regulator(struct device *dev)
         ^~~~~~~~~~~~~~~~~~~~~~~~
   In file included from drivers/base/power/opp/opp.h:21:0,
                    from drivers/base/power/opp/core.c:24:

vim +/dev_pm_opp_get_max_transition_latency +302 drivers/base/power/opp/core.c

   235	 * @dev: device for which we do this operation
   236	 *
   237	 * Return: This function returns the max voltage latency in nanoseconds.
   238	 *
   239	 * Locking: This function takes rcu_read_lock().
   240	 */
 > 241	unsigned long dev_pm_opp_get_max_volt_latency(struct device *dev)
   242	{
   243		struct device_opp *dev_opp;
   244		struct dev_pm_opp *opp;
   245		struct regulator *reg;
   246		unsigned long latency_ns = 0;
   247		unsigned long min_uV = ~0, max_uV = 0;
   248		int ret;
   249	
   250		rcu_read_lock();
   251	
   252		dev_opp = _find_device_opp(dev);
   253		if (IS_ERR(dev_opp)) {
   254			rcu_read_unlock();
   255			return 0;
   256		}
   257	
   258		reg = dev_opp->regulator;
   259		if (IS_ERR_OR_NULL(reg)) {
   260			/* Regulator may not be required for device */
   261			if (reg)
   262				dev_err(dev, "%s: Invalid regulator (%ld)\n", __func__,
   263					PTR_ERR(reg));
   264			rcu_read_unlock();
   265			return 0;
   266		}
   267	
   268		list_for_each_entry_rcu(opp, &dev_opp->opp_list, node) {
   269			if (!opp->available)
   270				continue;
   271	
   272			if (opp->u_volt_min < min_uV)
   273				min_uV = opp->u_volt_min;
   274			if (opp->u_volt_max > max_uV)
   275				max_uV = opp->u_volt_max;
   276		}
   277	
   278		rcu_read_unlock();
   279	
   280		/*
   281		 * The caller needs to ensure that dev_opp (and hence the regulator)
   282		 * isn't freed, while we are executing this routine.
   283		 */
   284		ret = regulator_set_voltage_time(reg, min_uV, max_uV);
   285		if (ret > 0)
   286			latency_ns = ret * 1000;
   287	
   288		return latency_ns;
   289	}
   290	EXPORT_SYMBOL_GPL(dev_pm_opp_get_max_volt_latency);
   291	
   292	/**
   293	 * dev_pm_opp_get_max_transition_latency() - Get max transition latency in
   294	 *					     nanoseconds
   295	 * @dev: device for which we do this operation
   296	 *
   297	 * Return: This function returns the max transition latency, in nanoseconds, to
   298	 * switch from one OPP to other.
   299	 *
   300	 * Locking: This function takes rcu_read_lock().
   301	 */
 > 302	unsigned long dev_pm_opp_get_max_transition_latency(struct device *dev)
   303	{
   304		return dev_pm_opp_get_max_volt_latency(dev) +
   305			dev_pm_opp_get_max_clock_latency(dev);

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

Download attachment ".config.gz" of type "application/gzip" (29059 bytes)

Powered by blists - more mailing lists