netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Holger Eitzenberger <holger@eitzenberger.org>
To: David Miller <davem@davemloft.net>
Cc: Jay Vosburgh <fubar@us.ibm.com>, netdev@vger.kernel.org
Subject: [patch 08/10] 802.3ad: remove public lacpdu_header
Date: Tue, 23 Dec 2008 23:01:09 +0100	[thread overview]
Message-ID: <20081223220600.479443201@jonathan.eitzenberger.org> (raw)
In-Reply-To: 20081223220101.747816175@jonathan.eitzenberger.org

[-- Attachment #1: bonding-3ad-remove-lacpdu_header.diff --]
[-- Type: text/plain, Size: 3232 bytes --]

It's strictly not necessary to define lacpdu_header in an include
file because it's only used in ad_lacpdu_send().  Remove that definition
and use an unnamed structure instead just for our purpose.  Which also
gives a chance to use shorter names which are still descriptive.

As the port is left unmodified it's now const.

Also cleanup that function a bit by removing useless braces around
one-liners and turn C++ style comments into C comments.

Signed-off-by: Holger Eitzenberger <holger@eitzenberger.org>

Index: bonding-2.6/drivers/net/bonding/bond_3ad.c
===================================================================
--- bonding-2.6.orig/drivers/net/bonding/bond_3ad.c
+++ bonding-2.6/drivers/net/bonding/bond_3ad.c
@@ -98,7 +98,6 @@ static const int ad_delta_in_ticks = (AD
 static const u8 lacpdu_mcast_addr[ETH_ALEN] = MULTICAST_LACPDU_ADDR;
 
 // ================= main 802.3ad protocol functions ==================
-static int ad_lacpdu_send(struct port *port);
 static int ad_marker_send(struct port *port, struct bond_marker *marker);
 static void ad_mux_machine(struct port *port);
 static void ad_rx_machine(struct lacpdu *lacpdu, struct port *port);
@@ -820,17 +819,19 @@ static inline void __update_lacpdu_from_
  * Returns:   0 on success
  *          < 0 on error
  */
-static int ad_lacpdu_send(struct port *port)
+static int ad_lacpdu_send(const struct port *port)
 {
 	struct slave *slave = port->slave;
 	struct sk_buff *skb;
-	struct lacpdu_header *lacpdu_header;
-	int length = sizeof(struct lacpdu_header);
+	struct {
+		struct ethhdr hdr;
+		struct lacpdu lacpdu;
+	} __packed *pdu;
+	int len = sizeof(*pdu);
 
-	skb = dev_alloc_skb(length);
-	if (!skb) {
+	skb = dev_alloc_skb(len);
+	if (skb == NULL)
 		return -ENOMEM;
-	}
 
 	skb->dev = slave->dev;
 	skb_reset_mac_header(skb);
@@ -838,15 +839,15 @@ static int ad_lacpdu_send(struct port *p
 	skb->protocol = PKT_TYPE_LACPDU;
 	skb->priority = TC_PRIO_CONTROL;
 
-	lacpdu_header = (struct lacpdu_header *)skb_put(skb, length);
+	pdu = (void *)skb_put(skb, len);
 
-	memcpy(lacpdu_header->hdr.h_dest, lacpdu_mcast_addr, ETH_ALEN);
+	memcpy(pdu->hdr.h_dest, lacpdu_mcast_addr, ETH_ALEN);
 	/* Note: source addres is set to be the member's PERMANENT address,
 	   because we use it to identify loopback lacpdus in receive. */
-	memcpy(lacpdu_header->hdr.h_source, slave->perm_hwaddr, ETH_ALEN);
-	lacpdu_header->hdr.h_proto = PKT_TYPE_LACPDU;
+	memcpy(pdu->hdr.h_source, slave->perm_hwaddr, ETH_ALEN);
+	pdu->hdr.h_proto = PKT_TYPE_LACPDU;
 
-	lacpdu_header->lacpdu = port->lacpdu; // struct copy
+	memcpy(&pdu->lacpdu, &port->lacpdu, sizeof(pdu->lacpdu));
 
 	dev_queue_xmit(skb);
 
Index: bonding-2.6/drivers/net/bonding/bond_3ad.h
===================================================================
--- bonding-2.6.orig/drivers/net/bonding/bond_3ad.h
+++ bonding-2.6/drivers/net/bonding/bond_3ad.h
@@ -136,11 +136,6 @@ typedef struct lacpdu {
 	u8 reserved_50[50];	     // = 0
 } lacpdu_t;
 
-typedef struct lacpdu_header {
-	struct ethhdr hdr;
-	struct lacpdu lacpdu;
-} lacpdu_header_t;
-
 // Marker Protocol Data Unit(PDU) structure(43.5.3.2 in the 802.3ad standard)
 typedef struct bond_marker {
 	u8 subtype;		 //  = 0x02  (marker PDU)

-- 

  parent reply	other threads:[~2008-12-23 22:06 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-12-23 22:01 [patch 00/10] bonding updates for net-next-2.6 Holger Eitzenberger
2008-12-23 22:01 ` [patch 01/10] 802.3ad: make ntt bool Holger Eitzenberger
2008-12-26 19:18   ` David Miller
2008-12-23 22:01 ` [patch 02/10] 802.3ad: turn ports is_enabled into a bool Holger Eitzenberger
2008-12-26 21:27   ` David Miller
2008-12-23 22:01 ` [patch 03/10] 802.3ad: turn ports is_individual " Holger Eitzenberger
2008-12-26 21:27   ` David Miller
2008-12-23 22:01 ` [patch 04/10] 802.3ad: remove typedef around ad_system Holger Eitzenberger
2008-12-26 21:28   ` David Miller
2008-12-23 22:01 ` [patch 05/10] 802.3ad: initialize ports LACPDU from const initializer Holger Eitzenberger
2008-12-26 21:28   ` David Miller
2008-12-23 22:01 ` [patch 06/10] 802.3ad: generalize out mac address initializer Holger Eitzenberger
2008-12-26 21:40   ` David Miller
2008-12-23 22:01 ` [patch 07/10] 802.3ad: use standard ethhdr instead of ad_header Holger Eitzenberger
2008-12-26 21:41   ` David Miller
2008-12-23 22:01 ` Holger Eitzenberger [this message]
2008-12-26 21:43   ` [patch 08/10] 802.3ad: remove public lacpdu_header David Miller
2008-12-26 21:45     ` David Miller
2008-12-29 16:15       ` Holger Eitzenberger
2008-12-23 22:01 ` [patch 09/10] 802.3ad: remove public bond_marker_header Holger Eitzenberger
2008-12-23 22:01 ` [patch 10/10] 802.3ad: cleanup around lacpdu and bond_marker Holger Eitzenberger

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20081223220600.479443201@jonathan.eitzenberger.org \
    --to=holger@eitzenberger.org \
    --cc=davem@davemloft.net \
    --cc=fubar@us.ibm.com \
    --cc=netdev@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).