- if (u.arph.ar_hrd == __constant_htons(1) &&
- u.arph.ar_hln == ETH_ALEN &&
- u.arph.ar_pln == sizeof(uint32_t)) {
- if (skb_copy_bits(skb, sizeof(u.arph), &u.arpp,
- sizeof(u.arpp))) {
+ if (ah->ar_hrd == htons(1) &&
+ ah->ar_hln == ETH_ALEN &&
+ ah->ar_pln == sizeof(uint32_t)) {
+ struct arppayload _arpp, *ap;
+
+ ap = skb_header_pointer(skb, sizeof(u.arph),
+ sizeof(_arpp), &_arpp);
+ if (ap == NULL) {