All of lore.kernel.org
 help / color / mirror / Atom feed
From: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
To: "Greg Kroah-Hartman" <gregkh@suse.de>
Cc: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>,
	linux-kernel@vger.kernel.org
Subject: [PATCH 05/10] Staging: rtl8187se: rename struct ieee80211_hdr to struct ieee80211_hdr_4addr
Date: Mon, 13 Jul 2009 20:01:44 +0200	[thread overview]
Message-ID: <20090713180144.15985.29639.sendpatchset@localhost.localdomain> (raw)
In-Reply-To: <20090713180112.15985.88819.sendpatchset@localhost.localdomain>

From: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Subject: [PATCH] Staging: rtl8187se: rename struct ieee80211_hdr to struct ieee80211_hdr_4addr

ieee80211_hdr name is too generic so use ieee80211_hdr_4addr one instead
(which matches the naming used by rtl8192su driver).

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
---
 drivers/staging/rtl8187se/TODO                             |    1 
 drivers/staging/rtl8187se/ieee80211/ieee80211.h            |    4 -
 drivers/staging/rtl8187se/ieee80211/ieee80211_crypt_ccmp.c |   10 +--
 drivers/staging/rtl8187se/ieee80211/ieee80211_crypt_tkip.c |   26 ++++----
 drivers/staging/rtl8187se/ieee80211/ieee80211_rx.c         |   42 ++++++-------
 drivers/staging/rtl8187se/ieee80211/ieee80211_tx.c         |    8 --
 drivers/staging/rtl8187se/r8180_core.c                     |    4 -
 7 files changed, 46 insertions(+), 49 deletions(-)

Index: b/drivers/staging/rtl8187se/TODO
===================================================================
--- a/drivers/staging/rtl8187se/TODO
+++ b/drivers/staging/rtl8187se/TODO
@@ -1,6 +1,5 @@
 TODO:
 - prepare private ieee80211 stack for merge with rtl8192su's version:
-  - rename struct ieee80211_hdr to struct ieee80211_hdr_4addr
   - rename struct ieee80211_hdr_3addr_QOS to struct ieee80211_hdr_3addrqos
   - rename struct ieee80211_hdr_QOS to struct ieee80211_hdr_4addrqos
   - add hwsec_active flag to struct ieee80211_device
Index: b/drivers/staging/rtl8187se/ieee80211/ieee80211.h
===================================================================
--- a/drivers/staging/rtl8187se/ieee80211/ieee80211.h
+++ b/drivers/staging/rtl8187se/ieee80211/ieee80211.h
@@ -170,7 +170,7 @@ struct ieee_ibss_seq {
 	struct list_head list;
 };
 
-struct ieee80211_hdr {
+struct ieee80211_hdr_4addr {
 	u16 frame_ctl;
 	u16 duration_id;
 	u8 addr1[ETH_ALEN];
@@ -1450,7 +1450,7 @@ extern void ieee80211_txb_free(struct ie
 extern int ieee80211_rx(struct ieee80211_device *ieee, struct sk_buff *skb,
 			struct ieee80211_rx_stats *rx_stats);
 extern void ieee80211_rx_mgt(struct ieee80211_device *ieee,
-			     struct ieee80211_hdr *header,
+			     struct ieee80211_hdr_4addr *header,
 			     struct ieee80211_rx_stats *stats);
 
 /* ieee80211_wx.c */
Index: b/drivers/staging/rtl8187se/ieee80211/ieee80211_crypt_ccmp.c
===================================================================
--- a/drivers/staging/rtl8187se/ieee80211/ieee80211_crypt_ccmp.c
+++ b/drivers/staging/rtl8187se/ieee80211/ieee80211_crypt_ccmp.c
@@ -114,7 +114,7 @@ static inline void xor_block(u8 *b, u8 *
 }
 
 static void ccmp_init_blocks(struct crypto_tfm *tfm,
-			     struct ieee80211_hdr *hdr,
+			     struct ieee80211_hdr_4addr *hdr,
 			     u8 *pn, size_t dlen, u8 *b0, u8 *auth,
 			     u8 *s0)
 {
@@ -196,7 +196,7 @@ static int ieee80211_ccmp_encrypt(struct
 	struct ieee80211_ccmp_data *key = priv;
 	int data_len, i;
 	u8 *pos;
-	struct ieee80211_hdr *hdr;
+	struct ieee80211_hdr_4addr *hdr;
 	int blocks, last, len;
 	u8 *mic;
 	u8 *b0 = key->tx_b0;
@@ -232,7 +232,7 @@ static int ieee80211_ccmp_encrypt(struct
 	*pos++ = key->tx_pn[1];
 	*pos++ = key->tx_pn[0];
 
-	hdr = (struct ieee80211_hdr *) skb->data;
+	hdr = (struct ieee80211_hdr_4addr *)skb->data;
 	//mic is moved to here by john
 	mic = skb_put(skb, CCMP_MIC_LEN);
 
@@ -265,7 +265,7 @@ static int ieee80211_ccmp_decrypt(struct
 {
 	struct ieee80211_ccmp_data *key = priv;
 	u8 keyidx, *pos;
-	struct ieee80211_hdr *hdr;
+	struct ieee80211_hdr_4addr *hdr;
 	u8 pn[6];
 	size_t data_len = skb->len - hdr_len - CCMP_HDR_LEN - CCMP_MIC_LEN;
 	u8 *mic = skb->data + skb->len - CCMP_MIC_LEN;
@@ -279,7 +279,7 @@ static int ieee80211_ccmp_decrypt(struct
 		return -1;
 	}
 
-	hdr = (struct ieee80211_hdr *) skb->data;
+	hdr = (struct ieee80211_hdr_4addr *)skb->data;
 	pos = skb->data + hdr_len;
 	keyidx = pos[3];
 	if (!(keyidx & (1 << 5))) {
Index: b/drivers/staging/rtl8187se/ieee80211/ieee80211_crypt_tkip.c
===================================================================
--- a/drivers/staging/rtl8187se/ieee80211/ieee80211_crypt_tkip.c
+++ b/drivers/staging/rtl8187se/ieee80211/ieee80211_crypt_tkip.c
@@ -310,7 +310,7 @@ static int ieee80211_tkip_encrypt(struct
         struct blkcipher_desc desc = {.tfm = tkey->tx_tfm_arc4};
 	int len;
 	u8  *pos;
-	struct ieee80211_hdr *hdr;
+	struct ieee80211_hdr_4addr *hdr;
 	u8 rc4key[16],*icv;
 	u32 crc;
 	struct scatterlist sg;
@@ -321,7 +321,7 @@ static int ieee80211_tkip_encrypt(struct
 	    skb->len < hdr_len)
 		return -1;
 
-	hdr = (struct ieee80211_hdr *) skb->data;
+	hdr = (struct ieee80211_hdr_4addr *)skb->data;
 
 	if (!tkey->tx_phase1_done) {
 		tkip_mixing_phase1(tkey->tx_ttak, tkey->key, hdr->addr2,
@@ -369,7 +369,7 @@ static int ieee80211_tkip_decrypt(struct
 	u8 keyidx, *pos;
 	u32 iv32;
 	u16 iv16;
-	struct ieee80211_hdr *hdr;
+	struct ieee80211_hdr_4addr *hdr;
 	u8 icv[4];
 	u32 crc;
 	struct scatterlist sg;
@@ -379,7 +379,7 @@ static int ieee80211_tkip_decrypt(struct
 	if (skb->len < hdr_len + 8 + 4)
 		return -1;
 
-	hdr = (struct ieee80211_hdr *) skb->data;
+	hdr = (struct ieee80211_hdr_4addr *)skb->data;
 	pos = skb->data + hdr_len;
 	keyidx = pos[3];
 	if (!(keyidx & (1 << 5))) {
@@ -494,9 +494,9 @@ static int michael_mic(struct crypto_has
 
 static void michael_mic_hdr(struct sk_buff *skb, u8 *hdr)
 {
-	struct ieee80211_hdr *hdr11;
+	struct ieee80211_hdr_4addr *hdr11;
 
-	hdr11 = (struct ieee80211_hdr *) skb->data;
+	hdr11 = (struct ieee80211_hdr_4addr *)skb->data;
 	switch (le16_to_cpu(hdr11->frame_ctl) &
 		(IEEE80211_FCTL_FROMDS | IEEE80211_FCTL_TODS)) {
 	case IEEE80211_FCTL_TODS:
@@ -527,9 +527,9 @@ static int ieee80211_michael_mic_add(str
 {
 	struct ieee80211_tkip_data *tkey = priv;
 	u8 *pos;
-	struct ieee80211_hdr *hdr;
+	struct ieee80211_hdr_4addr *hdr;
 
-	hdr = (struct ieee80211_hdr *) skb->data;
+	hdr = (struct ieee80211_hdr_4addr *)skb->data;
 
 	if (skb_tailroom(skb) < 8 || skb->len < hdr_len) {
 		printk(KERN_DEBUG "Invalid packet for Michael MIC add "
@@ -556,7 +556,7 @@ static int ieee80211_michael_mic_add(str
 }
 
 static void ieee80211_michael_mic_failure(struct net_device *dev,
-				       struct ieee80211_hdr *hdr,
+				       struct ieee80211_hdr_4addr *hdr,
 				       int keyidx)
 {
 	union iwreq_data wrqu;
@@ -581,9 +581,9 @@ static int ieee80211_michael_mic_verify(
 {
 	struct ieee80211_tkip_data *tkey = priv;
 	u8 mic[8];
-	struct ieee80211_hdr *hdr;
+	struct ieee80211_hdr_4addr *hdr;
 
-	hdr = (struct ieee80211_hdr *) skb->data;
+	hdr = (struct ieee80211_hdr_4addr *)skb->data;
 
 	if (!tkey->key_set)
 		return -1;
@@ -601,8 +601,8 @@ static int ieee80211_michael_mic_verify(
 		return -1;
 
 	if (memcmp(mic, skb->data + skb->len - 8, 8) != 0) {
-		struct ieee80211_hdr *hdr;
-		hdr = (struct ieee80211_hdr *) skb->data;
+		struct ieee80211_hdr_4addr *hdr;
+		hdr = (struct ieee80211_hdr_4addr *)skb->data;
 		printk(KERN_DEBUG "%s: Michael MIC verification failed for "
 		       "MSDU from " MAC_FMT " keyidx=%d\n",
 		       skb->dev ? skb->dev->name : "N/A", MAC_ARG(hdr->addr2),
Index: b/drivers/staging/rtl8187se/ieee80211/ieee80211_rx.c
===================================================================
--- a/drivers/staging/rtl8187se/ieee80211/ieee80211_rx.c
+++ b/drivers/staging/rtl8187se/ieee80211/ieee80211_rx.c
@@ -49,7 +49,8 @@ static inline void ieee80211_monitor_rx(
 					struct sk_buff *skb,
 					struct ieee80211_rx_stats *rx_stats)
 {
-	struct ieee80211_hdr *hdr = (struct ieee80211_hdr *)skb->data;
+	struct ieee80211_hdr_4addr *hdr =
+		(struct ieee80211_hdr_4addr *)skb->data;
 	u16 fc = le16_to_cpu(hdr->frame_ctl);
 
 	skb->dev = ieee->dev;
@@ -95,7 +96,7 @@ ieee80211_frag_cache_find(struct ieee802
 /* Called only as a tasklet (software IRQ) */
 static struct sk_buff *
 ieee80211_frag_cache_get(struct ieee80211_device *ieee,
-			 struct ieee80211_hdr *hdr)
+			 struct ieee80211_hdr_4addr *hdr)
 {
 	struct sk_buff *skb = NULL;
 	u16 fc = le16_to_cpu(hdr->frame_ctl);
@@ -124,7 +125,7 @@ ieee80211_frag_cache_get(struct ieee8021
 	if (frag == 0) {
 		/* Reserve enough space to fit maximum frame length */
 		skb = dev_alloc_skb(ieee->dev->mtu +
-				    sizeof(struct ieee80211_hdr) +
+				    sizeof(struct ieee80211_hdr_4addr) +
 				    8 /* LLC */ +
 				    2 /* alignment */ +
 				    8 /* WEP */ +
@@ -164,7 +165,7 @@ ieee80211_frag_cache_get(struct ieee8021
 
 /* Called only as a tasklet (software IRQ) */
 static int ieee80211_frag_cache_invalidate(struct ieee80211_device *ieee,
-					   struct ieee80211_hdr *hdr)
+					   struct ieee80211_hdr_4addr *hdr)
 {
 	u16 fc = le16_to_cpu(hdr->frame_ctl);
 	u16 sc = le16_to_cpu(hdr->seq_ctl);
@@ -214,17 +215,18 @@ ieee80211_rx_frame_mgmt(struct ieee80211
 			struct ieee80211_rx_stats *rx_stats, u16 type,
 			u16 stype)
 {
-	struct ieee80211_hdr *hdr;
+	struct ieee80211_hdr_4addr *hdr;
 
 	// cheat the the hdr type
-	hdr = (struct ieee80211_hdr *)skb->data;
+	hdr = (struct ieee80211_hdr_4addr *)skb->data;
 
 	/* On the struct stats definition there is written that
 	 * this is not mandatory.... but seems that the probe
 	 * response parser uses it
 	 */
 	rx_stats->len = skb->len;
-	ieee80211_rx_mgt(ieee,(struct ieee80211_hdr *)skb->data,rx_stats);
+	ieee80211_rx_mgt(ieee, (struct ieee80211_hdr_4addr *)skb->data,
+			 rx_stats);
 
 	if((ieee->state == IEEE80211_LINKED)&&(memcmp(hdr->addr3,ieee->current_network.bssid,ETH_ALEN))) {
 		dev_kfree_skb_any(skb);
@@ -256,13 +258,13 @@ static int ieee80211_is_eapol_frame(stru
 {
 	struct net_device *dev = ieee->dev;
 	u16 fc, ethertype;
-	struct ieee80211_hdr *hdr;
+	struct ieee80211_hdr_4addr *hdr;
 	u8 *pos;
 
 	if (skb->len < 24)
 		return 0;
 
-	hdr = (struct ieee80211_hdr *) skb->data;
+	hdr = (struct ieee80211_hdr_4addr *)skb->data;
 	fc = le16_to_cpu(hdr->frame_ctl);
 
 	/* check that the frame is unicast frame to us */
@@ -296,13 +298,13 @@ static inline int
 ieee80211_rx_frame_decrypt(struct ieee80211_device* ieee, struct sk_buff *skb,
 			   struct ieee80211_crypt_data *crypt)
 {
-	struct ieee80211_hdr *hdr;
+	struct ieee80211_hdr_4addr *hdr;
 	int res, hdrlen;
 
 	if (crypt == NULL || crypt->ops->decrypt_mpdu == NULL)
 		return 0;
 
-	hdr = (struct ieee80211_hdr *) skb->data;
+	hdr = (struct ieee80211_hdr_4addr *)skb->data;
 	hdrlen = ieee80211_get_hdrlen(le16_to_cpu(hdr->frame_ctl));
 
 #ifdef CONFIG_IEEE80211_CRYPT_TKIP
@@ -341,13 +343,13 @@ static inline int
 ieee80211_rx_frame_decrypt_msdu(struct ieee80211_device* ieee, struct sk_buff *skb,
 			     int keyidx, struct ieee80211_crypt_data *crypt)
 {
-	struct ieee80211_hdr *hdr;
+	struct ieee80211_hdr_4addr *hdr;
 	int res, hdrlen;
 
 	if (crypt == NULL || crypt->ops->decrypt_msdu == NULL)
 		return 0;
 
-	hdr = (struct ieee80211_hdr *) skb->data;
+	hdr = (struct ieee80211_hdr_4addr *)skb->data;
 	hdrlen = ieee80211_get_hdrlen(le16_to_cpu(hdr->frame_ctl));
 
 	atomic_inc(&crypt->refcnt);
@@ -367,7 +369,7 @@ ieee80211_rx_frame_decrypt_msdu(struct i
 /* this function is stolen from ipw2200 driver*/
 #define IEEE_PACKET_RETRY_TIME (5*HZ)
 static int is_duplicate_packet(struct ieee80211_device *ieee,
-				      struct ieee80211_hdr *header)
+				      struct ieee80211_hdr_4addr *header)
 {
 	u16 fc = le16_to_cpu(header->frame_ctl);
 	u16 sc = le16_to_cpu(header->seq_ctl);
@@ -473,7 +475,7 @@ int ieee80211_rx(struct ieee80211_device
 {
 	struct net_device *dev = ieee->dev;
 	//struct r8180_priv *priv = (struct r8180_priv *)ieee80211_priv(dev);
-	struct ieee80211_hdr *hdr;
+	struct ieee80211_hdr_4addr *hdr;
 	//struct ieee80211_hdr_3addr_QOS *hdr;
 
 	size_t hdrlen;
@@ -490,7 +492,7 @@ int ieee80211_rx(struct ieee80211_device
 	int keyidx = 0;
 
 	// cheat the the hdr type
-	hdr = (struct ieee80211_hdr *)skb->data;
+	hdr = (struct ieee80211_hdr_4addr *)skb->data;
 	stats = &ieee->stats;
 
 	if (skb->len < 10) {
@@ -631,7 +633,7 @@ int ieee80211_rx(struct ieee80211_device
 	    (keyidx = ieee80211_rx_frame_decrypt(ieee, skb, crypt)) < 0)
 		goto rx_dropped;
 
-	hdr = (struct ieee80211_hdr *) skb->data;
+	hdr = (struct ieee80211_hdr_4addr *)skb->data;
 
 	/* skb: hdr + (possibly fragmented) plaintext payload */
 	// PR: FIXME: hostap has additional conditions in the "if" below:
@@ -684,7 +686,7 @@ int ieee80211_rx(struct ieee80211_device
 		/* this was the last fragment and the frame will be
 		 * delivered, so remove skb from fragment cache */
 		skb = frag_skb;
-		hdr = (struct ieee80211_hdr *) skb->data;
+		hdr = (struct ieee80211_hdr_4addr *)skb->data;
 		ieee80211_frag_cache_invalidate(ieee, hdr);
 	}
 
@@ -694,7 +696,7 @@ int ieee80211_rx(struct ieee80211_device
 	    ieee80211_rx_frame_decrypt_msdu(ieee, skb, keyidx, crypt))
 		goto rx_dropped;
 
-	hdr = (struct ieee80211_hdr *) skb->data;
+	hdr = (struct ieee80211_hdr_4addr *)skb->data;
 	if (crypt && !(fc & IEEE80211_FCTL_WEP) && !ieee->open_wep) {
 		if (/*ieee->ieee802_1x &&*/
 		    ieee80211_is_eapol_frame(ieee, skb, hdrlen)) {
@@ -1525,7 +1527,7 @@ inline void ieee80211_process_probe_resp
 }
 
 void ieee80211_rx_mgt(struct ieee80211_device *ieee,
-		      struct ieee80211_hdr *header,
+		      struct ieee80211_hdr_4addr *header,
 		      struct ieee80211_rx_stats *stats)
 {
 	switch (WLAN_FC_GET_STYPE(header->frame_ctl)) {
Index: b/drivers/staging/rtl8187se/ieee80211/ieee80211_tx.c
===================================================================
--- a/drivers/staging/rtl8187se/ieee80211/ieee80211_tx.c
+++ b/drivers/staging/rtl8187se/ieee80211/ieee80211_tx.c
@@ -192,11 +192,11 @@ int ieee80211_encrypt_fragment(
         return -1;
 
 #ifdef CONFIG_IEEE80211_CRYPT_TKIP
-	struct ieee80211_hdr *header;
+	struct ieee80211_hdr_4addr *header;
 
 	if (ieee->tkip_countermeasures &&
 	    crypt && crypt->ops && strcmp(crypt->ops->name, "TKIP") == 0) {
-		header = (struct ieee80211_hdr *) frag->data;
+		header = (struct ieee80211_hdr_4addr *)frag->data;
 		if (net_ratelimit()) {
 			printk(KERN_DEBUG "%s: TKIP countermeasures: dropped "
 			       "TX packet to " MAC_FMT "\n",
@@ -317,10 +317,6 @@ int ieee80211_xmit(struct sk_buff *skb,
 	int ether_type, encrypt;
 	int bytes, fc, QOS_ctl, hdr_len;
 	struct sk_buff *skb_frag;
-	//struct ieee80211_hdr header = { /* Ensure zero initialized */
-	//	.duration_id = 0,
-	//	.seq_ctl = 0
-	//};
 	struct ieee80211_hdr_3addr_QOS header = { /* Ensure zero initialized */
 		.duration_id = 0,
 		.seq_ctl = 0,
Index: b/drivers/staging/rtl8187se/r8180_core.c
===================================================================
--- a/drivers/staging/rtl8187se/r8180_core.c
+++ b/drivers/staging/rtl8187se/r8180_core.c
@@ -1540,7 +1540,7 @@ void rtl8180_rx(struct net_device *dev)
 	u8	LNA=0, BB=0;
 	u8 	LNA_gain[4]={02, 17, 29, 39};
 	u8  Antenna = 0;
-	struct ieee80211_hdr *hdr;
+	struct ieee80211_hdr_4addr *hdr;
 	u16 fc,type;
 	u8 bHwError = 0,bCRC = 0,bICV = 0;
 	bool	bCckRate = false;
@@ -1736,7 +1736,7 @@ void rtl8180_rx(struct net_device *dev)
 			| (((*(priv->rxringtail))& (0x08000000)) != 0 )| (((~(*(priv->rxringtail)))& (0x10000000)) != 0 )| (((~(*(priv->rxringtail)))& (0x20000000)) != 0 );
 		bCRC = ((*(priv->rxringtail)) & (0x00002000)) >> 13;
 		bICV = ((*(priv->rxringtail)) & (0x00001000)) >> 12;
-            hdr = (struct ieee80211_hdr *)priv->rxbuffer->buf;
+		hdr = (struct ieee80211_hdr_4addr *)priv->rxbuffer->buf;
 		    fc = le16_to_cpu(hdr->frame_ctl);
 	        type = WLAN_FC_GET_TYPE(fc);
 

  parent reply	other threads:[~2009-07-13 17:55 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-07-13 18:01 [PATCH 00/10] Stagging: rtl8187se updates Bartlomiej Zolnierkiewicz
2009-07-13 18:01 ` [PATCH 01/10] Staging: rtl8187se/ieee80211: remove OPENSUSE_SLED ifdefs Bartlomiej Zolnierkiewicz
2009-07-13 18:01 ` [PATCH 02/10] Staging: rtl8187se/ieee80211: remove FEDORACORE_9 ifdef Bartlomiej Zolnierkiewicz
2009-07-13 18:01 ` [PATCH 03/10] Staging: rtl8187se/ieee80211: remove NOT_YET ifdefs Bartlomiej Zolnierkiewicz
2009-07-13 18:01 ` [PATCH 04/10] Staging: rtl8187se: remove ENABLE_IPS ifdefs Bartlomiej Zolnierkiewicz
2009-07-13 18:01 ` Bartlomiej Zolnierkiewicz [this message]
2009-07-13 18:01 ` [PATCH 06/10] Staging: rtl8187se: rename struct ieee80211_hdr_3addr_qos to struct ieee80211_hdr_3addrqos Bartlomiej Zolnierkiewicz
2009-07-13 18:01 ` [PATCH 07/10] Staging: rtl8187se: rename struct ieee80211_hdr_QOS to struct ieee80211_hdr_4addrqos Bartlomiej Zolnierkiewicz
2009-07-13 18:02 ` [PATCH 08/10] Staging: rtl8187se/ieee80211: switch to use <linux/ieee80211.h> Bartlomiej Zolnierkiewicz
2009-07-13 18:02 ` [PATCH 09/10] Staging: rtl8187se/ieee80211: ieee80211.h reorderings Bartlomiej Zolnierkiewicz
2009-07-13 18:02 ` [PATCH 10/10] Staging: rtl8187se/ieee80211: convert MMIE_TYPE_* defines to enums Bartlomiej Zolnierkiewicz

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=20090713180144.15985.29639.sendpatchset@localhost.localdomain \
    --to=bzolnier@gmail.com \
    --cc=gregkh@suse.de \
    --cc=linux-kernel@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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.