[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH V5] ns16550: Add support for UART present in Broadcom TruManage capable NetXtreme chips
>>> On 22.11.13 at 17:45, Aravind Gopalakrishnan >>> <Aravind.Gopalakrishnan@xxxxxxx> wrote: > @@ -432,9 +474,20 @@ static void __init ns16550_endboot(struct serial_port > *port) > { > #ifdef HAS_IOPORTS > struct ns16550 *uart = port->uart; > + unsigned long sfn, efn; > > if ( uart->remapped_io_base ) > + { > + sfn = PFN_UP((unsigned long) uart->io_base + (0x8 * (1 << > uart->reg_shift))); > + efn = PFN_DOWN((unsigned long) uart->io_base + uart->io_size - 1); So I told you on the previous round that these casts are wrong. Why did you keep them. Also, I don't see why you adjust io_base above - you want to cover the full BAR, no matter what the register shift. > + if ( sfn > efn ) > + BUG(); Ehm - what? Without taking the specifics of BARs into account, this can validly happen (which is why I commented on it on the previous version). But now that I remembered that the value comes from a BAR, it can't happen, and hence you either don't check it at all, or ASSERT() rather than BUG(). > + else > + size = len & PCI_BASE_ADDRESS_MEM_MASK; > + > + size &= -(size); Stray parentheses. > + /* > + * Force length of mmio region to be at least > + * 8 bytes times (1 << reg_shift) > + */ > + if ( size < (0x8 * (1 << uart_config[i].reg_shift)) ) if ( size < (8 << uart_config[i].reg_shift) ) Jan _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |