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