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  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <201606101452.yH3kUYBO%fengguang.wu@intel.com>
Date:	Fri, 10 Jun 2016 14:44:54 +0800
From:	kbuild test robot <lkp@...el.com>
To:	John Stultz <john.stultz@...aro.org>
Cc:	kbuild-all@...org, lkml <linux-kernel@...r.kernel.org>,
	Jorge Ramirez-Ortiz <jorge.ramirez-ortiz@...aro.org>,
	Dmitry Torokhov <dmitry.torokhov@...il.com>,
	Rob Herring <robh+dt@...nel.org>,
	Lee Jones <lee.jones@...aro.org>,
	Feng Chen <puck.chen@...ilicon.com>,
	Wei Xu <xuwei5@...ilicon.com>,
	Guodong Xu <guodong.xu@...aro.org>,
	John Stultz <john.stultz@...aro.org>
Subject: Re: [PATCH 1/3] drivers: input: powerkey for HISI 65xx SoC

Hi,

[auto build test ERROR on ljones-mfd/for-mfd-next]
[also build test ERROR on v4.7-rc2 next-20160609]
[cannot apply to input/next]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]

url:    https://github.com/0day-ci/linux/commits/John-Stultz/Hi655x-powerkey-support-for-HiKey-v3/20160610-133804
base:   https://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd.git for-mfd-next
config: i386-allmodconfig (attached as .config)
compiler: gcc-6 (Debian 6.1.1-1) 6.1.1 20160430
reproduce:
        # save the attached .config to linux build tree
        make ARCH=i386 

All error/warnings (new ones prefixed by >>):

   In file included from drivers/input/misc/hisi_powerkey.c:21:0:
>> drivers/input/misc/hisi_powerkey.c:135:25: error: 'hi65xx_powerkey_of_match' undeclared here (not in a function)
    MODULE_DEVICE_TABLE(of, hi65xx_powerkey_of_match);
                            ^
   include/linux/module.h:223:21: note: in definition of macro 'MODULE_DEVICE_TABLE'
    extern const typeof(name) __mod_##type##__##name##_device_table  \
                        ^~~~
>> include/linux/module.h:223:27: error: '__mod_of__hi65xx_powerkey_of_match_device_table' aliased to undefined symbol 'hi65xx_powerkey_of_match'
    extern const typeof(name) __mod_##type##__##name##_device_table  \
                              ^
>> drivers/input/misc/hisi_powerkey.c:135:1: note: in expansion of macro 'MODULE_DEVICE_TABLE'
    MODULE_DEVICE_TABLE(of, hi65xx_powerkey_of_match);
    ^~~~~~~~~~~~~~~~~~~

vim +/hi65xx_powerkey_of_match +135 drivers/input/misc/hisi_powerkey.c

    15	 */
    16	
    17	#include <linux/platform_device.h>
    18	#include <linux/interrupt.h>
    19	#include <linux/reboot.h>
    20	#include <linux/kernel.h>
  > 21	#include <linux/module.h>
    22	#include <linux/of_irq.h>
    23	#include <linux/input.h>
    24	#include <linux/slab.h>
    25	
    26	/* the held interrupt will trigger after 4 seconds */
    27	#define MAX_HELD_TIME	(4 * MSEC_PER_SEC)
    28	
    29	
    30	enum id_action { ID_PRESSED, ID_RELEASED, ID_HELD, ID_LAST };
    31	const char *const irq_names[ID_LAST] = {"down", "up", "hold 4s"};
    32	
    33	struct hi65xx_priv {
    34		struct input_dev *input;
    35	};
    36	
    37	static irqreturn_t hi65xx_power_press_isr(int irq, void *q)
    38	{
    39		struct hi65xx_priv *p = q;
    40	
    41		pm_wakeup_event(p->input->dev.parent, MAX_HELD_TIME);
    42		input_report_key(p->input, KEY_POWER, 1);
    43		input_sync(p->input);
    44	
    45		return IRQ_HANDLED;
    46	}
    47	
    48	static irqreturn_t hi65xx_power_release_isr(int irq, void *q)
    49	{
    50		struct hi65xx_priv *p = q;
    51	
    52		pm_wakeup_event(p->input->dev.parent, MAX_HELD_TIME);
    53		input_report_key(p->input, KEY_POWER, 0);
    54		input_sync(p->input);
    55	
    56		return IRQ_HANDLED;
    57	}
    58	
    59	static irqreturn_t hi65xx_restart_toggle_isr(int irq, void *q)
    60	{
    61		struct hi65xx_priv *p = q;
    62		int value = test_bit(KEY_RESTART, p->input->key);
    63	
    64		pm_wakeup_event(p->input->dev.parent, MAX_HELD_TIME);
    65		input_report_key(p->input, KEY_RESTART, !value);
    66		input_sync(p->input);
    67	
    68		return IRQ_HANDLED;
    69	}
    70	
    71	irqreturn_t (*irq_handlers[ID_LAST])(int irq, void *q) = {
    72		hi65xx_power_press_isr,
    73		hi65xx_power_release_isr,
    74		hi65xx_restart_toggle_isr,
    75	};
    76	
    77	static int hi65xx_powerkey_probe(struct platform_device *pdev)
    78	{
    79		struct device *dev = &pdev->dev;
    80		struct hi65xx_priv *priv;
    81		int irq, i, ret;
    82	
    83		priv = devm_kzalloc(dev, sizeof(struct hi65xx_priv), GFP_KERNEL);
    84		if (!priv)
    85			return -ENOMEM;
    86	
    87		priv->input = devm_input_allocate_device(&pdev->dev);
    88		if (!priv->input) {
    89			dev_err(&pdev->dev, "failed to allocate input device\n");
    90			return -ENOMEM;
    91		}
    92	
    93		priv->input->phys = "hisi_on/input0";
    94		priv->input->name = "HISI 65xx PowerOn Key";
    95	
    96		input_set_capability(priv->input, EV_KEY, KEY_POWER);
    97		input_set_capability(priv->input, EV_KEY, KEY_RESTART);
    98	
    99		for (i = 0; i < ID_LAST; i++) {
   100	
   101			irq = platform_get_irq_byname(pdev, irq_names[i]);
   102			if (irq < 0) {
   103				dev_err(dev, "couldn't get irq %s\n", irq_names[i]);
   104				return irq;
   105			}
   106	
   107			ret = devm_request_any_context_irq(dev, irq,
   108						irq_handlers[i], IRQF_ONESHOT,
   109						irq_names[i], priv);
   110			if (ret < 0) {
   111				dev_err(dev, "couldn't get irq %s\n", irq_names[i]);
   112				return ret;
   113			}
   114		}
   115	
   116		ret = input_register_device(priv->input);
   117		if (ret) {
   118			dev_err(&pdev->dev, "failed to register input device: %d\n",
   119				ret);
   120			return ret;
   121		}
   122	
   123		platform_set_drvdata(pdev, priv);
   124		device_init_wakeup(&pdev->dev, 1);
   125	
   126		return 0;
   127	}
   128	
   129	static int hi65xx_powerkey_remove(struct platform_device *pdev)
   130	{
   131		device_init_wakeup(&pdev->dev, 0);
   132		return 0;
   133	}
   134	
 > 135	MODULE_DEVICE_TABLE(of, hi65xx_powerkey_of_match);
   136	
   137	static struct platform_driver hi65xx_powerkey_driver = {
   138		.driver = {

---
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/octet-stream" (54457 bytes)

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ