From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-pz0-f46.google.com ([209.85.210.46]:54143 "EHLO mail-pz0-f46.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753483Ab2ICSUq (ORCPT ); Mon, 3 Sep 2012 14:20:46 -0400 Received: by dady13 with SMTP id y13so3839362dad.19 for ; Mon, 03 Sep 2012 11:20:45 -0700 (PDT) MIME-Version: 1.0 In-Reply-To: <20120903090821.GC2438@ram-ThinkPad-T61> References: <20120821151245.GA2356@ram-ThinkPad-T61> <20120822101533.GA2332@ram-ThinkPad-T61> <20120823050958.GB2332@ram-ThinkPad-T61> <20120827073335.GE20843@ram-ThinkPad-T61> <20120903090821.GC2438@ram-ThinkPad-T61> Date: Mon, 3 Sep 2012 11:20:45 -0700 Message-ID: Subject: Re: [RFC PATCH v3 ]pci: pci resource iterator From: Yinghai Lu To: Ram Pai Cc: Bjorn Helgaas , linux-pci@vger.kernel.org Content-Type: multipart/mixed; boundary=e89a8ff1c8b043f26d04c8d03370 Sender: linux-pci-owner@vger.kernel.org List-ID: --e89a8ff1c8b043f26d04c8d03370 Content-Type: text/plain; charset=ISO-8859-1 On Mon, Sep 3, 2012 at 2:08 AM, Ram Pai wrote: > On Mon, Sep 03, 2012 at 01:07:46AM -0700, Yinghai Lu wrote: > > Anyway I am ok with either patch. please check -v7. final next_idx finding will be like: static inline unsigned long *get_res_idx_mask(int flag) { return res_idx_mask[flag & ((1 << PCI_RES_BLOCK_NUM) - 1)]; } int pci_next_resource_idx(int i, int flag) { i++; if (i < PCI_NUM_RESOURCES) i = find_next_bit(get_res_idx_mask(flag), PCI_NUM_RESOURCES, i); if (i < PCI_NUM_RESOURCES) return i; return -1; } Thanks Yinghai --e89a8ff1c8b043f26d04c8d03370 Content-Type: application/octet-stream; name="ram_pci_it_v7.patch" Content-Disposition: attachment; filename="ram_pci_it_v7.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_h6nw8k0a0 RnJvbTogUmFtIFBhaSA8bGludXhyYW1AdXMuaWJtLmNvbT4KVG86IGxpbnV4LXBjaUB2Z2VyLmtl cm5lbC5vcmcKU3ViamVjdDogW1BBVENIIHY3XXBjaTogcGNpIHJlc291cmNlIGl0ZXJhdG9yCgpD dXJyZW50bHkgcGNpX2RldiBzdHJ1Y3R1cmUgaG9sZHMgYW4gYXJyYXkgb2YgMTcgUENJIHJlc291 cmNlczsgc2l4IGJhc2UKQkFScywgb25lIFJPTSBCQVIsIGZvdXIgQlJJREdFIEJBUnMsIHNpeCBz cmlvdiBCQVJzLiAgVGhpcyBpcyB3YXN0ZWZ1bC4KQSBicmlkZ2UgZGV2aWNlIGp1c3QgbmVlZHMg dGhlIDQgYnJpZGdlIHJlc291cmNlcy4gQSBub24tYnJpZGdlIGRldmljZQpqdXN0IG5lZWRzIHRo ZSBzaXggYmFzZSByZXNvdXJjZXMgYW5kIG9uZSBST00gcmVzb3VyY2UuIFRoZSBzcmlvdgpyZXNv dXJjZXMgYXJlIG5lZWRlZCBvbmx5IGlmIHRoZSBkZXZpY2UgaGFzIFNSSU9WIGNhcGFiaWxpdHku CgpUaGUgcGNpX2RldiBzdHJ1Y3R1cmUgbmVlZHMgdG8gYmUgcmUtb3JnYW5pemVkIHRvIGF2b2lk IHVubmVjZXNzYXJ5CmJsb2F0aW5nLiAgSG93ZXZlciB0b28gbXVjaCBjb2RlIG91dHNpZGUgdGhl IHBjaS1idXMgZHJpdmVyLCBhc3N1bWVzIHRoZQppbnRlcm5hbCBkZXRhaWxzIG9mIHRoZSBwY2lf ZGV2IHN0cnVjdHVyZSwgdGh1cyBtYWtpbmcgaXQgaGFyZCB0bwpyZS1vcmdhbml6ZSB0aGUgZGF0 YXN0cnVjdHVyZS4KCkFzIGEgZmlyc3Qgc3RlcCB0aGlzIHBhdGNoIHByb3ZpZGVzIGdlbmVyaWMg bWV0aG9kcyB0byBhY2Nlc3MgdGhlCnJlc291cmNlIHN0cnVjdHVyZSBvZiB0aGUgcGNpX2Rldi4K CkZpbmFsbHkgd2UgY2FuIHJlLW9yZ2FuaXplIHRoZSByZXNvdXJjZSBzdHJ1Y3R1cmUgaW4gdGhl IHBjaV9kZXYKc3RydWN0dXJlIGFuZCBjb3JyZXNwb25kaW5nbHkgdXBkYXRlIHRoZSBtZXRob2Rz LgoKLXYyOiBDb25zb2xpZGF0ZWQgaXRlcmF0b3IgaW50ZXJmYWNlIGFzIHBlciBCam9ybidzIHN1 Z2dlc3Rpb24uCi12MzogQWRkIHRoZSBpZHggYmFjayAtIFlpbmdoYWkgTHUKLXY3OiBDaGFuZ2Ug dG8gdXNlIGJpdG1hcCBmb3Igc2VhcmNoaW5nIC0gWWluZ2hhaSBMdQoKU2lnbmVkLW9mZi1ieTog UmFtIFBhaSA8bGludXhyYW1AdXMuaWJtLmNvbT4KU2lnbmVkLW9mZi1ieTogWWluZ2hhaSBMdSA8 eWluZ2hhaUBrZXJuZWwub3JnPgoKLS0tCiBkcml2ZXJzL3BjaS9wcm9iZS5jIHwgICA0NyArKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogaW5jbHVkZS9saW51 eC9wY2kuaCB8ICAgMjQgKysrKysrKysrKysrKysrKysrKysrKysrCiAyIGZpbGVzIGNoYW5nZWQs IDcxIGluc2VydGlvbnMoKykKCkluZGV4OiBsaW51eC0yLjYvaW5jbHVkZS9saW51eC9wY2kuaAo9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09Ci0tLSBsaW51eC0yLjYub3JpZy9pbmNsdWRlL2xpbnV4L3BjaS5oCisrKyBsaW51 eC0yLjYvaW5jbHVkZS9saW51eC9wY2kuaApAQCAtMzYwLDYgKzM2MCwzMCBAQCBzdHJ1Y3QgcGNp X2RldiB7CiBzdHJ1Y3QgcmVzb3VyY2UgKnBjaV9kZXZfcmVzb3VyY2VfbihzdHJ1Y3QgcGNpX2Rl diAqZGV2LCBpbnQgbik7CiBpbnQgcGNpX2Rldl9yZXNvdXJjZV9pZHgoc3RydWN0IHBjaV9kZXYg KmRldiwgc3RydWN0IHJlc291cmNlICpyZXMpOwogCisjZGVmaW5lIFBDSV9TVERfUkVTCQkoMTw8 MCkKKyNkZWZpbmUgUENJX1JPTV9SRVMJCSgxPDwxKQorI2RlZmluZSBQQ0lfSU9WX1JFUwkJKDE8 PDIpCisjZGVmaW5lIFBDSV9CUklER0VfUkVTCQkoMTw8MykKKyNkZWZpbmUgUENJX1JFU19CTE9D S19OVU0JNAorCisjZGVmaW5lIFBDSV9BTExfUkVTCQkoUENJX1NURF9SRVMgfCBQQ0lfUk9NX1JF UyB8IFBDSV9CUklER0VfUkVTIHwgUENJX0lPVl9SRVMpCisjZGVmaW5lIFBDSV9OT1NURF9SRVMJ CShQQ0lfQUxMX1JFUyAmIH5QQ0lfU1REX1JFUykKKyNkZWZpbmUgUENJX05PSU9WX1JFUwkJKFBD SV9BTExfUkVTICYgflBDSV9JT1ZfUkVTKQorI2RlZmluZSBQQ0lfTk9ST01fUkVTCQkoUENJX0FM TF9SRVMgJiB+UENJX1JPTV9SRVMpCisjZGVmaW5lIFBDSV9OT0JSSURHRV9SRVMJKFBDSV9BTExf UkVTICYgflBDSV9CUklER0VfUkVTKQorI2RlZmluZSBQQ0lfU1REX1JPTV9SRVMJCShQQ0lfU1RE X1JFUyB8IFBDSV9ST01fUkVTKQorI2RlZmluZSBQQ0lfU1REX0lPVl9SRVMJCShQQ0lfU1REX1JF UyB8IFBDSV9JT1ZfUkVTKQorI2RlZmluZSBQQ0lfU1REX1JPTV9JT1ZfUkVTCShQQ0lfU1REX1JF UyB8IFBDSV9ST01fUkVTIHwgUENJX0lPVl9SRVMpCisKK2ludCBwY2lfbmV4dF9yZXNvdXJjZV9p ZHgoaW50IGksIGludCBmbGFnKTsKKworI2RlZmluZSBmb3JfZWFjaF9wY2lfcmVzb3VyY2UoZGV2 LCByZXMsIGksIGZsYWcpCVwKKwlmb3IgKGkgPSBwY2lfbmV4dF9yZXNvdXJjZV9pZHgoLTEsIGZs YWcpLAlcCisJCXJlcyA9IHBjaV9kZXZfcmVzb3VyY2VfbihkZXYsIGkpOwlcCisJICAgICByZXM7 CQkJCQlcCisJICAgICBpID0gcGNpX25leHRfcmVzb3VyY2VfaWR4KGksIGZsYWcpLAlcCisJCXJl cyA9IHBjaV9kZXZfcmVzb3VyY2VfbihkZXYsIGkpKQorCiBzdGF0aWMgaW5saW5lIHN0cnVjdCBw Y2lfZGV2ICpwY2lfcGh5c2ZuKHN0cnVjdCBwY2lfZGV2ICpkZXYpCiB7CiAjaWZkZWYgQ09ORklH X1BDSV9JT1YKSW5kZXg6IGxpbnV4LTIuNi9kcml2ZXJzL3BjaS9wcm9iZS5jCj09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K LS0tIGxpbnV4LTIuNi5vcmlnL2RyaXZlcnMvcGNpL3Byb2JlLmMKKysrIGxpbnV4LTIuNi9kcml2 ZXJzL3BjaS9wcm9iZS5jCkBAIC0xMjMsNiArMTIzLDUzIEBAIGludCBwY2lfZGV2X3Jlc291cmNl X2lkeChzdHJ1Y3QgcGNpX2RldgogCXJldHVybiAtMTsKIH0KIAorc3RhdGljIHZvaWQgX19pbml0 X3Jlc19pZHhfbWFzayh1bnNpZ25lZCBsb25nICptYXNrLCBpbnQgZmxhZykKK3sKKwliaXRtYXBf emVybyhtYXNrLCBQQ0lfTlVNX1JFU09VUkNFUyk7CisJaWYgKGZsYWcgJiBQQ0lfU1REX1JFUykK KwkJYml0bWFwX3NldChtYXNrLCBQQ0lfU1REX1JFU09VUkNFUywKKwkJCVBDSV9TVERfUkVTT1VS Q0VfRU5EIC0gUENJX1NURF9SRVNPVVJDRVMgKyAxKTsKKwlpZiAoZmxhZyAmIFBDSV9ST01fUkVT KQorCQliaXRtYXBfc2V0KG1hc2ssIFBDSV9ST01fUkVTT1VSQ0UsIDEpOworI2lmZGVmIENPTkZJ R19QQ0lfSU9WCisJaWYgKGZsYWcgJiBQQ0lfSU9WX1JFUykKKwkJYml0bWFwX3NldChtYXNrLCBQ Q0lfSU9WX1JFU09VUkNFUywKKwkJCVBDSV9JT1ZfUkVTT1VSQ0VfRU5EIC0gUENJX0lPVl9SRVNP VVJDRVMgKyAxKTsKKyNlbmRpZgorCWlmIChmbGFnICYgUENJX0JSSURHRV9SRVMpCisJCWJpdG1h cF9zZXQobWFzaywgUENJX0JSSURHRV9SRVNPVVJDRVMsCisJCQlQQ0lfQlJJREdFX1JFU09VUkNF X0VORCAtIFBDSV9CUklER0VfUkVTT1VSQ0VTICsgMSk7Cit9CisKK3N0YXRpYyBERUNMQVJFX0JJ VE1BUChyZXNfaWR4X21hc2tbMSA8PCBQQ0lfUkVTX0JMT0NLX05VTV0sIFBDSV9OVU1fUkVTT1VS Q0VTKTsKK3N0YXRpYyBpbnQgX19pbml0IHBjaV9yZXNfaWR4X21hc2tfaW5pdCh2b2lkKQorewor CWludCBpOworCisJZm9yIChpID0gMDsgaSA8ICgxIDw8IFBDSV9SRVNfQkxPQ0tfTlVNKTsgaSsr KQorCQlfX2luaXRfcmVzX2lkeF9tYXNrKHJlc19pZHhfbWFza1tpXSwgaSk7CisKKwlyZXR1cm4g MDsKK30KK3Bvc3Rjb3JlX2luaXRjYWxsKHBjaV9yZXNfaWR4X21hc2tfaW5pdCk7CisKK3N0YXRp YyBpbmxpbmUgdW5zaWduZWQgbG9uZyAqZ2V0X3Jlc19pZHhfbWFzayhpbnQgZmxhZykKK3sKKwly ZXR1cm4gcmVzX2lkeF9tYXNrW2ZsYWcgJiAoKDEgPDwgUENJX1JFU19CTE9DS19OVU0pIC0gMSld OworfQorCitpbnQgcGNpX25leHRfcmVzb3VyY2VfaWR4KGludCBpLCBpbnQgZmxhZykKK3sKKwlp Kys7CisJaWYgKGkgPCBQQ0lfTlVNX1JFU09VUkNFUykKKwkJaSA9IGZpbmRfbmV4dF9iaXQoZ2V0 X3Jlc19pZHhfbWFzayhmbGFnKSwgUENJX05VTV9SRVNPVVJDRVMsIGkpOworCisJaWYgKGkgPCBQ Q0lfTlVNX1JFU09VUkNFUykKKwkJcmV0dXJuIGk7CisKKwlyZXR1cm4gLTE7Cit9CisKIHN0YXRp YyB1NjQgcGNpX3NpemUodTY0IGJhc2UsIHU2NCBtYXhiYXNlLCB1NjQgbWFzaykKIHsKIAl1NjQg c2l6ZSA9IG1hc2sgJiBtYXhiYXNlOwkvKiBGaW5kIHRoZSBzaWduaWZpY2FudCBiaXRzICovCg== --e89a8ff1c8b043f26d04c8d03370--