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

Re: [Xen-devel] [PATCH v2 2/7] serial: Fix COM1 assumption if pci_uart_config did not find the PCI serial card.



>>> On 10.03.14 at 17:45, Konrad Rzeszutek Wilk <konrad.wilk@xxxxxxxxxx> wrote:
> On Mon, Mar 10, 2014 at 04:23:32PM +0000, Jan Beulich wrote:
>> >>> On 10.03.14 at 17:13, Konrad Rzeszutek Wilk <konrad.wilk@xxxxxxxxxx> 
>> >>> wrote:
>> > On Mon, Mar 10, 2014 at 09:35:16AM +0000, Jan Beulich wrote:
>> >> change is fine, but the description should be updated to say that
>> >> this only affects the AMT case.
>> > 
>> > Yes, let me update the commit description. Since I already had sent an
>> > updated patch, let me just copy in the new description:
>> > 
>> >    serial: Fix COM1 assumption if pci_uart_config did not find the PCI 
>> > serial 
> card (AMT one).
>> > 
>> >    The io_base by default is set to be 0x3f8 for COM1 and 0x2f8 for COM2
>> >    in __setup_xen. Then we call 'ns16550_init' which copies those in
>> >    the appropiate uart, which then calls 'ns16550_parse_port_config'
>> >    to deal with parameter parsing. If the 'pci' or 'amt' parameter
>> >    has been specified we further call 'pci_uart_config code' which
>> >    scans the PCI bus. If it does not find any relevant devices
>> >    it will overwrite io_base with 0x3f8 regardless whether this is
>> >    COM1 or COM2. The overwrite is a way to set it back to the
>> >    failsafe defaults - except for COM2 of course.
>> 
>> But this still gives the (false) impression that the overwrite is
>> happening in the PCI and AMT cases.
>> 
>> >    This in theory (as I don't have a machine with two COM ports
>> >    readily available) means that if the user specified 'com2=9600,8n1,pci'
>> >    or 'com2=9600,8n1,amt' and the device did not have an PCI serial card
>> >    (or AMT), instead of using 0x2f8 for the io_base it ends up using 0x3f8
>> >    - and we don't get the output on COM2.
>> > 
>> >    Worst yet, we also uncondionally reset the IRQ value - so we would
>> >    never get the proper interrupt when falling back to the legacy
>> >    0x3f8 and 0x2f8 COM ports.
>> 
>> Which isn't _that_ bad - we'd run in polling mode.
> 
> Ah, right. How does this update look to you? I tried as best to make it 
> clear
> what works and what does not.
> 
>       serial: Fix COM1 assumption if pci_uart_config did not find the PCI 
> serial 
> card (or AMT one).
> 
>       The io_base by default is set to be 0x3f8 for COM1 and 0x2f8 for COM2
>       in __setup_xen. Then we call 'ns16550_init' which copies those in
>       the appropiate uart, which then calls 'ns16550_parse_port_config'
>       to deal with parameter parsing. If the 'pci' or 'amt' parameter
>       has been specified we further call 'pci_uart_config code' which
>       scans the PCI bus. If it does not find any relevant devices
>       (no PCI/PCIe or AMT devices are found) it will overwrite io_base with
>       0x3f8 regardless whether this is COM1 or COM2 - but only if 'pci'
>       or 'amt' parameter had been specified.

But you still say "'pci' or 'amt'" here, when the overwite happens
only for 'amt'.

Jan


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.