> This patch only does that for the 'user_backed' thing, which was a similar case. Yes, having two fields that have to be set to match is a recipe for disaster. Although I'm not sure the bit-fields really help. There are 8 bytes at the start of the structure, might as well use them :-) OTOH the 'nofault' and 'copy_mc' flags could be put into much higher bits of a 32bit value. Alternatively put both/all the USER values first. Then an ordered compare could be used. If everything is actually inlined could the 'iter' be passed through to the step() functions? Although is might be better to pass a cached copy of iter->iter_type (although that might just end up spilling to stack.) David - Registered Address Lakeside, Bramley Road, Mount Farm, Milton Keynes, MK1 1PT, UK Registration No: 1397386 (Wales)