On 27.05.22 23:48, Richard Weinberger via Xenomai wrote:
> On Fri, May 27, 2022 at 11:35 PM Konstantin Smola via Xenomai
> <xenomai@xenomai.org> wrote:
>>
>> pci probe was overwriting baud_base with default values, ignoring baud_base 
>> arguments passed in while loading driver.
>>
>> Signed-off-by: Konstantin Smola <ksmol...@gmail.com>
>> ---
>>  kernel/drivers/serial/16550A_pci.h | 3 ++-
>>  1 file changed, 2 insertions(+), 1 deletion(-)
>>
>> diff --git a/kernel/drivers/serial/16550A_pci.h 
>> b/kernel/drivers/serial/16550A_pci.h
>> index 91b0390..b747a10 100644
>> --- a/kernel/drivers/serial/16550A_pci.h
>> +++ b/kernel/drivers/serial/16550A_pci.h
>> @@ -244,7 +244,8 @@ static int rt_16550_pci_probe(struct pci_dev *pdev,
>>                         io[i] = base_addr + port * board->port_ofs;
>>                         irq[i] = pdev->irq;
>>                         irqtype[i] = board->irqtype;
>> -                       baud_base[i] = board->baud_base;
>> +         if (baud_base[i] == 0)
>> +                          baud_base[i] = board->baud_base;
> 
> This assumes that the i-th baud_base you specify as module parameter
> will also be
> the i-th probed PCI driver.
> But PCI can probe devices in any order, even userspace an unbind/bind
> them at will.
> 

Yeah, this whole index-based param passing at least became fragile over
the past 15 years (time passed...), if it wasn't back then already. But
I think this is not getting worse with this patch, is it?

What is getting a little bit worse is the coding style. Please fix
indentions.

Jan

PS: Some "rtsetserial" to claim and parameterize an RTDM UART would
likely be nicer, long-term.

-- 
Siemens AG, Technology
Competence Center Embedded Linux

Reply via email to