在2025年1月14日一月 下午7:03,Arnd Bergmann写道: > On Tue, Jan 14, 2025, at 19:11, Jiaxun Yang wrote: >> >> +unsigned long pci_address_to_pio(phys_addr_t address) >> +{ >> + if (address > IO_SPACE_LIMIT) >> + return (unsigned long)-1; >> + >> + return (unsigned long) address; >> +} >> + >> /* > > Isn't the argument to this function a CPU physical address? I > don't think there is a point comparing it to IO_SPACE_LIMIT > on architectures where I/O space is memory mapped. Actually not. It seems like the argument here is just raw PIO offset, without applying mips_io_port_base. We should validate it to ensure it's within the range specified by mips_io_port_base (which is sized by IO_SPACE_LIMIT). Thanks > > I see that you copied the above from the the non-PCI_IOBASE case > of drivers/pci/pci.c, but that only really makes sense for > architectures that have special port I/O instructions (x86, > ia64) or that use logic_pio. > > Arnd -- - Jiaxun