Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b95cce35 authored by Stephen Hemminger's avatar Stephen Hemminger Committed by David S. Miller
Browse files

[NET]: Wrap hard_header_parse



Wrap the hard_header_parse function to simplify next step of
header_ops conversion.

Signed-off-by: default avatarStephen Hemminger <shemminger@linux-foundation.org>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 0c4e8581
Loading
Loading
Loading
Loading
+5 −5
Original line number Diff line number Diff line
@@ -162,7 +162,8 @@ static int ether1394_header(struct sk_buff *skb, struct net_device *dev,
			    unsigned short type, void *daddr, void *saddr,
			    unsigned len);
static int ether1394_rebuild_header(struct sk_buff *skb);
static int ether1394_header_parse(struct sk_buff *skb, unsigned char *haddr);
static int ether1394_header_parse(const struct sk_buff *skb,
				  unsigned char *haddr);
static int ether1394_header_cache(struct neighbour *neigh, struct hh_cache *hh);
static void ether1394_header_cache_update(struct hh_cache *hh,
					  struct net_device *dev,
@@ -751,11 +752,10 @@ static int ether1394_rebuild_header(struct sk_buff *skb)
	return 0;
}

static int ether1394_header_parse(struct sk_buff *skb, unsigned char *haddr)
static int ether1394_header_parse(const struct sk_buff *skb,
				  unsigned char *haddr)
{
	struct net_device *dev = skb->dev;

	memcpy(haddr, dev->dev_addr, ETH1394_ALEN);
	memcpy(haddr, skb->dev->dev_addr, ETH1394_ALEN);
	return ETH1394_ALEN;
}

+1 −6
Original line number Diff line number Diff line
@@ -2481,7 +2481,7 @@ void stop_airo_card( struct net_device *dev, int freeres )

EXPORT_SYMBOL(stop_airo_card);

static int wll_header_parse(struct sk_buff *skb, unsigned char *haddr)
static int wll_header_parse(const struct sk_buff *skb, unsigned char *haddr)
{
	memcpy(haddr, skb_mac_header(skb) + 10, ETH_ALEN);
	return ETH_ALEN;
@@ -2698,11 +2698,6 @@ static int mpi_map_card(struct airo_info *ai, struct pci_dev *pci)

static void wifi_setup(struct net_device *dev)
{
	dev->hard_header        = NULL;
	dev->rebuild_header     = NULL;
	dev->hard_header_cache  = NULL;
	dev->header_cache_update= NULL;

	dev->hard_header_parse  = wll_header_parse;
	dev->hard_start_xmit = &airo_start_xmit11;
	dev->get_stats = &airo_get_stats;
+3 −3
Original line number Diff line number Diff line
@@ -6561,10 +6561,10 @@ static struct ethtool_ops qeth_ethtool_ops = {
};

static int
qeth_hard_header_parse(struct sk_buff *skb, unsigned char *haddr)
qeth_hard_header_parse(const struct sk_buff *skb, unsigned char *haddr)
{
	struct qeth_card *card;
	struct ethhdr *eth;
	const struct qeth_card *card;
	const struct ethhdr *eth;

	card = qeth_get_card_from_dev(skb->dev);
	if (card->options.layer2)
+11 −1
Original line number Diff line number Diff line
@@ -657,7 +657,7 @@ struct net_device
	void			(*vlan_rx_kill_vid)(struct net_device *dev,
						    unsigned short vid);

	int			(*hard_header_parse)(struct sk_buff *skb,
	int			(*hard_header_parse)(const struct sk_buff *skb,
						     unsigned char *haddr);
	int			(*neigh_setup)(struct net_device *dev, struct neigh_parms *);
#ifdef CONFIG_NETPOLL
@@ -809,6 +809,16 @@ static inline int dev_hard_header(struct sk_buff *skb, struct net_device *dev,
	return dev->hard_header(skb, dev, type, daddr, saddr, len);
}

static inline int dev_parse_header(const struct sk_buff *skb,
				   unsigned char *haddr)
{
	const struct net_device *dev = skb->dev;

	if (!dev->hard_header_parse)
		return 0;
	return dev->hard_header_parse(skb, haddr);
}

typedef int gifconf_func_t(struct net_device * dev, char __user * bufptr, int len);
extern int		register_gifconf(unsigned int family, gifconf_func_t * gifconf);
static inline int unregister_gifconf(unsigned int family)
+2 −2
Original line number Diff line number Diff line
@@ -207,9 +207,9 @@ EXPORT_SYMBOL(eth_type_trans);
 * @skb: packet to extract header from
 * @haddr: destination buffer
 */
static int eth_header_parse(struct sk_buff *skb, unsigned char *haddr)
static int eth_header_parse(const struct sk_buff *skb, unsigned char *haddr)
{
	struct ethhdr *eth = eth_hdr(skb);
	const struct ethhdr *eth = eth_hdr(skb);
	memcpy(haddr, eth->h_source, ETH_ALEN);
	return ETH_ALEN;
}
Loading