This patch series contains fixes to avoid checkpatch issues and removed
unused code. Few patch contains changes related to NULL check and freeing of
dynamically allocated memory.
Ajay Singh (11):
staging: wilc1000: refactor scan() to free kmalloc memory on failure
cases
staging: wilc1000: removed unused global variables for gtk and ptk
information
staging: wilc1000: remove line over 80 char warnings in
set_wiphy_params()
staging: wilc1000: refactor WILC_WFI_p2p_rx() to avoid line over 80
char
staging: wilc1000: rename WILC_WFI_p2p_rx & s32Freq to avoid camelCase
staging: wilc1000: refactor mgmt_tx to fix line over 80 chars
staging: wilc1000: rename hAgingTimer to avoid camelCase issue
staging: wilc1000: fix line over 80 char issue in clear_shadow_scan()
staging: wilc1000: remove line over 80 char in cfg_connect_result()
staging: wilc1000: remove unused 'struct add_key_params'
staging: wilc1000: remove line over 80 char warning in few functions
drivers/staging/wilc1000/linux_wlan.c | 2 +-
drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 577 +++++++++++-----------
drivers/staging/wilc1000/wilc_wlan.h | 2 +-
3 files changed, 297 insertions(+), 284 deletions(-)
--
2.7.4
@@ -582,6 +582,49 @@ static int set_channel(struct wiphy *wiphy,returnresult;}+staticinlinebool
This shouldn't be a bool function. It should return 0 and -ENOMEM.
Bool functions should kind of have the return values built into the name
like access_ok() or IS_ERR().
+wilc_wfi_cfg_alloc_fill_ssid(struct cfg80211_scan_request *request,
+ struct hidden_network *ntwk)
+{
+ int i = 0;
Don't put a blank line between the alloc and the check. They're as
connected as can be. I hate "goto out;" but that is a personal
preference which I would never push on to other developers...
You didn't introduce the problem, but this loop seems kind of buggy. We
should have two iterators, one for request->ssids[i] and one for
ntwk->net_info[i]. Otherwise we're copying the array information but
we're leaving holes in the destination array. Which would be fine
except we're not saving the totaly number of elements in the destination
array, we're saving the number of elements with stuff in them.
So imagine that we have a request->n_ssids == 10 but only the last
three elements have request->ssids[i].ssid_len > 0. Then we record that
ntwk->n_ssids is 3 but wthose elements are all holes. So that can't
work. See handle_scan():
for (i = 0; i < hidden_net->n_ssids; i++)
valuesize += ((hidden_net->net_info[i].ssid_len) + 1);
"valuesize" is wrong because it's looking at holes.
+ }
+ return true;
+
+out_free:
+
+ for (; i >= 0 ; i--)
+ kfree(ntwk->net_info[i].ssid);
The first kfree(ntwk->net_info[i].ssid); is a no-op. You could write
this like:
while (--i >= 0)
kfree(ntwk->net_info[i].ssid);
Or:
while (i--)
kfree(ntwk->net_info[i].ssid);
Or you could do:
for (i--; i >= 0 ; i--)
kfree(ntwk->net_info[i].ssid);
I don't care...
regards,
dan carpenter
Hi Dan,
Thanks for your detailed review comments.
On Tue, 20 Mar 2018 22:46:32 +0300
Dan Carpenter [off-list ref] wrote:
On Tue, Mar 20, 2018 at 10:25:34PM +0530, Ajay Singh wrote:
quoted
Added changes to free the allocated memory in scan() for error condition.
Also added 'NULL' check validation before accessing allocated memory.
Signed-off-by: Ajay Singh <ajay.kathat@microchip.com>
Don't put a blank line between the alloc and the check. They're as
connected as can be. I hate "goto out;" but that is a personal
preference which I would never push on to other developers...
I will modify the code to address the review comments and will send the
updated patch.
You didn't introduce the problem, but this loop seems kind of buggy. We
should have two iterators, one for request->ssids[i] and one for
ntwk->net_info[i]. Otherwise we're copying the array information but
we're leaving holes in the destination array. Which would be fine
except we're not saving the totaly number of elements in the destination
array, we're saving the number of elements with stuff in them.
So imagine that we have a request->n_ssids == 10 but only the last
three elements have request->ssids[i].ssid_len > 0. Then we record that
ntwk->n_ssids is 3 but wthose elements are all holes. So that can't
work. See handle_scan():
for (i = 0; i < hidden_net->n_ssids; i++)
valuesize += ((hidden_net->net_info[i].ssid_len) + 1);
"valuesize" is wrong because it's looking at holes.
While testing, I found that the last element in request->ssids the
ssid_len is zero. For in between elements the values has some valid
length. I only tested for 'connect with AP' and 'iw scan' operation.
The scenario you have mention can occur for some instance. So, I will
modify the code to not have holes in allocated array at the time of
filling the data.
I will include these changes and send updated v2 patch set.
quoted
+ }
+ return true;
+
+out_free:
+
+ for (; i >= 0 ; i--)
+ kfree(ntwk->net_info[i].ssid);
The first kfree(ntwk->net_info[i].ssid); is a no-op. You could write
this like:
while (--i >= 0)
kfree(ntwk->net_info[i].ssid);
I will include these changes and send the updated patch.
Regards,
Ajay
Removed the unnecessary global variables used to store gtk and ptk
information. Key data stored in the params was never access using these
global variables.
Global variables given below are removed
g_add_gtk_key_params;
g_key_gtk_params;
g_add_ptk_key_params;
g_key_ptk_params;
g_key_wep_params;
g_ptk_keys_saved;
g_gtk_keys_saved;
g_wep_keys_saved;
Signed-off-by: Ajay Singh <ajay.kathat@microchip.com>
---
drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 80 -----------------------
1 file changed, 80 deletions(-)
Fix 'line over 80 character' issue reported by checkpatch.pl script in
set_wiphy_params(). Directly used the 'wiphy' pointer received as
function argument instead of using 'priv->dev->ieee80211_ptr->wiphy'.
Signed-off-by: Ajay Singh <ajay.kathat@microchip.com>
---
drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
Fix 'line over 80 characters' issue found by checkpatch.pl script.
Refactor and split the function to avoid the checkpatch reported issues.
Signed-off-by: Ajay Singh <ajay.kathat@microchip.com>
---
drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 145 ++++++++++++----------
1 file changed, 82 insertions(+), 63 deletions(-)
From: Dan Carpenter <hidden> Date: 2018-03-21 07:13:48
This one would have been easier for me to review if it were broken up
slightly differently. I have a script to review when people split
functions up, but there were a bunch of other stuff so my script gets
confused.
Anyway, looks good.
regards,
dan carpenter
Refactor mgmt_tx() to fix line over 80 characters issue. Split the
function to avoid the checkpatch.pl warning. Returning the same error
code in case of memory allocation failure.
Signed-off-by: Ajay Singh <ajay.kathat@microchip.com>
---
drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 187 +++++++++++++---------
1 file changed, 111 insertions(+), 76 deletions(-)
@@ -1555,6 +1555,58 @@ static int cancel_remain_on_channel(struct wiphy *wiphy,priv->remain_on_ch_params.listen_session_id);}+staticvoidwilc_wfi_cfg_tx_vendor_spec(structp2p_mgmt_data*mgmt_tx,+structcfg80211_mgmt_tx_params*params,+u8iftype,u32buf_len)+{+constu8*buf=params->buf;+size_tlen=params->len;+u32i;+u8subtype=buf[P2P_PUB_ACTION_SUBTYPE];++if(subtype==GO_NEG_REQ||subtype==GO_NEG_RSP){+if(p2p_local_random==1&&+p2p_recv_random<p2p_local_random){+get_random_bytes(&p2p_local_random,1);+p2p_local_random++;+}+}++if(p2p_local_random>p2p_recv_random&&(subtype==GO_NEG_REQ||+subtype==GO_NEG_RSP||+subtype==P2P_INV_REQ||+subtype==P2P_INV_RSP)){+boolfound=false;+booloper_ch=false;++for(i=P2P_PUB_ACTION_SUBTYPE+2;i<len;i++){+if(buf[i]==P2PELEM_ATTR_ID&&+!(memcmp(p2p_oui,&buf[i+2],4))){+if(subtype==P2P_INV_REQ||+subtype==P2P_INV_RSP)+oper_ch=true;++found=true;+break;+}+}++if(found)+wilc_wfi_cfg_parse_tx_action(&mgmt_tx->buff[i+6],+len-(i+6),oper_ch,+iftype);++if(subtype!=P2P_INV_REQ&&subtype!=P2P_INV_RSP){+intvendor_spec_len=sizeof(p2p_vendor_spec);++memcpy(&mgmt_tx->buff[len],p2p_vendor_spec,+vendor_spec_len);+mgmt_tx->buff[len+vendor_spec_len]=p2p_local_random;+mgmt_tx->size=buf_len;+}+}+}+staticintmgmt_tx(structwiphy*wiphy,structwireless_dev*wdev,structcfg80211_mgmt_tx_params*params,
@@ -1568,9 +1620,9 @@ static int mgmt_tx(struct wiphy *wiphy,structp2p_mgmt_data*mgmt_tx;structwilc_priv*priv;structhost_if_drv*wfi_drv;-u32i;structwilc_vif*vif;u32buf_len=len+sizeof(p2p_vendor_spec)+sizeof(p2p_local_random);+intret=0;vif=netdev_priv(wdev->netdev);priv=wiphy_priv(wiphy);
@@ -1580,92 +1632,75 @@ static int mgmt_tx(struct wiphy *wiphy,priv->tx_cookie=*cookie;mgmt=(conststructieee80211_mgmt*)buf;-if(ieee80211_is_mgmt(mgmt->frame_control)){-mgmt_tx=kmalloc(sizeof(structp2p_mgmt_data),GFP_KERNEL);-if(!mgmt_tx)-return-EFAULT;+if(!ieee80211_is_mgmt(mgmt->frame_control))+gotoout;-mgmt_tx->buff=kmalloc(buf_len,GFP_KERNEL);-if(!mgmt_tx->buff){-kfree(mgmt_tx);-return-ENOMEM;-}+mgmt_tx=kmalloc(sizeof(structp2p_mgmt_data),GFP_KERNEL);+if(!mgmt_tx){+ret=-ENOMEM;+gotoout;+}++mgmt_tx->buff=kmalloc(buf_len,GFP_KERNEL);+if(!mgmt_tx->buff){+ret=-ENOMEM;+kfree(mgmt_tx);+gotoout;+}++memcpy(mgmt_tx->buff,buf,len);+mgmt_tx->size=len;++if(ieee80211_is_probe_resp(mgmt->frame_control)){+wilc_set_mac_chnl_num(vif,chan->hw_value);+curr_channel=chan->hw_value;+gotoout_txq_add_pkt;+}-memcpy(mgmt_tx->buff,buf,len);-mgmt_tx->size=len;+if(!ieee80211_is_action(mgmt->frame_control))+gotoout_txq_add_pkt;-if(ieee80211_is_probe_resp(mgmt->frame_control)){+if(buf[ACTION_CAT_ID]==PUB_ACTION_ATTR_ID){+if(buf[ACTION_SUBTYPE_ID]!=PUBLIC_ACT_VENDORSPEC||+buf[P2P_PUB_ACTION_SUBTYPE]!=GO_NEG_CONF){wilc_set_mac_chnl_num(vif,chan->hw_value);curr_channel=chan->hw_value;-}elseif(ieee80211_is_action(mgmt->frame_control)){-if(buf[ACTION_CAT_ID]==PUB_ACTION_ATTR_ID){-if(buf[ACTION_SUBTYPE_ID]!=PUBLIC_ACT_VENDORSPEC||-buf[P2P_PUB_ACTION_SUBTYPE]!=GO_NEG_CONF){-wilc_set_mac_chnl_num(vif,-chan->hw_value);-curr_channel=chan->hw_value;-}-switch(buf[ACTION_SUBTYPE_ID]){-caseGAS_INITIAL_REQ:-break;+}+switch(buf[ACTION_SUBTYPE_ID]){+caseGAS_INITIAL_REQ:+caseGAS_INITIAL_RSP:+break;-caseGAS_INITIAL_RSP:-break;+casePUBLIC_ACT_VENDORSPEC:+if(!memcmp(p2p_oui,&buf[ACTION_SUBTYPE_ID+1],4))+wilc_wfi_cfg_tx_vendor_spec(mgmt_tx,params,+vif->iftype,+buf_len);+else+netdev_dbg(vif->ndev,+"Not a P2P public action frame\n");-casePUBLIC_ACT_VENDORSPEC:-{-if(!memcmp(p2p_oui,&buf[ACTION_SUBTYPE_ID+1],4)){-if((buf[P2P_PUB_ACTION_SUBTYPE]==GO_NEG_REQ||buf[P2P_PUB_ACTION_SUBTYPE]==GO_NEG_RSP)){-if(p2p_local_random==1&&p2p_recv_random<p2p_local_random){-get_random_bytes(&p2p_local_random,1);-p2p_local_random++;-}-}--if((buf[P2P_PUB_ACTION_SUBTYPE]==GO_NEG_REQ||buf[P2P_PUB_ACTION_SUBTYPE]==GO_NEG_RSP||-buf[P2P_PUB_ACTION_SUBTYPE]==P2P_INV_REQ||buf[P2P_PUB_ACTION_SUBTYPE]==P2P_INV_RSP)){-if(p2p_local_random>p2p_recv_random){-for(i=P2P_PUB_ACTION_SUBTYPE+2;i<len;i++){-if(buf[i]==P2PELEM_ATTR_ID&&!(memcmp(p2p_oui,&buf[i+2],4))){-if(buf[P2P_PUB_ACTION_SUBTYPE]==P2P_INV_REQ||buf[P2P_PUB_ACTION_SUBTYPE]==P2P_INV_RSP)-wilc_wfi_cfg_parse_tx_action(&mgmt_tx->buff[i+6],len-(i+6),true,vif->iftype);-else-wilc_wfi_cfg_parse_tx_action(&mgmt_tx->buff[i+6],len-(i+6),false,vif->iftype);-break;-}-}--if(buf[P2P_PUB_ACTION_SUBTYPE]!=P2P_INV_REQ&&buf[P2P_PUB_ACTION_SUBTYPE]!=P2P_INV_RSP){-memcpy(&mgmt_tx->buff[len],p2p_vendor_spec,sizeof(p2p_vendor_spec));-mgmt_tx->buff[len+sizeof(p2p_vendor_spec)]=p2p_local_random;-mgmt_tx->size=buf_len;-}-}-}--}else{-netdev_dbg(vif->ndev,"Not a P2P public action frame\n");-}+break;-break;-}+default:+netdev_dbg(vif->ndev,+"NOT HANDLED PUBLIC ACTION FRAME TYPE:%x\n",+buf[ACTION_SUBTYPE_ID]);+break;+}+}-default:-{-netdev_dbg(vif->ndev,"NOT HANDLED PUBLIC ACTION FRAME TYPE:%x\n",buf[ACTION_SUBTYPE_ID]);-break;-}-}-}+wfi_drv->p2p_timeout=(jiffies+msecs_to_jiffies(wait));-wfi_drv->p2p_timeout=(jiffies+msecs_to_jiffies(wait));-}+out_txq_add_pkt:-wilc_wlan_txq_add_mgmt_pkt(wdev->netdev,mgmt_tx,-mgmt_tx->buff,mgmt_tx->size,-wilc_wfi_mgmt_tx_complete);-}-return0;+wilc_wlan_txq_add_mgmt_pkt(wdev->netdev,mgmt_tx,+mgmt_tx->buff,mgmt_tx->size,+wilc_wfi_mgmt_tx_complete);++out:++returnret;}staticintmgmt_tx_cancel_wait(structwiphy*wiphy,
From: Dan Carpenter <hidden> Date: 2018-03-21 07:40:26
This would have been easier for me if it were split up slightly
different again.
This patch is fine. I have a couple comments for future patches which
you are free to ignore if you want because it's mostly just my personal
taste.
On Tue, Mar 20, 2018 at 10:25:39PM +0530, Ajay Singh wrote:
+ if (subtype != P2P_INV_REQ && subtype != P2P_INV_RSP) {
+ int vendor_spec_len = sizeof(p2p_vendor_spec);
I'm not a huge fan of making shorter names for sizeof()s just to get
around the 80 character rule. The 80 character rule is ultimately
supposed to make the code more readable, and this is making less
readable so it's maybe better to just ignore the rule.
@@ -1580,92 +1632,75 @@ static int mgmt_tx(struct wiphy *wiphy, priv->tx_cookie = *cookie; mgmt = (const struct ieee80211_mgmt *)buf;- if (ieee80211_is_mgmt(mgmt->frame_control)) {- mgmt_tx = kmalloc(sizeof(struct p2p_mgmt_data), GFP_KERNEL);- if (!mgmt_tx)- return -EFAULT;+ if (!ieee80211_is_mgmt(mgmt->frame_control))+ goto out;
I hate this "goto out;". My first question when I see it is "what does
goto out; do?" It's a kind of vague label name. So I have to scroll
down to the bottom of the function. And then I'm like "Oh, it doesn't
do anything. Well that was a waste of time." And then it occurs to me,
"Huh, what is 'ret' set to?" So now I have to scroll all the way to the
very start of the function... All this scrolling could be avoided if we
just did a direct "return 0;"
regards,
dan carpenter
Refactor mgmt_tx() to fix line over 80 characters issue. Split the
function to avoid the checkpatch.pl warning. Returning the same error
code in case of memory allocation failure.
Signed-off-by: Ajay Singh <ajay.kathat@microchip.com>
---
drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 187 +++++++++++++---------
1 file changed, 111 insertions(+), 76 deletions(-)
Looking at wilc_wfi_cfg_tx_vendor_spec() and
wilc_wfi_cfg_parse_rx_vendor_spec() from patch 4 from this series I can see
that conditions in these two are mostly the same but you refactor them
differently. I think the approach in wilc_wfi_cfg_parse_rx_vendor_spec()
from patch 4 is better and can help you avoid usage of bool variables like
found and oper_ch.
For instance, you can have:
static void wilc_wfi_cfg_tx_vendor_spec(struct p2p_mgmt_data *mgmt_tx,
struct cfg80211_mgmt_tx_params *params,
u8 iftype, u32 buf_len)
{
const u8 *buf = params->buf;
size_t len = params->len;
u32 i;
u8 subtype = buf[P2P_PUB_ACTION_SUBTYPE];
if ((subtype == GO_NEG_REQ || subtype == GO_NEG_RSP) &&
p2p_local_random == 1 && p2p_recv_random < p2p_local_random) {
get_random_bytes(&p2p_local_random, 1);
p2p_local_random++;
}
if (p2p_local_random <= p2p_recv_random)
return;
if (subtype == GO_NEG_REQ || subtype == GO_NEG_RSP ||
subtype == P2P_INV_REQ || subtype == P2P_INV_RSP) {
for (i = P2P_PUB_ACTION_SUBTYPE + 2; i < len; i++) {
if (buf[i] != P2PELEM_ATTR_ID ||
memcmp(p2p_oui, &buf[i + 2], 4))
continue;
wilc_wfi_cfg_parse_tx_action(&mgmt_tx->buff[i + 6],
len - (i + 6),
(subtype == P2P_INV_REQ ||
subtype == P2P_INV_RSP),
iftype);
break;
}
if (subtype != P2P_INV_REQ && subtype != P2P_INV_RSP) {
int vendor_spec_len = sizeof(p2p_vendor_spec);
memcpy(&mgmt_tx->buff[len], p2p_vendor_spec,
vendor_spec_len);
mgmt_tx->buff[len + vendor_spec_len] = p2p_local_random;
mgmt_tx->size = buf_len;
}
}
}
which is mostly in the same format as wilc_wfi_cfg_parse_rx_vendor_spec(), from
the point of view of if () sequences:
if ((subtype == GO_NEG_REQ || subtype == GO_NEG_RSP) && something) {
// ...
}
if (p2p_local_random <= p2p_recv_random)
return;
if (subtype == GO_NEG_REQ || subtype == GO_NEG_RSP ||
subtype == P2P_INV_REQ || subtype == P2P_INV_RSP) {
// ...
}
"i" is the wrong parameter to pass. The name is not useful. Probably
the right parameter is either &last_scanned_shadow[i] or
last_scanned_shadow[i].time_scan_cached.
+{
+ unsigned long now = jiffies;
+
+ if (time_after(now, last_scanned_shadow[i].time_scan_cached +
+ (unsigned long)(nl80211_SCAN_RESULT_EXPIRE - (1 * HZ))))
+ return true;
+ else
+ return false;
Also I think it you apply this patch and then run checkpatch.pl --strict
against the file it will complain that it should be:
if (time_after(now, last_scanned_shadow[i].time_scan_cached +
(unsigned long)(nl80211_SCAN_RESULT_EXPIRE - (1 * HZ))))
return true;
return false;
quoted hunk
+}
+
int wilc_connecting;
static void cfg_connect_result(enum conn_event conn_disconn_evt,
It basically always helps me if the "new function" changes are in a
patch by themselves. These lines are a pure white space changes and I
have a script that reviews those for me instantly, but when it's mixed
with this patch I have to do it by hand.
regards,
dan carpenter
From: Dan Carpenter <hidden> Date: 2018-03-21 07:51:41
These look good. I've reviewed them all.
Reviewed-by: Dan Carpenter <redacted>
I had some small process complaints but it doesn't make life easier for
me if you resend them and I have to review everything twice.... :P
regards,
dan carpenter
Hi Dan,
On Wed, 21 Mar 2018 10:51:16 +0300
Dan Carpenter [off-list ref] wrote:
These look good. I've reviewed them all.
Reviewed-by: Dan Carpenter <redacted>
Thanks for reviewing all the patches.
I had some small process complaints but it doesn't make life easier for
me if you resend them and I have to review everything twice.... :P
In future patches, I will take care as per your suggestions. Instead of
resubmitting this patch series, I will include the additional changes
required for [PATCH 01/11] in separate patch series.
Regards,
Ajay
Patch 6 may be reworked a bit. Other than this:
Reviewed-by: Claudiu Beznea <redacted>
On 21.03.2018 11:20, Ajay Singh wrote:
Hi Dan,
On Wed, 21 Mar 2018 10:51:16 +0300
Dan Carpenter [off-list ref] wrote:
quoted
These look good. I've reviewed them all.
Reviewed-by: Dan Carpenter <redacted>
Thanks for reviewing all the patches.
quoted
I had some small process complaints but it doesn't make life easier for
me if you resend them and I have to review everything twice.... :P
In future patches, I will take care as per your suggestions. Instead of
resubmitting this patch series, I will include the additional changes
required for [PATCH 01/11] in separate patch series.
Regards,
Ajay
Please let me know, in case I have to rework and resubmit this patch
series to make them into staging branch.
As I suggested in patch 6, I prefer having the same format for
wilc_wfi_cfg_tx_vendor_spec() and wilc_wfi_cfg_parse_rx_vendor_spec(). I
think this could be achieved. To merge them I don't think would be feasible.
This series could go as is but I would like to see another future patch to
treat the format of wilc_wfi_cfg_tx_vendor_spec().
Thank you,
Claudiu
Hi Claudiu,
On Tue, 27 Mar 2018 11:55:52 +0300
Claudiu Beznea [off-list ref] wrote:
On 27.03.2018 10:22, Ajay Singh wrote:
quoted
Please let me know, in case I have to rework and resubmit this patch
series to make them into staging branch.
As I suggested in patch 6, I prefer having the same format for
wilc_wfi_cfg_tx_vendor_spec() and wilc_wfi_cfg_parse_rx_vendor_spec(). I
think this could be achieved. To merge them I don't think would be feasible.
This series could go as is but I would like to see another future patch to
treat the format of wilc_wfi_cfg_tx_vendor_spec().
Sure, I had noted the review comments received for patch#6 & patch#1. I
will include the code modification in another future patches to handle it.
Regards,
Ajay
Hi Greg,
On Wed, 28 Mar 2018 13:31:01 +0200
Greg KH [off-list ref] wrote:
On Tue, Mar 27, 2018 at 12:52:13PM +0530, Ajay Singh wrote:
quoted
Please let me know, in case I have to rework and resubmit this
patch series to make them into staging branch.
You already sent a v2 series for this, right? Why respond to the v1
set?
Sorry for late reply.
V2 series was not sent for this patchset. No code updates were
submitted for this patch series. It's an independent patch series
with 11 patches and had changes different from other patch series.
Just for information, the v2 patch series was submitted for different
patch series which had 9 patches.
Please let me know if any other information/action is required from
my side to include this patch series to staging.
Regards,
Ajay
On Wed, Apr 04, 2018 at 10:45:25AM +0530, Ajay Singh wrote:
Hi Greg,
On Wed, 28 Mar 2018 13:31:01 +0200
Greg KH [off-list ref] wrote:
quoted
On Tue, Mar 27, 2018 at 12:52:13PM +0530, Ajay Singh wrote:
quoted
Please let me know, in case I have to rework and resubmit this
patch series to make them into staging branch.
You already sent a v2 series for this, right? Why respond to the v1
set?
Sorry for late reply.
V2 series was not sent for this patchset. No code updates were
submitted for this patch series. It's an independent patch series
with 11 patches and had changes different from other patch series.
Just for information, the v2 patch series was submitted for different
patch series which had 9 patches.
Please let me know if any other information/action is required from
my side to include this patch series to staging.
THis patch series is long gone from my queue. Please resend it if I
have not applied it.
greg k-h