Skip to contentSkip to conversation

New: the serial device(ttyS0) is unuseable after booting the kernel

Bugme-new Andrew Morton 2 participants 2 messages Nov 18, 2008 1 message not in the archive ACPI

lore
Share & tools
lore
#1 lore raw
In reply to a message not in the archive

(switched to email. Please respond via emailed reply-to-all, not via the bugzilla web interface).

Quoted 62 lines · On Mon, 17 Nov 2008 18:44:44 -0800 (PST) [email protected] wrote:

http://bugzilla.kernel.org/show_bug.cgi?id=12056

           Summary: the serial device(ttyS0) is unuseable after booting the
                    kernel
           Product: ACPI
           Version: 2.5
     KernelVersion: 2.6.28-rc3
          Platform: All
        OS/Version: Linux
              Tree: Mainline
            Status: NEW
          Severity: blocking
          Priority: P1
         Component: ACPICA-Core
        AssignedTo: [email protected]
        ReportedBy: [email protected]

Latest working kernel version:2.6.28-rc3
Earliest failing kernel version:2.6.28-rc1
Distribution:
Hardware Environment:fujitsu's PG
Software Environment:
Problem Description:

When i switch to the kernel of 2.6.28-rc3, the serial device
(ttyS0) is unused. But on 2.6.27, it's ok.

On 2.6.28-rc3:
[root@DaVid compiler]# setserial /dev/ttyS0
/dev/ttyS0, UART: unknown, Port: 0x03f8, IRQ: 4

On 2.6.27:
[root@DaVid compiler]# setserial /dev/ttyS0
/dev/ttyS0, UART: 16550A, Port: 0x03f8, IRQ: 4

The problem comes from this patch 39a0ad871000d2a016a4fa113a6e53d22aabf25d___
For the device that is not present but functional, it unload the driver for the device.
In the following patch, I try to fix it whthout check the present bit when
adding device. After applied the patch, the serial device is useable again.

drivers/pnp/pnpacpi/core.c +1 -1
index 383e47c..bcc731b 100644
@@ -154,7 +154,7 @@ static int __init pnpacpi_add_device(struct acpi_device
 *device)
         */
        status = acpi_get_handle(device->handle, "_CRS", &temp);
        if (ACPI_FAILURE(status) || !ispnpidacpi(acpi_device_hid(device)) ||
-           is_exclusive_device(device) || (!device->status.present))
+           is_exclusive_device(device))
                return 0;
 
        dev = pnp_alloc_dev(&pnpacpi_protocol, num, acpi_device_hid(device));

Steps to reproduce:
1)build the kernel of 2.6.28-rc3;
2)check the device with ___setserial /dev/ttyS0___

#2 lore raw

五島殿

Forward the mail to you.
If i miss something, welcome you comment.

Andrew Morton says:

Quoted 60 lines

(switched to email. Please respond via emailed reply-to-all, not via the bugzilla web interface).

Quoted 55 lines · On Mon, 17 Nov 2008 18:44:44 -0800 (PST) [email protected] wrote:

http://bugzilla.kernel.org/show_bug.cgi?id=12056

           Summary: the serial device(ttyS0) is unuseable after booting the
                    kernel
           Product: ACPI
           Version: 2.5
     KernelVersion: 2.6.28-rc3
          Platform: All
        OS/Version: Linux
              Tree: Mainline
            Status: NEW
          Severity: blocking
          Priority: P1
         Component: ACPICA-Core
        AssignedTo: [email protected]
        ReportedBy: [email protected]

Latest working kernel version:2.6.28-rc3
Earliest failing kernel version:2.6.28-rc1
Distribution:
Hardware Environment:fujitsu's PG
Software Environment:
Problem Description:

When i switch to the kernel of 2.6.28-rc3, the serial device
(ttyS0) is unused. But on 2.6.27, it's ok.

On 2.6.28-rc3:
[root@DaVid compiler]# setserial /dev/ttyS0
/dev/ttyS0, UART: unknown, Port: 0x03f8, IRQ: 4

On 2.6.27:
[root@DaVid compiler]# setserial /dev/ttyS0
/dev/ttyS0, UART: 16550A, Port: 0x03f8, IRQ: 4

The problem comes from this patch 39a0ad871000d2a016a4fa113a6e53d22aabf25d___
For the device that is not present but functional, it unload the driver for the device.
In the following patch, I try to fix it whthout check the present bit when
adding device. After applied the patch, the serial device is useable again.

drivers/pnp/pnpacpi/core.c +1 -1
index 383e47c..bcc731b 100644
@@ -154,7 +154,7 @@ static int __init pnpacpi_add_device(struct acpi_device
 *device)
         */
        status = acpi_get_handle(device->handle, "_CRS", &temp);
        if (ACPI_FAILURE(status) || !ispnpidacpi(acpi_device_hid(device)) ||
-           is_exclusive_device(device) || (!device->status.present))
+           is_exclusive_device(device))
                return 0;
 
Quoted 8 lines
Quoted 7 lines
        dev = pnp_alloc_dev(&pnpacpi_protocol, num, acpi_device_hid(device));

Steps to reproduce:
1)build the kernel of 2.6.28-rc3;
2)check the device with ___setserial /dev/ttyS0___

--
To unsubscribe from this list: send the line "unsubscribe linux-acpi" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html