On Wed, Jan 30, 2013 at 09:21:28AM +0100, walter harms wrote: > Great hit Joe :) > > Sometimes i am really surprised what code can be found > in the kernal and it is still working. > Having no clue of the code i suspect somebody tries to > check is mask outside the range it should read > PHYS_OFFSET |( SZ_64M - 1) > maybe someone should tell them that > 1+1=10 while 1|1=1 > It does not seem to matter here (or ... ?) This PCI host is only used on one platform (ARMCORE). For this, PHYS_OFFSET will be a value with only the top few bits of a 32-bit word set (such as 0xc0000000) - it's certainly not going to have any bits set below bit 26 on the platform this driver gets used on. "SZ_64M - 1" is the size of the window that RAM appears. So, _either_ logical OR or addition works. If we _did_ end up with a PHYS_OFFSET with bits less than bit 26 set here, we'd have bigger problems - because the base of RAM in PCI space will not correspond with PHYS_OFFSET and all the DMA mapping stuff breaks. -- To unsubscribe from this list: send the line "unsubscribe kernel-janitors" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html