From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mx0a-001b2d01.pphosted.com (mx0a-001b2d01.pphosted.com [148.163.156.1]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by lists.ozlabs.org (Postfix) with ESMTPS id 3rYst84lZMzDq5c for ; Wed, 22 Jun 2016 02:01:52 +1000 (AEST) Received: from pps.filterd (m0098404.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.16.0.11/8.16.0.11) with SMTP id u5LFxirX146404 for ; Tue, 21 Jun 2016 12:01:50 -0400 Received: from e33.co.us.ibm.com (e33.co.us.ibm.com [32.97.110.151]) by mx0a-001b2d01.pphosted.com with ESMTP id 23n2crkuuj-1 (version=TLSv1.2 cipher=AES256-SHA bits=256 verify=NOT) for ; Tue, 21 Jun 2016 12:01:50 -0400 Received: from localhost by e33.co.us.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Tue, 21 Jun 2016 10:01:49 -0600 Subject: Re: [PATCH] ibmvnic: fix to use list_for_each_safe() when delete items To: weiyj_lk@163.com References: <1466218408-20940-1-git-send-email-weiyj_lk@163.com> <576810C2.6080208@linux.vnet.ibm.com> Cc: John Allen , netdev@vger.kernel.org, Wei Yongjun , linuxppc-dev@lists.ozlabs.org From: Thomas Falcon Date: Tue, 21 Jun 2016 11:01:19 -0500 MIME-Version: 1.0 In-Reply-To: <576810C2.6080208@linux.vnet.ibm.com> Content-Type: text/plain; charset=utf-8 Message-Id: <576964CF.3040804@linux.vnet.ibm.com> List-Id: Linux on PowerPC Developers Mail List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , On 06/20/2016 10:50 AM, Thomas Falcon wrote: > On 06/17/2016 09:53 PM, weiyj_lk@163.com wrote: >> From: Wei Yongjun >> >> Since we will remove items off the list using list_del() we need >> to use a safe version of the list_for_each() macro aptly named >> list_for_each_safe(). >> >> Signed-off-by: Wei Yongjun >> --- >> drivers/net/ethernet/ibm/ibmvnic.c | 10 +++++----- >> 1 file changed, 5 insertions(+), 5 deletions(-) >> >> diff --git a/drivers/net/ethernet/ibm/ibmvnic.c b/drivers/net/ethernet/ibm/ibmvnic.c >> index 864cb21..0b6a922 100644 >> --- a/drivers/net/ethernet/ibm/ibmvnic.c >> +++ b/drivers/net/ethernet/ibm/ibmvnic.c >> @@ -3141,14 +3141,14 @@ static void handle_request_ras_comp_num_rsp(union ibmvnic_crq *crq, >> >> static void ibmvnic_free_inflight(struct ibmvnic_adapter *adapter) >> { >> - struct ibmvnic_inflight_cmd *inflight_cmd; >> + struct ibmvnic_inflight_cmd *inflight_cmd, *tmp1; >> struct device *dev = &adapter->vdev->dev; >> - struct ibmvnic_error_buff *error_buff; >> + struct ibmvnic_error_buff *error_buff, *tmp2; >> unsigned long flags; >> unsigned long flags2; >> >> spin_lock_irqsave(&adapter->inflight_lock, flags); >> - list_for_each_entry(inflight_cmd, &adapter->inflight, list) { >> + list_for_each_entry_safe(inflight_cmd, tmp1, &adapter->inflight, list) { >> switch (inflight_cmd->crq.generic.cmd) { >> case LOGIN: >> dma_unmap_single(dev, adapter->login_buf_token, >> @@ -3165,8 +3165,8 @@ static void ibmvnic_free_inflight(struct ibmvnic_adapter *adapter) >> break; >> case REQUEST_ERROR_INFO: >> spin_lock_irqsave(&adapter->error_list_lock, flags2); >> - list_for_each_entry(error_buff, &adapter->errors, >> - list) { >> + list_for_each_entry_safe(error_buff, tmp2, >> + &adapter->errors, list) { >> dma_unmap_single(dev, error_buff->dma, >> error_buff->len, >> DMA_FROM_DEVICE); >> > Thanks! > > Acked-by: Thomas Falcon Hello, I apologize for prematurely ack'ing this. There is another situation where you could use list_for_each_entry_safe in the function handle_error_info_rsp. Could you include this in your patch, please? diff --git a/drivers/net/ethernet/ibm/ibmvnic.c b/drivers/net/ethernet/ibm/ibmvnic.c index 864cb21..e9968d9 100644 --- a/drivers/net/ethernet/ibm/ibmvnic.c +++ b/drivers/net/ethernet/ibm/ibmvnic.c @@ -2121,7 +2121,7 @@ static void handle_error_info_rsp(union ibmvnic_crq *crq, struct ibmvnic_adapter *adapter) { struct device *dev = &adapter->vdev->dev; - struct ibmvnic_error_buff *error_buff; + struct ibmvnic_error_buff *error_buff, *tmp; unsigned long flags; bool found = false; int i; @@ -2133,7 +2133,7 @@ static void handle_error_info_rsp(union ibmvnic_crq *crq, } spin_lock_irqsave(&adapter->error_list_lock, flags); - list_for_each_entry(error_buff, &adapter->errors, list) + list_for_each_entry_safe(error_buff, tmp, &adapter->errors, list) if (error_buff->error_id == crq->request_error_rsp.error_id) { found = true; list_del(&error_buff->list); >> >> >> _______________________________________________ >> Linuxppc-dev mailing list >> Linuxppc-dev@lists.ozlabs.org >> https://lists.ozlabs.org/listinfo/linuxppc-dev From mboxrd@z Thu Jan 1 00:00:00 1970 From: Thomas Falcon Subject: Re: [PATCH] ibmvnic: fix to use list_for_each_safe() when delete items Date: Tue, 21 Jun 2016 11:01:19 -0500 Message-ID: <576964CF.3040804@linux.vnet.ibm.com> References: <1466218408-20940-1-git-send-email-weiyj_lk@163.com> <576810C2.6080208@linux.vnet.ibm.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Cc: John Allen , Wei Yongjun , linuxppc-dev@lists.ozlabs.org, netdev@vger.kernel.org To: weiyj_lk@163.com Return-path: In-Reply-To: <576810C2.6080208@linux.vnet.ibm.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: linuxppc-dev-bounces+glppe-linuxppc-embedded-2=m.gmane.org@lists.ozlabs.org Sender: "Linuxppc-dev" List-Id: netdev.vger.kernel.org T24gMDYvMjAvMjAxNiAxMDo1MCBBTSwgVGhvbWFzIEZhbGNvbiB3cm90ZToKPiBPbiAwNi8xNy8y MDE2IDA5OjUzIFBNLCB3ZWl5al9sa0AxNjMuY29tIHdyb3RlOgo+PiBGcm9tOiBXZWkgWW9uZ2p1 biA8eW9uZ2p1bl93ZWlAdHJlbmRtaWNyby5jb20uY24+Cj4+Cj4+IFNpbmNlIHdlIHdpbGwgcmVt b3ZlIGl0ZW1zIG9mZiB0aGUgbGlzdCB1c2luZyBsaXN0X2RlbCgpIHdlIG5lZWQKPj4gdG8gdXNl IGEgc2FmZSB2ZXJzaW9uIG9mIHRoZSBsaXN0X2Zvcl9lYWNoKCkgbWFjcm8gYXB0bHkgbmFtZWQK Pj4gbGlzdF9mb3JfZWFjaF9zYWZlKCkuCj4+Cj4+IFNpZ25lZC1vZmYtYnk6IFdlaSBZb25nanVu IDx5b25nanVuX3dlaUB0cmVuZG1pY3JvLmNvbS5jbj4KPj4gLS0tCj4+ICBkcml2ZXJzL25ldC9l dGhlcm5ldC9pYm0vaWJtdm5pYy5jIHwgMTAgKysrKystLS0tLQo+PiAgMSBmaWxlIGNoYW5nZWQs IDUgaW5zZXJ0aW9ucygrKSwgNSBkZWxldGlvbnMoLSkKPj4KPj4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvbmV0L2V0aGVybmV0L2libS9pYm12bmljLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9pYm0v aWJtdm5pYy5jCj4+IGluZGV4IDg2NGNiMjEuLjBiNmE5MjIgMTAwNjQ0Cj4+IC0tLSBhL2RyaXZl cnMvbmV0L2V0aGVybmV0L2libS9pYm12bmljLmMKPj4gKysrIGIvZHJpdmVycy9uZXQvZXRoZXJu ZXQvaWJtL2libXZuaWMuYwo+PiBAQCAtMzE0MSwxNCArMzE0MSwxNCBAQCBzdGF0aWMgdm9pZCBo YW5kbGVfcmVxdWVzdF9yYXNfY29tcF9udW1fcnNwKHVuaW9uIGlibXZuaWNfY3JxICpjcnEsCj4+ ICAKPj4gIHN0YXRpYyB2b2lkIGlibXZuaWNfZnJlZV9pbmZsaWdodChzdHJ1Y3QgaWJtdm5pY19h ZGFwdGVyICphZGFwdGVyKQo+PiAgewo+PiAtCXN0cnVjdCBpYm12bmljX2luZmxpZ2h0X2NtZCAq aW5mbGlnaHRfY21kOwo+PiArCXN0cnVjdCBpYm12bmljX2luZmxpZ2h0X2NtZCAqaW5mbGlnaHRf Y21kLCAqdG1wMTsKPj4gIAlzdHJ1Y3QgZGV2aWNlICpkZXYgPSAmYWRhcHRlci0+dmRldi0+ZGV2 Owo+PiAtCXN0cnVjdCBpYm12bmljX2Vycm9yX2J1ZmYgKmVycm9yX2J1ZmY7Cj4+ICsJc3RydWN0 IGlibXZuaWNfZXJyb3JfYnVmZiAqZXJyb3JfYnVmZiwgKnRtcDI7Cj4+ICAJdW5zaWduZWQgbG9u ZyBmbGFnczsKPj4gIAl1bnNpZ25lZCBsb25nIGZsYWdzMjsKPj4gIAo+PiAgCXNwaW5fbG9ja19p cnFzYXZlKCZhZGFwdGVyLT5pbmZsaWdodF9sb2NrLCBmbGFncyk7Cj4+IC0JbGlzdF9mb3JfZWFj aF9lbnRyeShpbmZsaWdodF9jbWQsICZhZGFwdGVyLT5pbmZsaWdodCwgbGlzdCkgewo+PiArCWxp c3RfZm9yX2VhY2hfZW50cnlfc2FmZShpbmZsaWdodF9jbWQsIHRtcDEsICZhZGFwdGVyLT5pbmZs aWdodCwgbGlzdCkgewo+PiAgCQlzd2l0Y2ggKGluZmxpZ2h0X2NtZC0+Y3JxLmdlbmVyaWMuY21k KSB7Cj4+ICAJCWNhc2UgTE9HSU46Cj4+ICAJCQlkbWFfdW5tYXBfc2luZ2xlKGRldiwgYWRhcHRl ci0+bG9naW5fYnVmX3Rva2VuLAo+PiBAQCAtMzE2NSw4ICszMTY1LDggQEAgc3RhdGljIHZvaWQg aWJtdm5pY19mcmVlX2luZmxpZ2h0KHN0cnVjdCBpYm12bmljX2FkYXB0ZXIgKmFkYXB0ZXIpCj4+ ICAJCQlicmVhazsKPj4gIAkJY2FzZSBSRVFVRVNUX0VSUk9SX0lORk86Cj4+ICAJCQlzcGluX2xv Y2tfaXJxc2F2ZSgmYWRhcHRlci0+ZXJyb3JfbGlzdF9sb2NrLCBmbGFnczIpOwo+PiAtCQkJbGlz dF9mb3JfZWFjaF9lbnRyeShlcnJvcl9idWZmLCAmYWRhcHRlci0+ZXJyb3JzLAo+PiAtCQkJCQkg ICAgbGlzdCkgewo+PiArCQkJbGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZlKGVycm9yX2J1ZmYsIHRt cDIsCj4+ICsJCQkJCQkgJmFkYXB0ZXItPmVycm9ycywgbGlzdCkgewo+PiAgCQkJCWRtYV91bm1h cF9zaW5nbGUoZGV2LCBlcnJvcl9idWZmLT5kbWEsCj4+ICAJCQkJCQkgZXJyb3JfYnVmZi0+bGVu LAo+PiAgCQkJCQkJIERNQV9GUk9NX0RFVklDRSk7Cj4+Cj4gVGhhbmtzIQo+Cj4gQWNrZWQtYnk6 IFRob21hcyBGYWxjb24gPHRsZmFsY29uQGxpbnV4LnZuZXQuaWJtLmNvbT4KCkhlbGxvLCBJIGFw b2xvZ2l6ZSBmb3IgcHJlbWF0dXJlbHkgYWNrJ2luZyB0aGlzLiAgVGhlcmUgaXMgYW5vdGhlciBz aXR1YXRpb24gd2hlcmUgeW91IGNvdWxkIHVzZSBsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUgaW4g dGhlIGZ1bmN0aW9uIGhhbmRsZV9lcnJvcl9pbmZvX3JzcC4gIENvdWxkIHlvdSBpbmNsdWRlIHRo aXMgaW4geW91ciBwYXRjaCwgcGxlYXNlPwoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVy bmV0L2libS9pYm12bmljLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9pYm0vaWJtdm5pYy5jCmlu ZGV4IDg2NGNiMjEuLmU5OTY4ZDkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2li bS9pYm12bmljLmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvaWJtL2libXZuaWMuYwpAQCAt MjEyMSw3ICsyMTIxLDcgQEAgc3RhdGljIHZvaWQgaGFuZGxlX2Vycm9yX2luZm9fcnNwKHVuaW9u IGlibXZuaWNfY3JxICpjcnEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1 Y3QgaWJtdm5pY19hZGFwdGVyICphZGFwdGVyKQogewogICAgICAgIHN0cnVjdCBkZXZpY2UgKmRl diA9ICZhZGFwdGVyLT52ZGV2LT5kZXY7Ci0gICAgICAgc3RydWN0IGlibXZuaWNfZXJyb3JfYnVm ZiAqZXJyb3JfYnVmZjsKKyAgICAgICBzdHJ1Y3QgaWJtdm5pY19lcnJvcl9idWZmICplcnJvcl9i dWZmLCAqdG1wOwogICAgICAgIHVuc2lnbmVkIGxvbmcgZmxhZ3M7CiAgICAgICAgYm9vbCBmb3Vu ZCA9IGZhbHNlOwogICAgICAgIGludCBpOwpAQCAtMjEzMyw3ICsyMTMzLDcgQEAgc3RhdGljIHZv aWQgaGFuZGxlX2Vycm9yX2luZm9fcnNwKHVuaW9uIGlibXZuaWNfY3JxICpjcnEsCiAgICAgICAg fQogCiAgICAgICAgc3Bpbl9sb2NrX2lycXNhdmUoJmFkYXB0ZXItPmVycm9yX2xpc3RfbG9jaywg ZmxhZ3MpOwotICAgICAgIGxpc3RfZm9yX2VhY2hfZW50cnkoZXJyb3JfYnVmZiwgJmFkYXB0ZXIt PmVycm9ycywgbGlzdCkKKyAgICAgICBsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUoZXJyb3JfYnVm ZiwgdG1wLCAmYWRhcHRlci0+ZXJyb3JzLCBsaXN0KQogICAgICAgICAgICAgICAgaWYgKGVycm9y X2J1ZmYtPmVycm9yX2lkID09IGNycS0+cmVxdWVzdF9lcnJvcl9yc3AuZXJyb3JfaWQpIHsKICAg ICAgICAgICAgICAgICAgICAgICAgZm91bmQgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAg ICBsaXN0X2RlbCgmZXJyb3JfYnVmZi0+bGlzdCk7Cgo+Pgo+Pgo+PiBfX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+PiBMaW51eHBwYy1kZXYgbWFpbGluZyBs aXN0Cj4+IExpbnV4cHBjLWRldkBsaXN0cy5vemxhYnMub3JnCj4+IGh0dHBzOi8vbGlzdHMub3ps YWJzLm9yZy9saXN0aW5mby9saW51eHBwYy1kZXYKCl9fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fCkxpbnV4cHBjLWRldiBtYWlsaW5nIGxpc3QKTGludXhwcGMt ZGV2QGxpc3RzLm96bGFicy5vcmcKaHR0cHM6Ly9saXN0cy5vemxhYnMub3JnL2xpc3RpbmZvL2xp bnV4cHBjLWRldg==