On Thu, Apr 17, 2008 at 10:07:42PM +0200, Thomas Bogendoerfer wrote: > @@ -100,6 +103,13 @@ int __cpuinit bridge_probe(nasid_t nasid, int widget_id, int masterwid) > */ > bridge->b_wid_control |= BRIDGE_CTRL_IO_SWAP | > BRIDGE_CTRL_MEM_SWAP; > +#ifdef CONFIG_PAGE_SIZE_4KB > + bridge->b_wid_control &= ~BRIDGE_CTRL_PAGE_SIZE; > +#elif defined(CONFIG_PAGE_SIZE_16KB) > + bridge->b_wid_control |= BRIDGE_CTRL_PAGE_SIZE; > +#else > +#error Fixme for page size other than 4kB and 16kB > +#endif This blows up with 64k pages or larger (if anybody is mad enough ...) The reason for this setting is so the BRIDGE ASIC knows about the pagesize and can avoid prefetching over a page boundary. That is a too small value is always safe. I applied your patch with this small fix on top. Thanks, Ralf