> >>>> + if (tg3_asic_rev(tp) == ASIC_REV_5762 && mss) { > >>>> + u32 base = (u32) mapping & 0xffffffff; > >>>> + > >>>> + return ((base + len + (mss & 0x3fff)) < base); ... > For the bug to occur, the fragment does not have to span a 4G boundary. If it is > within MSS bytes (9.6k) of a 4G boundary, it triggers the failure. Would it be worth simplifying the test to assume that 'len' is 64k and 'mss' 9.6k? (commenting on the actual condition.) The number of false positives would be small, but the test a lot quicker. The '(u32)mapping + (0x10000 + 9600) < (u32)mapping' test might even be faster than the ' tg3_asic_rev(tp) == ASIC_REV_5762' one. David ��.n��������+%������w��{.n�����������ܨ}���Ơz�j:+v�����w����ޙ��&�)ߡ�a����z�ޗ���ݢj��w�f