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