Re: [RFC] tty/serial/8250: use mctrl_gpio helpers

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

 



On Mon, Mar 21, 2016 at 12:25 PM, Yegor Yefremov
<yegorslists@xxxxxxxxxxxxxx> wrote:
> On Thu, Mar 17, 2016 at 6:02 PM, Uwe Kleine-König
> <u.kleine-koenig@xxxxxxxxxxxxxx> wrote:
>> Hello Yegor,
>>
>> On Thu, Mar 17, 2016 at 04:54:44PM +0100, Yegor Yefremov wrote:
>>> Should I move
>>>
>>> struct mctrl_gpios {
>>>         struct uart_port *port;
>>>         struct gpio_desc *gpio[UART_GPIO_MAX];
>>>         int irq[UART_GPIO_MAX];
>>>         unsigned int mctrl_prev;
>>>         bool mctrl_on;
>>> };
>>>
>>> to serial_mctrl_gpio.h or should I create some routine, that tells me,
>>> if given signal is GPIO or not?
>>
>> That already exists. Check the at91 driver.
>
> See it. Thanks.
>
> Another question: I've got following crash from kernels patch testing
> daemon. Any idea?
>
> [    8.304454] page_owner is disabled
> [    8.307923] rtc_cmos 00:00: setting system clock to 2016-03-09
> 19:56:39 UTC (1457553399)
> [    8.311883] ------------[ cut here ]------------
> [    8.312286] WARNING: CPU: 0 PID: 1 at drivers/tty/tty_io.c:1548
> tty_init_dev+0x154/0x290()
> [    8.313091] tty_init_dev: ttyS driver does not set tty->port. This
> will crash the kernel later. Fix the driver!
> [    8.313937] Modules linked in:
> [    8.314223] CPU: 0 PID: 1 Comm: swapper/0 Not tainted
> 4.5.0-rc4-00223-gd294b23 #904
> [    8.314842]  00000246 00000246 40277d1c 4137c480 40277d44 41b4345c
> 0000060c 40277d34
> [    8.315576]  4106ff33 4146dcd4 4ad00c10 00000001 00000000 40277d4c
> 4106ff86 00000009
> [    8.316312]  40277d44 41b436a8 40277d60 40277d7c 4146dcd4 41b4345c
> 0000060c 41b436a8
> [    8.317048] Call Trace:
> [    8.317259]  [<4137c480>] dump_stack+0x8c/0xbc
> [    8.317625]  [<4106ff33>] warn_slowpath_common+0xa3/0xd0
> [    8.318064]  [<4146dcd4>] ? tty_init_dev+0x154/0x290
> [    8.318468]  [<4106ff86>] warn_slowpath_fmt+0x26/0x30
> [    8.318878]  [<4146dcd4>] tty_init_dev+0x154/0x290
> [    8.319274]  [<4146e5c6>] tty_open+0x7b6/0xa90
> [    8.319640]  [<41221ed5>] chrdev_open+0x205/0x2d0
> [    8.320028]  [<412177e4>] do_dentry_open+0x544/0x5e0
> [    8.320488]  [<41221cd0>] ? cdev_put+0x40/0x40
> [    8.320852]  [<4121949a>] vfs_open+0x8a/0x90
> [    8.321208]  [<4123246d>] do_last+0xb7d/0x1130
> [    8.321571]  [<4122a917>] ? inode_permission+0x67/0xc0
> [    8.321992]  [<41232b11>] path_openat+0xf1/0x4c0
> [    8.322375]  [<41235229>] do_filp_open+0x69/0x120
> [    8.322762]  [<41791b42>] ? _raw_spin_unlock+0x52/0x70
> [    8.323187]  [<41249d68>] ? __alloc_fd+0x218/0x2b0
> [    8.323580]  [<41219c7d>] do_sys_open+0x35d/0x440
> [    8.323963]  [<41219d78>] SyS_open+0x18/0x20
> [    8.324320]  [<41e09f1f>] kernel_init_freeable+0x106/0x1aa
> [    8.324769]  [<41787469>] kernel_init+0x9/0x150
> [    8.325146]  [<41792451>] ret_from_kernel_thread+0x21/0x40
> [    8.325589]  [<41787460>] ? rest_init+0xb0/0xb0
> [    8.326675] ---[ end trace a0fa66e39705bc4d ]---
> [    8.327076] BUG: unable to handle kernel NULL pointer dereference at 00000098
>
> git bisect start d294b233a2bdc7abdb5dfa856fc00dc67e96d57a
> a95fc9c8e576dc238ad849f65c67e4fd33c01d3b --
> # first bad commit: [d294b233a2bdc7abdb5dfa856fc00dc67e96d57a]
> tty/serial/8250: use mctrl_gpio helpers
> git bisect good a95fc9c8e576dc238ad849f65c67e4fd33c01d3b  # 20:02
> 66+      3  serial: 8250: describe CONFIG_SERIAL_8250_RSA
> # extra tests with DEBUG_INFO
> git bisect  bad d294b233a2bdc7abdb5dfa856fc00dc67e96d57a  # 20:06
> 0-     66  tty/serial/8250: use mctrl_gpio helpers
> # extra tests on HEAD of
> linux-review/yegorslists-googlemail-com/tty-serial-8250-use-mctrl_gpio-helpers/20160309-190741
> git bisect  bad d294b233a2bdc7abdb5dfa856fc00dc67e96d57a  # 20:06
> 0-     13  tty/serial/8250: use mctrl_gpio helpers
> # extra tests on tree/branch
> linux-review/yegorslists-googlemail-com/tty-serial-8250-use-mctrl_gpio-helpers/20160309-190741
> git bisect  bad d294b233a2bdc7abdb5dfa856fc00dc67e96d57a  # 20:06
> 0-     13  tty/serial/8250: use mctrl_gpio helpers
> # extra tests with first bad commit reverted
> git bisect good d232311183c0c28045b797481f732154ee93411b  # 20:21
> 66+      2  Revert "tty/serial/8250: use mctrl_gpio helpers"
> # extra tests on tree/branch linus/master
> git bisect good 7f02bf6b5f5de90b7a331759b5364e41c0f39bf9  # 20:25
> 61+      1  Merge tag 'sound-4.5' of
> git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound
> # extra tests on tree/branch linux-next/master
> git bisect good 7811b4ffc31285e08ee7a6a96a94848c37a43e09  # 20:30
> 61+      2  Add linux-next specific files for 20160309

I could more or less reproduce the issue with qemu. If I don't return
from serial8250_register_8250_port() with an error, but something like
this, the system boots thorough:

uart->gpios = mctrl_gpio_init(&uart->port, 0);
                if (IS_ERR(uart->gpios))
                        dev_info(uart->port.dev,"Failed to init gpios\n");

What would be the appropriate solution? To use dev_dbg() or to put
#ifdef SERIAL_MCTRL_GPIO?

Basically we can have an x86 system using both platform serial devices
as also PCI based in one device, so #ifdef SERIAL_MCTRL_GPIO is not
appropriate.

Yegor
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux Arm (vger)]     [ARM Kernel]     [ARM MSM]     [Linux Tegra]     [Linux WPAN Networking]     [Linux Wireless Networking]     [Maemo Users]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux