From: "John W. Linville" <linville@tuxdriver.com>
To: Frederic Leroy <fredo@starox.org>
Cc: linux-wireless <linux-wireless@vger.kernel.org>,
Greg Kroah-Hartman <gregkh@suse.de>,
Larry Finger <Larry.Finger@lwfinger.net>
Subject: Re: [PATCH] staging: rtl8192su: fix compile error from wireless-testing commit
Date: Fri, 19 Feb 2010 14:52:16 -0500 [thread overview]
Message-ID: <20100219195215.GL4950@tuxdriver.com> (raw)
In-Reply-To: <20100218002526.01d1de5f@houba>
Since I've got the 'offending' commit in my tree, I'll carry this
staging fixup as well...
John
On Thu, Feb 18, 2010 at 12:25:26AM +0100, Frederic Leroy wrote:
> In wireless-testing, commit 7044cc56 added struct ieee80211_hdr_3addr
> to include/linux/ieee80211.h. This definition collides with one that is
> in the rtl8192su driver in staging.
>
> The conflict is resolved by changing rtl8192su
> to use the definition from include/linux/ieee80211.h.
>
> ---
> In http://marc.info/?l=linux-wireless&m=126642497300368&w=2, I reported
> that rtl8192su doesn't compile on wireless-testing tree.
> checkpatch.pl makes a lot of error on this patch but all these errors
> come from the staging code quality.
> I didn't test this patch, only compile it.
>
> Only this line is not a variable name change :
> - return ((struct ieee80211_hdr_3addr *)hdr)->payload;
> + return (void *)hdr+sizeof(struct ieee80211_hdr_3addr);
>
> Thank you Larry
>
> drivers/staging/rtl8192su/ieee80211/ieee80211.h | 12 +------
> .../staging/rtl8192su/ieee80211/ieee80211_r8192s.h | 2 +-
> drivers/staging/rtl8192su/ieee80211/ieee80211_rx.c | 18 +++++-----
> .../rtl8192su/ieee80211/ieee80211_softmac.c | 38 ++++++++++----------
> .../staging/rtl8192su/ieee80211/rtl819x_BAProc.c | 4 +-
> drivers/staging/rtl8192su/r8192U_core.c | 4 +-
> 6 files changed, 34 insertions(+), 44 deletions(-)
>
> diff --git a/drivers/staging/rtl8192su/ieee80211/ieee80211.h b/drivers/staging/rtl8192su/ieee80211/ieee80211.h
> index 9a4c858..2b8c855 100644
> --- a/drivers/staging/rtl8192su/ieee80211/ieee80211.h
> +++ b/drivers/staging/rtl8192su/ieee80211/ieee80211.h
> @@ -609,16 +609,6 @@ struct ieee80211_hdr_2addr {
> u8 payload[0];
> } __attribute__ ((packed));
>
> -struct ieee80211_hdr_3addr {
> - __le16 frame_ctl;
> - __le16 duration_id;
> - u8 addr1[ETH_ALEN];
> - u8 addr2[ETH_ALEN];
> - u8 addr3[ETH_ALEN];
> - __le16 seq_ctl;
> - u8 payload[0];
> -} __attribute__ ((packed));
> -
> struct ieee80211_hdr_4addr {
> __le16 frame_ctl;
> __le16 duration_id;
> @@ -1672,7 +1662,7 @@ static inline u8 *ieee80211_get_payload(struct rtl_ieee80211_hdr *hdr)
> case IEEE80211_2ADDR_LEN:
> return ((struct ieee80211_hdr_2addr *)hdr)->payload;
> case IEEE80211_3ADDR_LEN:
> - return ((struct ieee80211_hdr_3addr *)hdr)->payload;
> + return (void *)hdr+sizeof(struct ieee80211_hdr_3addr);
> case IEEE80211_4ADDR_LEN:
> return ((struct ieee80211_hdr_4addr *)hdr)->payload;
> }
> diff --git a/drivers/staging/rtl8192su/ieee80211/ieee80211_r8192s.h b/drivers/staging/rtl8192su/ieee80211/ieee80211_r8192s.h
> index 123abcf..7d6c3bc 100644
> --- a/drivers/staging/rtl8192su/ieee80211/ieee80211_r8192s.h
> +++ b/drivers/staging/rtl8192su/ieee80211/ieee80211_r8192s.h
> @@ -201,7 +201,7 @@ typedef union _frameqos {
> static inline u8 Frame_QoSTID(u8 *buf)
> {
> struct ieee80211_hdr_3addr *hdr = (struct ieee80211_hdr_3addr *)buf;
> - u16 fc = le16_to_cpu(hdr->frame_ctl);
> + u16 fc = le16_to_cpu(hdr->frame_control);
>
> return (u8)((frameqos *)(buf +
> (((fc & IEEE80211_FCTL_TODS) &&
> diff --git a/drivers/staging/rtl8192su/ieee80211/ieee80211_rx.c b/drivers/staging/rtl8192su/ieee80211/ieee80211_rx.c
> index fecfa12..095b8c6 100644
> --- a/drivers/staging/rtl8192su/ieee80211/ieee80211_rx.c
> +++ b/drivers/staging/rtl8192su/ieee80211/ieee80211_rx.c
> @@ -744,7 +744,7 @@ u8 parse_subframe(struct sk_buff *skb,
> struct ieee80211_rxb *rxb,u8* src,u8* dst)
> {
> struct ieee80211_hdr_3addr *hdr = (struct ieee80211_hdr_3addr* )skb->data;
> - u16 fc = le16_to_cpu(hdr->frame_ctl);
> + u16 fc = le16_to_cpu(hdr->frame_control);
>
> u16 LLCOffset= sizeof(struct ieee80211_hdr_3addr);
> u16 ChkLength;
> @@ -756,7 +756,7 @@ u8 parse_subframe(struct sk_buff *skb,
> struct sk_buff *sub_skb;
> u8 *data_ptr;
> /* just for debug purpose */
> - SeqNum = WLAN_GET_SEQ_SEQ(le16_to_cpu(hdr->seq_ctl));
> + SeqNum = WLAN_GET_SEQ_SEQ(le16_to_cpu(hdr->seq_ctrl));
>
> if((IEEE80211_QOS_HAS_SEQ(fc))&&\
> (((frameqos *)(skb->data + IEEE80211_3ADDR_LEN))->field.reserved)) {
> @@ -2370,7 +2370,7 @@ static inline void ieee80211_process_probe_response(
> escape_essid(info_element->data,
> info_element->len),
> MAC_ARG(beacon->header.addr3),
> - WLAN_FC_GET_STYPE(beacon->header.frame_ctl) ==
> + WLAN_FC_GET_STYPE(beacon->header.frame_control) ==
> IEEE80211_STYPE_PROBE_RESP ?
> "PROBE RESPONSE" : "BEACON");
> return;
> @@ -2387,7 +2387,7 @@ static inline void ieee80211_process_probe_response(
> return;
> if(ieee->bGlobalDomain)
> {
> - if (WLAN_FC_GET_STYPE(beacon->header.frame_ctl) == IEEE80211_STYPE_PROBE_RESP)
> + if (WLAN_FC_GET_STYPE(beacon->header.frame_control) == IEEE80211_STYPE_PROBE_RESP)
> {
> // Case 1: Country code
> if(IS_COUNTRY_IE_VALID(ieee) )
> @@ -2454,7 +2454,7 @@ static inline void ieee80211_process_probe_response(
> else
> ieee->current_network.buseprotection = false;
> }
> - if(is_beacon(beacon->header.frame_ctl))
> + if(is_beacon(beacon->header.frame_control))
> {
> if(ieee->state == IEEE80211_LINKED)
> ieee->LinkDetectInfo.NumRecvBcnInPeriod++;
> @@ -2496,7 +2496,7 @@ static inline void ieee80211_process_probe_response(
> escape_essid(network.ssid,
> network.ssid_len),
> MAC_ARG(network.bssid),
> - WLAN_FC_GET_STYPE(beacon->header.frame_ctl) ==
> + WLAN_FC_GET_STYPE(beacon->header.frame_control) ==
> IEEE80211_STYPE_PROBE_RESP ?
> "PROBE RESPONSE" : "BEACON");
> #endif
> @@ -2509,7 +2509,7 @@ static inline void ieee80211_process_probe_response(
> escape_essid(target->ssid,
> target->ssid_len),
> MAC_ARG(target->bssid),
> - WLAN_FC_GET_STYPE(beacon->header.frame_ctl) ==
> + WLAN_FC_GET_STYPE(beacon->header.frame_control) ==
> IEEE80211_STYPE_PROBE_RESP ?
> "PROBE RESPONSE" : "BEACON");
>
> @@ -2519,7 +2519,7 @@ static inline void ieee80211_process_probe_response(
> */
> renew = !time_after(target->last_scanned + ieee->scan_age, jiffies);
> //YJ,add,080819,for hidden ap
> - if(is_beacon(beacon->header.frame_ctl) == 0)
> + if(is_beacon(beacon->header.frame_control) == 0)
> network.flags = (~NETWORK_EMPTY_ESSID & network.flags)|(NETWORK_EMPTY_ESSID & target->flags);
> //if(strncmp(network.ssid, "linksys-c",9) == 0)
> // printk("====>2 network.ssid=%s FLAG=%d target.ssid=%s FLAG=%d\n", network.ssid, network.flags, target->ssid, target->flags);
> @@ -2535,7 +2535,7 @@ static inline void ieee80211_process_probe_response(
> }
>
> spin_unlock_irqrestore(&ieee->lock, flags);
> - if (is_beacon(beacon->header.frame_ctl)&&is_same_network(&ieee->current_network, &network, ieee)&&\
> + if (is_beacon(beacon->header.frame_control)&&is_same_network(&ieee->current_network, &network, ieee)&&\
> (ieee->state == IEEE80211_LINKED)) {
> if(ieee->handle_beacon != NULL) {
> ieee->handle_beacon(ieee->dev,beacon,&ieee->current_network);
> diff --git a/drivers/staging/rtl8192su/ieee80211/ieee80211_softmac.c b/drivers/staging/rtl8192su/ieee80211/ieee80211_softmac.c
> index 95d4f84..0ba2a01 100644
> --- a/drivers/staging/rtl8192su/ieee80211/ieee80211_softmac.c
> +++ b/drivers/staging/rtl8192su/ieee80211/ieee80211_softmac.c
> @@ -242,7 +242,7 @@ inline void softmac_mgmt_xmit(struct sk_buff *skb, struct ieee80211_device *ieee
> if(ieee->queue_stop){
> enqueue_mgmt(ieee,skb);
> }else{
> - header->seq_ctl = cpu_to_le16(ieee->seq_ctrl[0]<<4);
> + header->seq_ctrl = cpu_to_le16(ieee->seq_ctrl[0]<<4);
>
> if (ieee->seq_ctrl[0] == 0xFFF)
> ieee->seq_ctrl[0] = 0;
> @@ -260,7 +260,7 @@ inline void softmac_mgmt_xmit(struct sk_buff *skb, struct ieee80211_device *ieee
> spin_unlock_irqrestore(&ieee->lock, flags);
> spin_lock_irqsave(&ieee->mgmt_tx_lock, flags);
>
> - header->seq_ctl = cpu_to_le16(ieee->seq_ctrl[0] << 4);
> + header->seq_ctrl = cpu_to_le16(ieee->seq_ctrl[0] << 4);
>
> if (ieee->seq_ctrl[0] == 0xFFF)
> ieee->seq_ctrl[0] = 0;
> @@ -302,7 +302,7 @@ inline void softmac_ps_mgmt_xmit(struct sk_buff *skb, struct ieee80211_device *i
> //printk("=============>%s()\n", __FUNCTION__);
> if(single){
>
> - header->seq_ctl = cpu_to_le16(ieee->seq_ctrl[0] << 4);
> + header->seq_ctrl = cpu_to_le16(ieee->seq_ctrl[0] << 4);
>
> if (ieee->seq_ctrl[0] == 0xFFF)
> ieee->seq_ctrl[0] = 0;
> @@ -315,7 +315,7 @@ inline void softmac_ps_mgmt_xmit(struct sk_buff *skb, struct ieee80211_device *i
>
> }else{
>
> - header->seq_ctl = cpu_to_le16(ieee->seq_ctrl[0] << 4);
> + header->seq_ctrl = cpu_to_le16(ieee->seq_ctrl[0] << 4);
>
> if (ieee->seq_ctrl[0] == 0xFFF)
> ieee->seq_ctrl[0] = 0;
> @@ -347,7 +347,7 @@ inline struct sk_buff *ieee80211_probe_req(struct ieee80211_device *ieee)
> skb_reserve(skb, ieee->tx_headroom);
>
> req = (struct ieee80211_probe_request *) skb_put(skb,sizeof(struct ieee80211_probe_request));
> - req->header.frame_ctl = cpu_to_le16(IEEE80211_STYPE_PROBE_REQ);
> + req->header.frame_control = cpu_to_le16(IEEE80211_STYPE_PROBE_REQ);
> req->header.duration_id = 0; //FIXME: is this OK ?
>
> memset(req->header.addr1, 0xff, ETH_ALEN);
> @@ -662,8 +662,8 @@ inline struct sk_buff *ieee80211_authentication_req(struct ieee80211_network *be
> auth = (struct ieee80211_authentication *)
> skb_put(skb, sizeof(struct ieee80211_authentication));
>
> - auth->header.frame_ctl = IEEE80211_STYPE_AUTH;
> - if (challengelen) auth->header.frame_ctl |= IEEE80211_FCTL_WEP;
> + auth->header.frame_control = IEEE80211_STYPE_AUTH;
> + if (challengelen) auth->header.frame_control |= IEEE80211_FCTL_WEP;
>
> auth->header.duration_id = 0x013a; //FIXME
>
> @@ -801,7 +801,7 @@ static struct sk_buff* ieee80211_probe_resp(struct ieee80211_device *ieee, u8 *d
> beacon_buf->capability |= cpu_to_le16(WLAN_CAPABILITY_PRIVACY);
>
>
> - beacon_buf->header.frame_ctl = cpu_to_le16(IEEE80211_STYPE_PROBE_RESP);
> + beacon_buf->header.frame_control = cpu_to_le16(IEEE80211_STYPE_PROBE_RESP);
> beacon_buf->info_element[0].id = MFIE_TYPE_SSID;
> beacon_buf->info_element[0].len = ssid_len;
>
> @@ -880,7 +880,7 @@ struct sk_buff* ieee80211_assoc_resp(struct ieee80211_device *ieee, u8 *dest)
> assoc = (struct ieee80211_assoc_response_frame *)
> skb_put(skb,sizeof(struct ieee80211_assoc_response_frame));
>
> - assoc->header.frame_ctl = cpu_to_le16(IEEE80211_STYPE_ASSOC_RESP);
> + assoc->header.frame_control = cpu_to_le16(IEEE80211_STYPE_ASSOC_RESP);
> memcpy(assoc->header.addr1, dest,ETH_ALEN);
> memcpy(assoc->header.addr3, ieee->dev->dev_addr, ETH_ALEN);
> memcpy(assoc->header.addr2, ieee->dev->dev_addr, ETH_ALEN);
> @@ -935,7 +935,7 @@ struct sk_buff* ieee80211_auth_resp(struct ieee80211_device *ieee,int status, u8
> memcpy(auth->header.addr3, ieee->dev->dev_addr, ETH_ALEN);
> memcpy(auth->header.addr2, ieee->dev->dev_addr, ETH_ALEN);
> memcpy(auth->header.addr1, dest, ETH_ALEN);
> - auth->header.frame_ctl = cpu_to_le16(IEEE80211_STYPE_AUTH);
> + auth->header.frame_control = cpu_to_le16(IEEE80211_STYPE_AUTH);
> return skb;
>
>
> @@ -957,7 +957,7 @@ struct sk_buff* ieee80211_null_func(struct ieee80211_device *ieee,short pwr)
> memcpy(hdr->addr2, ieee->dev->dev_addr, ETH_ALEN);
> memcpy(hdr->addr3, ieee->current_network.bssid, ETH_ALEN);
>
> - hdr->frame_ctl = cpu_to_le16(IEEE80211_FTYPE_DATA |
> + hdr->frame_control = cpu_to_le16(IEEE80211_FTYPE_DATA |
> IEEE80211_STYPE_NULLFUNC | IEEE80211_FCTL_TODS |
> (pwr ? IEEE80211_FCTL_PM:0));
>
> @@ -1083,7 +1083,7 @@ inline struct sk_buff *ieee80211_association_req(struct ieee80211_network *beaco
> skb_put(skb, sizeof(struct ieee80211_assoc_request_frame)+2);
>
>
> - hdr->header.frame_ctl = IEEE80211_STYPE_ASSOC_REQ;
> + hdr->header.frame_control = IEEE80211_STYPE_ASSOC_REQ;
> hdr->header.duration_id= 37; //FIXME
> memcpy(hdr->header.addr1, beacon->bssid, ETH_ALEN);
> memcpy(hdr->header.addr2, ieee->dev->dev_addr, ETH_ALEN);
> @@ -1940,13 +1940,13 @@ ieee80211_rx_frame_softmac(struct ieee80211_device *ieee, struct sk_buff *skb,
> if(!ieee->proto_started)
> return 0;
>
> - switch (WLAN_FC_GET_STYPE(header->frame_ctl)) {
> + switch (WLAN_FC_GET_STYPE(header->frame_control)) {
>
> case IEEE80211_STYPE_ASSOC_RESP:
> case IEEE80211_STYPE_REASSOC_RESP:
>
> IEEE80211_DEBUG_MGMT("received [RE]ASSOCIATION RESPONSE (%d)\n",
> - WLAN_FC_GET_STYPE(header->frame_ctl));
> + WLAN_FC_GET_STYPE(header->frame_control));
> if ((ieee->softmac_features & IEEE_SOFTMAC_ASSOCIATE) &&
> ieee->state == IEEE80211_ASSOCIATING_AUTHENTICATED &&
> ieee->iw_mode == IW_MODE_INFRA){
> @@ -2088,7 +2088,7 @@ ieee80211_rx_frame_softmac(struct ieee80211_device *ieee, struct sk_buff *skb,
> if ((ieee->softmac_features & IEEE_SOFTMAC_ASSOCIATE) &&
> ieee->state == IEEE80211_LINKED &&
> ieee->iw_mode == IW_MODE_INFRA){
> - printk("==========>received disassoc/deauth(%x) frame, reason code:%x\n",WLAN_FC_GET_STYPE(header->frame_ctl), ((struct ieee80211_disassoc*)skb->data)->reason);
> + printk("==========>received disassoc/deauth(%x) frame, reason code:%x\n",WLAN_FC_GET_STYPE(header->frame_control), ((struct ieee80211_disassoc*)skb->data)->reason);
> ieee->state = IEEE80211_ASSOCIATING;
> ieee->softmac_stats.reassoc++;
> ieee->is_roaming = true;
> @@ -2239,7 +2239,7 @@ void ieee80211_rtl_wake_queue(struct ieee80211_device *ieee)
>
> header = (struct ieee80211_hdr_3addr *) skb->data;
>
> - header->seq_ctl = cpu_to_le16(ieee->seq_ctrl[0] << 4);
> + header->seq_ctrl = cpu_to_le16(ieee->seq_ctrl[0] << 4);
>
> if (ieee->seq_ctrl[0] == 0xFFF)
> ieee->seq_ctrl[0] = 0;
> @@ -2574,7 +2574,7 @@ struct sk_buff *ieee80211_get_beacon_(struct ieee80211_device *ieee)
> return NULL;
>
> b = (struct ieee80211_probe_response *) skb->data;
> - b->header.frame_ctl = cpu_to_le16(IEEE80211_STYPE_BEACON);
> + b->header.frame_control = cpu_to_le16(IEEE80211_STYPE_BEACON);
>
> return skb;
>
> @@ -2590,7 +2590,7 @@ struct sk_buff *ieee80211_get_beacon(struct ieee80211_device *ieee)
> return NULL;
>
> b = (struct ieee80211_probe_response *) skb->data;
> - b->header.seq_ctl = cpu_to_le16(ieee->seq_ctrl[0] << 4);
> + b->header.seq_ctrl = cpu_to_le16(ieee->seq_ctrl[0] << 4);
>
> if (ieee->seq_ctrl[0] == 0xFFF)
> ieee->seq_ctrl[0] = 0;
> @@ -3139,7 +3139,7 @@ inline struct sk_buff *ieee80211_disassociate_skb(
> return NULL;
>
> disass = (struct ieee80211_disassoc *) skb_put(skb,sizeof(struct ieee80211_disassoc));
> - disass->header.frame_ctl = cpu_to_le16(IEEE80211_STYPE_DISASSOC);
> + disass->header.frame_control = cpu_to_le16(IEEE80211_STYPE_DISASSOC);
> disass->header.duration_id = 0;
>
> memcpy(disass->header.addr1, beacon->bssid, ETH_ALEN);
> diff --git a/drivers/staging/rtl8192su/ieee80211/rtl819x_BAProc.c b/drivers/staging/rtl8192su/ieee80211/rtl819x_BAProc.c
> index 8d12ffc..c696245 100644
> --- a/drivers/staging/rtl8192su/ieee80211/rtl819x_BAProc.c
> +++ b/drivers/staging/rtl8192su/ieee80211/rtl819x_BAProc.c
> @@ -136,7 +136,7 @@ static struct sk_buff* ieee80211_ADDBA(struct ieee80211_device* ieee, u8* Dst, P
>
> memcpy(BAReq->addr3, ieee->current_network.bssid, ETH_ALEN);
>
> - BAReq->frame_ctl = cpu_to_le16(IEEE80211_STYPE_MANAGE_ACT); //action frame
> + BAReq->frame_control = cpu_to_le16(IEEE80211_STYPE_MANAGE_ACT); //action frame
>
> //tag += sizeof( struct ieee80211_hdr_3addr); //move to action field
> tag = (u8*)skb_put(skb, 9);
> @@ -221,7 +221,7 @@ static struct sk_buff* ieee80211_DELBA(
> memcpy(Delba->addr1, dst, ETH_ALEN);
> memcpy(Delba->addr2, ieee->dev->dev_addr, ETH_ALEN);
> memcpy(Delba->addr3, ieee->current_network.bssid, ETH_ALEN);
> - Delba->frame_ctl = cpu_to_le16(IEEE80211_STYPE_MANAGE_ACT); //action frame
> + Delba->frame_control = cpu_to_le16(IEEE80211_STYPE_MANAGE_ACT); //action frame
>
> tag = (u8*)skb_put(skb, 6);
>
> diff --git a/drivers/staging/rtl8192su/r8192U_core.c b/drivers/staging/rtl8192su/r8192U_core.c
> index ccb9d5b..6f424fe 100644
> --- a/drivers/staging/rtl8192su/r8192U_core.c
> +++ b/drivers/staging/rtl8192su/r8192U_core.c
> @@ -6168,7 +6168,7 @@ void rtl8192_process_phyinfo(struct r8192_priv * priv,u8* buffer, struct ieee802
> u16 sc ;
> unsigned int frag,seq;
> hdr = (struct ieee80211_hdr_3addr *)buffer;
> - sc = le16_to_cpu(hdr->seq_ctl);
> + sc = le16_to_cpu(hdr->seq_ctrl);
> frag = WLAN_GET_SEQ_FRAG(sc);
> seq = WLAN_GET_SEQ_SEQ(sc);
> //cosa add 04292008 to record the sequence number
> @@ -6827,7 +6827,7 @@ void rtl8192SU_TranslateRxSignalStuff(struct sk_buff *skb,
> tmp_buf = (u8*)skb->data;// + get_rxpacket_shiftbytes_819xusb(pstats);
>
> hdr = (struct ieee80211_hdr_3addr *)tmp_buf;
> - fc = le16_to_cpu(hdr->frame_ctl);
> + fc = le16_to_cpu(hdr->frame_control);
> type = WLAN_FC_GET_TYPE(fc);
> praddr = hdr->addr1;
>
> --
> 1.6.4.4
>
> --
> Frédéric Leroy
>
--
John W. Linville Someday the world will need a hero, and you
linville@tuxdriver.com might be all we have. Be ready.
next prev parent reply other threads:[~2010-02-19 20:00 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-02-17 23:25 [PATCH] staging: rtl8192su: fix compile error from wireless-testing commit Frederic Leroy
2010-02-19 19:52 ` John W. Linville [this message]
2010-02-20 18:31 ` Kalle Valo
2010-02-20 18:59 ` Larry Finger
2010-02-20 20:46 ` Greg KH
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=20100219195215.GL4950@tuxdriver.com \
--to=linville@tuxdriver.com \
--cc=Larry.Finger@lwfinger.net \
--cc=fredo@starox.org \
--cc=gregkh@suse.de \
--cc=linux-wireless@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).