Re: [tty:tty-testing 55/91] drivers/tty/serial/serial_core.c:2149:7: error: implicit declaration of function 'irqd_is_wakeup_set'

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, 2017-08-29 at 00:14 +0800, kbuild test robot wrote:
> tree:   https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty.git
>  tty-testing
> head:   7f490ac24ed4b59ef8807c31e46a9afea1ca43c6
> commit: f564c1027c1faaf46f3d4191f37d97a1d9ee9022 [55/91] serial: core:
> remove unneeded irq_wake flag
> config: arm-lart_defconfig (attached as .config)
> compiler: arm-linux-gnueabi-gcc (Debian 6.1.1-9) 6.1.1 20160705
> reproduce:
>         wget https://raw.githubusercontent.com/01org/lkp-tests/master/
> sbin/make.cross -O ~/bin/make.cross
>         chmod +x ~/bin/make.cross
>         git checkout f564c1027c1faaf46f3d4191f37d97a1d9ee9022
>         # save the attached .config to linux build tree
>         make.cross ARCH=arm 
> 
> All errors (new ones prefixed by >>):
> 
>    drivers/tty/serial/serial_core.c: In function 'uart_resume_port':
> > > drivers/tty/serial/serial_core.c:2149:7: error: implicit
> > > declaration of function 'irqd_is_wakeup_set' [-Werror=implicit-
> > > function-declaration]
> 
>       if (irqd_is_wakeup_set(irq_get_irq_data((uport->irq))))
>           ^~~~~~~~~~~~~~~~~~
> > > drivers/tty/serial/serial_core.c:2149:26: error: implicit
> > > declaration of function 'irq_get_irq_data' [-Werror=implicit-
> > > function-declaration]
> 
>       if (irqd_is_wakeup_set(irq_get_irq_data((uport->irq))))
>                              ^~~~~~~~~~~~~~~~
>    cc1: some warnings being treated as errors
> 
> vim +/irqd_is_wakeup_set +2149 drivers/tty/serial/serial_core.c

Nice.

So it means on x86 this is hidden.

I _think_ it should be fixed by

--- a/drivers/tty/serial/serial_core.c
+++ b/drivers/tty/serial/serial_core.c
@@ -37,7 +37,7 @@
 #include <linux/mutex.h>
 #include <linux/pm_runtime.h>
 
-#include <asm/irq.h>
+#include <linux/irq.h>
 #include <linux/uaccess.h>
 
 /*

Greg, would you like me to resend that patch with above change included
or just a fix up?

> 
>   2136	
>   2137	int uart_resume_port(struct uart_driver *drv, struct
> uart_port *uport)
>   2138	{
>   2139		struct uart_state *state = drv->state + uport-
> >line;
>   2140		struct tty_port *port = &state->port;
>   2141		struct device *tty_dev;
>   2142		struct uart_match match = {uport, drv};
>   2143		struct ktermios termios;
>   2144	
>   2145		mutex_lock(&port->mutex);
>   2146	
>   2147		tty_dev = device_find_child(uport->dev, &match,
> serial_match_port);
>   2148		if (!uport->suspended &&
> device_may_wakeup(tty_dev)) {
> > 2149			if
> > (irqd_is_wakeup_set(irq_get_irq_data((uport->irq))))
> 
>   2150				disable_irq_wake(uport->irq);
>   2151			put_device(tty_dev);
>   2152			mutex_unlock(&port->mutex);
>   2153			return 0;
>   2154		}
>   2155		put_device(tty_dev);
>   2156		uport->suspended = 0;
>   2157	
>   2158		/*
>   2159		 * Re-enable the console device after
> suspending.
>   2160		 */
>   2161		if (uart_console(uport)) {
>   2162			/*
>   2163			 * First try to use the console cflag
> setting.
>   2164			 */
>   2165			memset(&termios, 0, sizeof(struct
> ktermios));
>   2166			termios.c_cflag = uport->cons->cflag;
>   2167	
>   2168			/*
>   2169			 * If that's unset, use the tty termios
> setting.
>   2170			 */
>   2171			if (port->tty && termios.c_cflag == 0)
>   2172				termios = port->tty->termios;
>   2173	
>   2174			if (console_suspend_enabled)
>   2175				uart_change_pm(state,
> UART_PM_STATE_ON);
>   2176			uport->ops->set_termios(uport, &termios,
> NULL);
>   2177			if (console_suspend_enabled)
>   2178				console_start(uport->cons);
>   2179		}
>   2180	
>   2181		if (tty_port_suspended(port)) {
>   2182			const struct uart_ops *ops = uport->ops;
>   2183			int ret;
>   2184	
>   2185			uart_change_pm(state, UART_PM_STATE_ON);
>   2186			spin_lock_irq(&uport->lock);
>   2187			ops->set_mctrl(uport, 0);
>   2188			spin_unlock_irq(&uport->lock);
>   2189			if (console_suspend_enabled ||
> !uart_console(uport)) {
>   2190				/* Protected by port mutex for
> now */
>   2191				struct tty_struct *tty = port-
> >tty;
>   2192				ret = ops->startup(uport);
>   2193				if (ret == 0) {
>   2194					if (tty)
>   2195						uart_change_spee
> d(tty, state, NULL);
>   2196					spin_lock_irq(&uport-
> >lock);
>   2197					ops->set_mctrl(uport,
> uport->mctrl);
>   2198					ops->start_tx(uport);
>   2199					spin_unlock_irq(&uport-
> >lock);
>   2200					tty_port_set_initialized
> (port, 1);
>   2201				} else {
>   2202					/*
>   2203					 * Failed to resume -
> maybe hardware went away?
>   2204					 * Clear the
> "initialized" flag so we won't try
>   2205					 * to call the low level
> drivers shutdown method.
>   2206					 */
>   2207					uart_shutdown(tty,
> state);
>   2208				}
>   2209			}
>   2210	
>   2211			tty_port_set_suspended(port, 0);
>   2212		}
>   2213	
>   2214		mutex_unlock(&port->mutex);
>   2215	
>   2216		return 0;
>   2217	}
>   2218	
> 
> ---
> 0-DAY kernel test infrastructure                Open Source Technology
> Center
> https://lists.01.org/pipermail/kbuild-all                   Intel
> Corporation

-- 
Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx>
Intel Finland Oy
--
To unsubscribe from this list: send the line "unsubscribe linux-serial" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Kernel Newbies]     [Security]     [Netfilter]     [Bugtraq]     [Linux PPP]     [Linux FS]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Video 4 Linux]     [Linmodem]     [Device Mapper]     [Linux Kernel for ARM]

  Powered by Linux