• A
    hamachi endianness fixes · 8e985918
    Al Viro 提交于
    badly broken on big-endian
    
    * passing little-endian to pci_unmap_single() et.al.
    * cpu_to_le32() before passing value to writel()
    * worse, cpu_to_le64() and shifting/masking result before the same
    * 			hmp->tx_ring[i].status_n_length = cpu_to_le32(
    				DescEndRing |
    				(hmp->tx_ring[i].status_n_length & 0x0000FFFF));
      is obviously bogus on big-endian.  Not hard to untangle, fortunately...
    * poisoning addresses in rx_ring is better done after we'd done
    pci_unmap_single() on them, not before that.  [this one affects little-endian
    as well, obviously, provided that pci_unmap_single() is not a no-op on target
    in question]
    Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
    Signed-off-by: NJeff Garzik <jeff@garzik.org>
    8e985918
hamachi.c 65.5 KB