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

Commit 34f9f437 authored by David S. Miller's avatar David S. Miller
Browse files


Merge 'net' into 'net-next' to get the AF_PACKET bug fix that
Daniel's direct transmit changes depend upon.

Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parents 95dc1929 66e56cd4
Loading
Loading
Loading
Loading
+1 −1
Original line number Original line Diff line number Diff line
@@ -4,7 +4,7 @@ This file provides information, what the device node
for the davinci_emac interface contains.
for the davinci_emac interface contains.


Required properties:
Required properties:
- compatible: "ti,davinci-dm6467-emac";
- compatible: "ti,davinci-dm6467-emac" or "ti,am3517-emac"
- reg: Offset and length of the register set for the device
- reg: Offset and length of the register set for the device
- ti,davinci-ctrl-reg-offset: offset to control register
- ti,davinci-ctrl-reg-offset: offset to control register
- ti,davinci-ctrl-mod-reg-offset: offset to control module register
- ti,davinci-ctrl-mod-reg-offset: offset to control module register
+10 −0
Original line number Original line Diff line number Diff line
@@ -123,6 +123,16 @@ Transmission process is similar to capture as shown below.
[shutdown]  close() --------> destruction of the transmission socket and
[shutdown]  close() --------> destruction of the transmission socket and
                              deallocation of all associated resources.
                              deallocation of all associated resources.


Socket creation and destruction is also straight forward, and is done
the same way as in capturing described in the previous paragraph:

 int fd = socket(PF_PACKET, mode, 0);

The protocol can optionally be 0 in case we only want to transmit
via this socket, which avoids an expensive call to packet_rcv().
In this case, you also need to bind(2) the TX_RING with sll_protocol = 0
set. Otherwise, htons(ETH_P_ALL) or any other protocol, for example.

Binding the socket to your network interface is mandatory (with zero copy) to
Binding the socket to your network interface is mandatory (with zero copy) to
know the header size of frames used in the circular buffer.
know the header size of frames used in the circular buffer.


+0 −2
Original line number Original line Diff line number Diff line
@@ -4450,10 +4450,8 @@ M: Bruce Allan <bruce.w.allan@intel.com>
M:	Carolyn Wyborny <carolyn.wyborny@intel.com>
M:	Carolyn Wyborny <carolyn.wyborny@intel.com>
M:	Don Skidmore <donald.c.skidmore@intel.com>
M:	Don Skidmore <donald.c.skidmore@intel.com>
M:	Greg Rose <gregory.v.rose@intel.com>
M:	Greg Rose <gregory.v.rose@intel.com>
M:	Peter P Waskiewicz Jr <peter.p.waskiewicz.jr@intel.com>
M:	Alex Duyck <alexander.h.duyck@intel.com>
M:	Alex Duyck <alexander.h.duyck@intel.com>
M:	John Ronciak <john.ronciak@intel.com>
M:	John Ronciak <john.ronciak@intel.com>
M:	Tushar Dave <tushar.n.dave@intel.com>
L:	e1000-devel@lists.sourceforge.net
L:	e1000-devel@lists.sourceforge.net
W:	http://www.intel.com/support/feedback.htm
W:	http://www.intel.com/support/feedback.htm
W:	http://e1000.sourceforge.net/
W:	http://e1000.sourceforge.net/
+3 −3
Original line number Original line Diff line number Diff line
@@ -4199,9 +4199,9 @@ static int bond_check_params(struct bond_params *params)
	     (arp_ip_count < BOND_MAX_ARP_TARGETS) && arp_ip_target[i]; i++) {
	     (arp_ip_count < BOND_MAX_ARP_TARGETS) && arp_ip_target[i]; i++) {
		/* not complete check, but should be good enough to
		/* not complete check, but should be good enough to
		   catch mistakes */
		   catch mistakes */
		__be32 ip = in_aton(arp_ip_target[i]);
		__be32 ip;
		if (!isdigit(arp_ip_target[i][0]) || ip == 0 ||
		if (!in4_pton(arp_ip_target[i], -1, (u8 *)&ip, -1, NULL) ||
		    ip == htonl(INADDR_BROADCAST)) {
		    IS_IP_TARGET_UNUSABLE_ADDRESS(ip)) {
			pr_warning("Warning: bad arp_ip_target module parameter (%s), ARP monitoring will not be performed\n",
			pr_warning("Warning: bad arp_ip_target module parameter (%s), ARP monitoring will not be performed\n",
				   arp_ip_target[i]);
				   arp_ip_target[i]);
			arp_interval = 0;
			arp_interval = 0;
+2 −2
Original line number Original line Diff line number Diff line
@@ -1634,12 +1634,12 @@ static ssize_t bonding_show_packets_per_slave(struct device *d,
					      char *buf)
					      char *buf)
{
{
	struct bonding *bond = to_bond(d);
	struct bonding *bond = to_bond(d);
	int packets_per_slave = bond->params.packets_per_slave;
	unsigned int packets_per_slave = bond->params.packets_per_slave;


	if (packets_per_slave > 1)
	if (packets_per_slave > 1)
		packets_per_slave = reciprocal_value(packets_per_slave);
		packets_per_slave = reciprocal_value(packets_per_slave);


	return sprintf(buf, "%d\n", packets_per_slave);
	return sprintf(buf, "%u\n", packets_per_slave);
}
}


static ssize_t bonding_store_packets_per_slave(struct device *d,
static ssize_t bonding_store_packets_per_slave(struct device *d,
Loading