This is a multi-part message in MIME format. --------------030108000207010108000408 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit The attached patch adds the missing compat syscalls to the ia32 syscall table on ia64. We copied a few AIO related syscalls into fs/compat.c. Other compat archs may want to use them and get rid of private implementations. -Arun --------------030108000207010108000408 Content-Type: text/plain; name="ive-syscalls-2.6.patch" Content-Transfer-Encoding: base64 Content-Disposition: inline; filename="ive-syscalls-2.6.patch" SW5kZXg6IGZzL2NvbXBhdC5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9ob21lL2Fkc2hh cm1hL2N2cy9saW51eC0yLjUvZnMvY29tcGF0LmMsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEu MTgKZGlmZiAtdSAtcjEuMTggY29tcGF0LmMKLS0tIGxpbnV4L2ZzL2NvbXBhdC5jCTI2IFNl cCAyMDAzIDE1OjQ0OjA3IC0wMDAwCTEuMTgKKysrIGxpbnV4L2ZzL2NvbXBhdC5jCTI3IE9j dCAyMDAzIDE5OjQ4OjE4IC0wMDAwCkBAIC01NTQsMyArNTU0LDEwNCBAQAogCXJldHVybiBj b21wYXRfc3lzX2ZjbnRsNjQoZmQsIGNtZCwgYXJnKTsKIH0KIAorZXh0ZXJuIGFzbWxpbmth Z2UgbG9uZyBzeXNfaW9fc2V0dXAodW5zaWduZWQgbnJfcmVxcywgYWlvX2NvbnRleHRfdCAq Y3R4KTsKKworYXNtbGlua2FnZSBsb25nIGNvbXBhdF9zeXNfaW9fc2V0dXAodW5zaWduZWQg bnJfcmVxcywgdTMyICpjdHgzMnApCit7CisgICAgICAgIGxvbmcgcmV0OworICAgICAgICBh aW9fY29udGV4dF90IGN0eDY0OworICAgICAgICBtbV9zZWdtZW50X3Qgb2xkZnMgPSBnZXRf ZnMoKTsKKyAgICAgICAgaWYgKGdldF91c2VyKCh1MzIpY3R4NjQsIGN0eDMycCkpCisgICAg ICAgICAgICAgICAgcmV0dXJuIC1FRkFVTFQ7CisgICAgICAgIHNldF9mcyhLRVJORUxfRFMp OworICAgICAgICByZXQgPSBzeXNfaW9fc2V0dXAobnJfcmVxcywgJmN0eDY0KTsKKyAgICAg ICAgc2V0X2ZzKG9sZGZzKTsKKyAgICAgICAgLyogdHJ1bmNhdGluZyBpcyBvayBiZWNhdXNl IGl0J3MgYSB1c2VyIGFkZHJlc3MgKi8KKyAgICAgICAgaWYgKCFyZXQpCisgICAgICAgICAg ICAgICAgcmV0ID0gcHV0X3VzZXIoKHUzMiljdHg2NCwgY3R4MzJwKTsKKyAgICAgICAgcmV0 dXJuIHJldDsKK30KKworZXh0ZXJuIGFzbWxpbmthZ2UgbG9uZyBzeXNfaW9fZ2V0ZXZlbnRz KGFpb19jb250ZXh0X3QgY3R4X2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgbG9uZyBtaW5fbnIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBsb25nIG5yLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgc3RydWN0IGlvX2V2ZW50ICpldmVudHMsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgdGltZXNwZWMgKnRpbWVvdXQpOwor Cithc21saW5rYWdlIGxvbmcgY29tcGF0X3N5c19pb19nZXRldmVudHMoYWlvX2NvbnRleHRf dCBjdHhfaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBs b25nIG1pbl9uciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVk IGxvbmcgbnIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgaW9f ZXZlbnQgKmV2ZW50cywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVj dCBjb21wYXRfdGltZXNwZWMgKnRpbWVvdXQpCit7CisgICAgICAgIGxvbmcgcmV0OworICAg ICAgICBtbV9zZWdtZW50X3Qgb2xkZnM7CisgICAgICAgIHN0cnVjdCB0aW1lc3BlYyB0Owor ICAgICAgICAvKiBIYXJkZW4gYWdhaW5zdCBib2d1cyBwdHJhY2UgKi8KKyAgICAgICAgaWYg KG5yID49IDB4ZmZmZmZmZmYgfHwKKyAgICAgICAgICAgICFhY2Nlc3Nfb2soVkVSSUZZX1dS SVRFLCBldmVudHMsIG5yICogc2l6ZW9mKHN0cnVjdCBpb19ldmVudCkpKQorICAgICAgICAg ICAgICAgIHJldHVybiAtRUZBVUxUOworICAgICAgICBpZiAodGltZW91dCAmJiBnZXRfY29t cGF0X3RpbWVzcGVjKCZ0LCB0aW1lb3V0KSkKKyAgICAgICAgICAgICAgICByZXR1cm4gLUVG QVVMVDsKKyAgICAgICAgb2xkZnMgPSBnZXRfZnMoKTsKKyAgICAgICAgc2V0X2ZzKEtFUk5F TF9EUyk7CisgICAgICAgIHJldCA9IHN5c19pb19nZXRldmVudHMoY3R4X2lkLG1pbl9ucixu cixldmVudHMsdGltZW91dCA/ICZ0IDogTlVMTCk7CisgICAgICAgIHNldF9mcyhvbGRmcyk7 CisgICAgICAgIGlmICghcmV0ICYmIHRpbWVvdXQgJiYgcHV0X2NvbXBhdF90aW1lc3BlYygm dCwgdGltZW91dCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIC1FRkFVTFQ7CisgICAgICAg IHJldHVybiByZXQ7Cit9CisKK2FzbWxpbmthZ2UgbG9uZyBjb21wYXRfc3lzX2lvX3N1Ym1p dChhaW9fY29udGV4dF90IGN0eF9pZCwgaW50IG5yLAorICAgICAgICAgICAgICAgICAgIGNv bXBhdF91cHRyX3QgKmlvY2JwcCkKK3sKKyAgICAgICAgc3RydWN0IGtpb2N0eCAqY3R4Owor ICAgICAgICBsb25nIHJldCA9IDA7CisgICAgICAgIGludCBpOworCisgICAgICAgIGlmICh1 bmxpa2VseShuciA8IDApKQorICAgICAgICAgICAgICAgIHJldHVybiAtRUlOVkFMOworCisg ICAgICAgIGlmICh1bmxpa2VseSghYWNjZXNzX29rKFZFUklGWV9SRUFELCBpb2NicHAsIChu cipzaXplb2YoKmlvY2JwcCkpKSkpCisgICAgICAgICAgICAgICAgcmV0dXJuIC1FRkFVTFQ7 CisKKyAgICAgICAgY3R4ID0gbG9va3VwX2lvY3R4KGN0eF9pZCk7CisgICAgICAgIGlmICh1 bmxpa2VseSghY3R4KSkgeworICAgICAgICAgICAgICAgIHByX2RlYnVnKCJFSU5WQUw6IGlv X3N1Ym1pdDogaW52YWxpZCBjb250ZXh0IGlkXG4iKTsKKyAgICAgICAgICAgICAgICByZXR1 cm4gLUVJTlZBTDsKKyAgICAgICAgfQorCisgICAgICAgIGZvciAoaT0wOyBpPG5yOyBpKysp IHsKKyAgICAgICAgICAgICAgICBjb21wYXRfdXB0cl90IHAzMjsKKyAgICAgICAgICAgICAg ICBzdHJ1Y3QgaW9jYiAqdXNlcl9pb2NiLCB0bXA7CisKKyAgICAgICAgICAgICAgICBpZiAo dW5saWtlbHkoX19nZXRfdXNlcihwMzIsIGlvY2JwcCArIGkpKSkgeworICAgICAgICAgICAg ICAgICAgICAgICAgcmV0ID0gLUVGQVVMVDsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJy ZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB1c2VyX2lvY2IgPSBj b21wYXRfcHRyKHAzMik7CisKKyAgICAgICAgICAgICAgICBpZiAodW5saWtlbHkoY29weV9m cm9tX3VzZXIoJnRtcCwgdXNlcl9pb2NiLCBzaXplb2YodG1wKSkpKSB7CisgICAgICAgICAg ICAgICAgICAgICAgICByZXQgPSAtRUZBVUxUOworICAgICAgICAgICAgICAgICAgICAgICAg YnJlYWs7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgcmV0ID0gaW9f c3VibWl0X29uZShjdHgsIHVzZXJfaW9jYiwgJnRtcCk7CisgICAgICAgICAgICAgICAgaWYg KHJldCkKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisKKyAg ICAgICAgcHV0X2lvY3R4KGN0eCk7CisgICAgICAgIHJldHVybiBpID8gaSA6IHJldDsKK30K KworZXh0ZXJuIGFzbWxpbmthZ2UgbG9uZyBzeXNfZmFkdmlzZTY0XzY0KGludCBmZCwgbG9m Zl90IG9mZnNldCwgbG9mZl90IGxlbiwgaW50IGFkdmljZSk7CisKK2FzbWxpbmthZ2UgbG9u ZyBjb21wYXRfc3lzX2ZhZHZpc2U2NF82NChpbnQgZmQsIF9fdTMyIG9mZnNldF9sb3csIF9f dTMyIG9mZnNldF9oaWdoLAorICAgICAgICAgICAgICAgICAgICAgICAgX191MzIgbGVuX2xv dywgX191MzIgbGVuX2hpZ2gsIGludCBhZHZpY2UpCit7CisgICAgICAgIHJldHVybiBzeXNf ZmFkdmlzZTY0XzY0KGZkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgoKHU2 NClvZmZzZXRfaGlnaCk8PDMyKSB8IG9mZnNldF9sb3csCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKCgodTY0KWxlbl9oaWdoKTw8MzIpIHwgbGVuX2xvdywKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBhZHZpY2UpOworfQpJbmRleDogaW5jbHVkZS9hc20t aWE2NC9zaWdpbmZvLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2hvbWUvYWRzaGFybWEv Y3ZzL2xpbnV4LTIuNS9pbmNsdWRlL2FzbS1pYTY0L3NpZ2luZm8uaCx2CnJldHJpZXZpbmcg cmV2aXNpb24gMS4xNQpkaWZmIC11IC1yMS4xNSBzaWdpbmZvLmgKLS0tIGxpbnV4L2luY2x1 ZGUvYXNtLWlhNjQvc2lnaW5mby5oCTIyIEF1ZyAyMDAzIDAwOjQwOjQxIC0wMDAwCTEuMTUK KysrIGxpbnV4L2luY2x1ZGUvYXNtLWlhNjQvc2lnaW5mby5oCTI3IE9jdCAyMDAzIDE5OjA4 OjQ4IC0wMDAwCkBAIC05LDcgKzksNyBAQAogI2RlZmluZSBTSV9QQURfU0laRQkoKFNJX01B WF9TSVpFL3NpemVvZihpbnQpKSAtIDQpCiAKICNkZWZpbmUgU0lHRVZfUEFEX1NJWkUJKChT SUdFVl9NQVhfU0laRS9zaXplb2YoaW50KSkgLSA0KQotCisjZGVmaW5lIFNJR0VWX1BBRF9T SVpFMzIgKChTSUdFVl9NQVhfU0laRS9zaXplb2YoaW50KSkgLSAzKQogI2RlZmluZSBIQVZF X0FSQ0hfU0lHSU5GT19UCiAjZGVmaW5lIEhBVkVfQVJDSF9DT1BZX1NJR0lORk8KICNkZWZp bmUgSEFWRV9BUkNIX0NPUFlfU0lHSU5GT19UT19VU0VSCkluZGV4OiBhcmNoL2lhNjQvaWEz Mi9pYTMyX2VudHJ5LlMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2hvbWUvYWRzaGFybWEv Y3ZzL2xpbnV4LTIuNS9hcmNoL2lhNjQvaWEzMi9pYTMyX2VudHJ5LlMsdgpyZXRyaWV2aW5n IHJldmlzaW9uIDEuMjYKZGlmZiAtdSAtcjEuMjYgaWEzMl9lbnRyeS5TCi0tLSBsaW51eC9h cmNoL2lhNjQvaWEzMi9pYTMyX2VudHJ5LlMJMjMgT2N0IDIwMDMgMDA6NDE6MjIgLTAwMDAJ MS4yNgorKysgbGludXgvYXJjaC9pYTY0L2lhMzIvaWEzMl9lbnRyeS5TCTI3IE9jdCAyMDAz IDE5OjA4OjQ4IC0wMDAwCkBAIC00MjcsNTIgKzQyNyw1NyBAQAogCWRhdGE4IHN5c19uaV9z eXNjYWxsCQkvKiByZXNlcnZlZCBmb3IgU2VjdXJpdHkgKi8KIAlkYXRhOCBzeXNfZ2V0dGlk CiAJZGF0YTggc3lzX3JlYWRhaGVhZAkgIC8qIDIyNSAqLwotCWRhdGE4IHN5c19uaV9zeXNj YWxsCi0JZGF0YTggc3lzX25pX3N5c2NhbGwKLQlkYXRhOCBzeXNfbmlfc3lzY2FsbAotCWRh dGE4IHN5c19uaV9zeXNjYWxsCi0JZGF0YTggc3lzX25pX3N5c2NhbGwJLyogMjMwICovCi0J ZGF0YTggc3lzX25pX3N5c2NhbGwKLQlkYXRhOCBzeXNfbmlfc3lzY2FsbAotCWRhdGE4IHN5 c19uaV9zeXNjYWxsCi0JZGF0YTggc3lzX25pX3N5c2NhbGwKLQlkYXRhOCBzeXNfbmlfc3lz Y2FsbAkvKiAyMzUgKi8KLQlkYXRhOCBzeXNfbmlfc3lzY2FsbAotCWRhdGE4IHN5c19uaV9z eXNjYWxsCisJZGF0YTggc3lzX3NldHhhdHRyCisJZGF0YTggc3lzX2xzZXR4YXR0cgorCWRh dGE4IHN5c19mc2V0eGF0dHIKKwlkYXRhOCBzeXNfZ2V0eGF0dHIKKwlkYXRhOCBzeXNfbGdl dHhhdHRyCS8qIDIzMCAqLworCWRhdGE4IHN5c19mZ2V0eGF0dHIKKwlkYXRhOCBzeXNfbGlz dHhhdHRyCisJZGF0YTggc3lzX2xsaXN0eGF0dHIKKwlkYXRhOCBzeXNfZmxpc3R4YXR0cgor CWRhdGE4IHN5c19yZW1vdmV4YXR0cgkvKiAyMzUgKi8KKwlkYXRhOCBzeXNfbHJlbW92ZXhh dHRyCisJZGF0YTggc3lzX2ZyZW1vdmV4YXR0cgogCWRhdGE4IHN5c190a2lsbAotCWRhdGE4 IHN5c19uaV9zeXNjYWxsCisJZGF0YTggc3lzX3NlbmRmaWxlNjQKIAlkYXRhOCBjb21wYXRf c3lzX2Z1dGV4CS8qIDI0MCAqLwogCWRhdGE4IGNvbXBhdF9zeXNfc2NoZWRfc2V0YWZmaW5p dHkKIAlkYXRhOCBjb21wYXRfc3lzX3NjaGVkX2dldGFmZmluaXR5CiAJZGF0YTggc3lzMzJf c2V0X3RocmVhZF9hcmVhCiAJZGF0YTggc3lzMzJfZ2V0X3RocmVhZF9hcmVhCi0JZGF0YTgg c3lzX25pX3N5c2NhbGwJLyogMjQ1ICovCi0JZGF0YTggc3lzX25pX3N5c2NhbGwKLQlkYXRh OCBzeXNfbmlfc3lzY2FsbAotCWRhdGE4IHN5c19uaV9zeXNjYWxsCi0JZGF0YTggc3lzX25p X3N5c2NhbGwKLQlkYXRhOCBzeXNfbmlfc3lzY2FsbAkvKiAyNTAgKi8KKwlkYXRhOCBjb21w YXRfc3lzX2lvX3NldHVwCS8qIDI0NSAqLworCWRhdGE4IHN5c19pb19kZXN0cm95CisJZGF0 YTggY29tcGF0X3N5c19pb19nZXRldmVudHMKKwlkYXRhOCBjb21wYXRfc3lzX2lvX3N1Ym1p dAorCWRhdGE4IHN5c19pb19jYW5jZWwKKwlkYXRhOCBzeXNfZmFkdmlzZTY0CS8qIDI1MCAq LwogCWRhdGE4IHN5c19uaV9zeXNjYWxsCiAJZGF0YTggc3lzX2V4aXRfZ3JvdXAKLQlkYXRh OCBzeXNfbmlfc3lzY2FsbAorCWRhdGE4IHN5c19sb29rdXBfZGNvb2tpZQogCWRhdGE4IHN5 c19lcG9sbF9jcmVhdGUKIAlkYXRhOCBzeXMzMl9lcG9sbF9jdGwJLyogMjU1ICovCiAJZGF0 YTggc3lzMzJfZXBvbGxfd2FpdAogCWRhdGE4IHN5c19yZW1hcF9maWxlX3BhZ2VzCiAJZGF0 YTggc3lzX3NldF90aWRfYWRkcmVzcwotCWRhdGE4IHN5c19uaV9zeXNjYWxsCi0JZGF0YTgg c3lzX25pX3N5c2NhbGwJLyogMjYwICovCi0JZGF0YTggc3lzX25pX3N5c2NhbGwKLQlkYXRh OCBzeXNfbmlfc3lzY2FsbAotCWRhdGE4IHN5c19uaV9zeXNjYWxsCi0JZGF0YTggc3lzX25p X3N5c2NhbGwKLQlkYXRhOCBzeXNfbmlfc3lzY2FsbAkvKiAyNjUgKi8KLQlkYXRhOCBzeXNf bmlfc3lzY2FsbAotCWRhdGE4IHN5c19uaV9zeXNjYWxsCisJZGF0YTggc3lzMzJfdGltZXJf Y3JlYXRlCisJZGF0YTggY29tcGF0X3RpbWVyX3NldHRpbWUJLyogMjYwICovCisJZGF0YTgg Y29tcGF0X3RpbWVyX2dldHRpbWUKKwlkYXRhOCBzeXNfdGltZXJfZ2V0b3ZlcnJ1bgorCWRh dGE4IHN5c190aW1lcl9kZWxldGUKKwlkYXRhOCBjb21wYXRfY2xvY2tfc2V0dGltZQorCWRh dGE4IGNvbXBhdF9jbG9ja19nZXR0aW1lIC8qIDI2NSAqLworCWRhdGE4IGNvbXBhdF9jbG9j a19nZXRyZXMKKwlkYXRhOCBjb21wYXRfY2xvY2tfbmFub3NsZWVwCiAJZGF0YTggc3lzX3N0 YXRmczY0CiAJZGF0YTggc3lzX2ZzdGF0ZnM2NAorCWRhdGE4IHN5c190Z2tpbGwJLyogMjcw ICovCisJZGF0YTggY29tcGF0X3N5c191dGltZXMKKwlkYXRhOCBjb21wYXRfc3lzX2ZhZHZp c2U2NF82NAorCWRhdGE4IHN5c19uaV9zeXNjYWxsCiAJZGF0YTggc3lzX25pX3N5c2NhbGwK LQkKKwlkYXRhOCBzeXNfbmlfc3lzY2FsbAkvKiAyNzUgKi8KKwogCS8qCiAJICogIENBVVRJ T046IElmIGFueSBzeXN0ZW0gY2FsbHMgYXJlIGFkZGVkIGJleW9uZCB0aGlzIHBvaW50CiAJ ICoJdGhlbiB0aGUgY2hlY2sgaW4gYGFyY2gvaWE2NC9rZXJuZWwvaXZ0LlMnIHdpbGwgaGF2 ZQpJbmRleDogYXJjaC9pYTY0L2lhMzIvaWEzMnByaXYuaAo9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBm aWxlOiAvaG9tZS9hZHNoYXJtYS9jdnMvbGludXgtMi41L2FyY2gvaWE2NC9pYTMyL2lhMzJw cml2LmgsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuNwpkaWZmIC11IC1yMS43IGlhMzJwcml2 LmgKLS0tIGxpbnV4L2FyY2gvaWE2NC9pYTMyL2lhMzJwcml2LmgJMjMgT2N0IDIwMDMgMDA6 NDE6MjIgLTAwMDAJMS43CisrKyBsaW51eC9hcmNoL2lhNjQvaWEzMi9pYTMycHJpdi5oCTI3 IE9jdCAyMDAzIDE5OjA4OjQ4IC0wMDAwCkBAIC0yNTEsNiArMjUxLDE5IEBACiAJfSBfc2lm aWVsZHM7CiB9IHNpZ2luZm9fdDMyOwogCit0eXBlZGVmIHN0cnVjdCBzaWdldmVudDMyewor CXNpZ3ZhbF90MzIgc2lnZXZfdmFsdWU7CisJaW50IHNpZ2V2X3NpZ25vOworCWludCBzaWdl dl9ub3RpZnk7CisJdW5pb24geworCQlpbnQgX3BhZFtTSUdFVl9QQURfU0laRTMyXTsKKwkJ c3RydWN0IHsKKwkJCXUzMiBfZnVuY3Rpb247CisJCQl1MzIgX2F0dHJpYnV0ZTsgLyogcmVh bGx5IHB0aHJlYWRfYXR0cl90ICovCisJCX0gX3NpZ2V2X3RocmVhZDsKKwl9IF9zaWdldl91 bjsKK30gc2lnZXZlbnRfdDMyOworCiBzdHJ1Y3Qgb2xkX2xpbnV4MzJfZGlyZW50IHsKIAl1 MzIJZF9pbm87CiAJdTMyCWRfb2Zmc2V0OwpJbmRleDogYXJjaC9pYTY0L2lhMzIvc3lzX2lh MzIuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvaG9tZS9hZHNoYXJtYS9jdnMvbGludXgt Mi41L2FyY2gvaWE2NC9pYTMyL3N5c19pYTMyLmMsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEu NTQKZGlmZiAtdSAtcjEuNTQgc3lzX2lhMzIuYwotLS0gbGludXgvYXJjaC9pYTY0L2lhMzIv c3lzX2lhMzIuYwkyMyBPY3QgMjAwMyAwMDo0MToyMiAtMDAwMAkxLjU0CisrKyBsaW51eC9h cmNoL2lhNjQvaWEzMi9zeXNfaWEzMi5jCTI3IE9jdCAyMDAzIDE5OjA4OjQ4IC0wMDAwCkBA IC0yOTI1LDYgKzI5MjUsNDMgQEAKIAlyZXR1cm4gMDsKIH0KIAorZXh0ZXJuIGFzbWxpbmth Z2UgbG9uZworc3lzX3RpbWVyX2NyZWF0ZShjbG9ja2lkX3Qgd2hpY2hfY2xvY2ssIHN0cnVj dCBzaWdldmVudCAqdGltZXJfZXZlbnRfc3BlYywKKyAgICAgICAgICAgICAgICAgdGltZXJf dCAqIGNyZWF0ZWRfdGltZXJfaWQpOworCithc21saW5rYWdlIGxvbmcKK3N5czMyX3RpbWVy X2NyZWF0ZSh1MzIgY2xvY2ssIHN0cnVjdCBzaWdldmVudDMyICpzZTMyLCB0aW1lcl90ICp0 aW1lcl9pZCkKK3sKKyAgICAgICAgc3RydWN0IHNpZ2V2ZW50IHNlOworICAgICAgICBtbV9z ZWdtZW50X3Qgb2xkZnM7CisgICAgICAgIHRpbWVyX3QgdDsKKyAgICAgICAgbG9uZyBlcnI7 CisKKyAgICAgICAgaWYgKHNlMzIgPT0gTlVMTCkKKyAgICAgICAgICAgICAgICByZXR1cm4g c3lzX3RpbWVyX2NyZWF0ZShjbG9jaywgTlVMTCwgdGltZXJfaWQpOworCisgICAgICAgIG1l bXNldCgmc2UsIDAsIHNpemVvZihzdHJ1Y3Qgc2lnZXZlbnQpKTsKKyAgICAgICAgaWYgKGdl dF91c2VyKHNlLnNpZ2V2X3ZhbHVlLnNpdmFsX2ludCwgICZzZTMyLT5zaWdldl92YWx1ZS5z aXZhbF9pbnQpIHx8CisgICAgICAgICAgICBfX2dldF91c2VyKHNlLnNpZ2V2X3NpZ25vLCAm c2UzMi0+c2lnZXZfc2lnbm8pIHx8CisgICAgICAgICAgICBfX2dldF91c2VyKHNlLnNpZ2V2 X25vdGlmeSwgJnNlMzItPnNpZ2V2X25vdGlmeSkgfHwKKyAgICAgICAgICAgIF9fY29weV9m cm9tX3VzZXIoJnNlLl9zaWdldl91bi5fcGFkLCAmc2UzMi0+X3NpZ2V2X3VuLl9wYWQsCisg ICAgICAgICAgICBzaXplb2Yoc2UuX3NpZ2V2X3VuLl9wYWQpKSkKKyAgICAgICAgICAgICAg ICByZXR1cm4gLUVGQVVMVDsKKworICAgICAgICBpZiAoIWFjY2Vzc19vayhWRVJJRllfV1JJ VEUsdGltZXJfaWQsc2l6ZW9mKHRpbWVyX3QpKSkKKyAgICAgICAgICAgICAgICByZXR1cm4g LUVGQVVMVDsKKworICAgICAgICBvbGRmcyA9IGdldF9mcygpOworICAgICAgICBzZXRfZnMo S0VSTkVMX0RTKTsKKyAgICAgICAgZXJyID0gc3lzX3RpbWVyX2NyZWF0ZShjbG9jaywgJnNl LCAmdCk7CisgICAgICAgIHNldF9mcyhvbGRmcyk7CisKKyAgICAgICAgaWYgKCFlcnIpCisg ICAgICAgICAgICAgICAgZXJyID0gX19wdXRfdXNlciAodCwgdGltZXJfaWQpOworCisgICAg ICAgIHJldHVybiBlcnI7Cit9CisKICNpZmRlZglOT1RZRVQgIC8qIFVOVEVTVEVEIEZPUiBJ QTY0IEZST00gSEVSRSBET1dOICovCiAKIHN0cnVjdCBuY3BfbW91bnRfZGF0YTMyIHsKSW5k ZXg6IGFyY2gvaWE2NC9rZXJuZWwvaXZ0LlMKPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2hv bWUvYWRzaGFybWEvY3ZzL2xpbnV4LTIuNS9hcmNoL2lhNjQva2VybmVsL2l2dC5TLHYKcmV0 cmlldmluZyByZXZpc2lvbiAxLjE1CmRpZmYgLXUgLXIxLjE1IGl2dC5TCi0tLSBsaW51eC9h cmNoL2lhNjQva2VybmVsL2l2dC5TCTIxIEp1biAyMDAzIDE2OjIxOjEzIC0wMDAwCTEuMTUK KysrIGxpbnV4L2FyY2gvaWE2NC9rZXJuZWwvaXZ0LlMJMjcgT2N0IDIwMDMgMTk6MDg6NDgg LTAwMDAKQEAgLTE1MTMsNyArMTUxMyw3IEBACiAJYWxsb2MgcjE1PWFyLnBmcywwLDAsNiww CS8vIG11c3QgZmlyc3QgaW4gYW4gaW5zbiBncm91cAogCTs7CiAJbGQ0IHI4PVtyMTRdLDgJ CS8vIHI4ID09IGVheCAoc3lzY2FsbCBudW1iZXIpCi0JbW92IHIxNT0yNzAJCS8vIG51bWJl ciBvZiBlbnRyaWVzIGluIGlhMzIgc3lzdGVtIGNhbGwgdGFibGUKKwltb3YgcjE1PTI3NQkJ Ly8gbnVtYmVyIG9mIGVudHJpZXMgaW4gaWEzMiBzeXN0ZW0gY2FsbCB0YWJsZQogCTs7CiAJ Y21wLmx0dS51bmMgcDYscDc9cjgscjE1CiAJbGQ0IG91dDE9W3IxNF0sOAkvLyByOSA9PSBl Y3gK --------------030108000207010108000408-- fs/compat.c | 94 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 94 insertions(+) diff -puN fs/compat.c~ia64-ia32-missing-compat-syscalls fs/compat.c --- 25/fs/compat.c~ia64-ia32-missing-compat-syscalls 2003-10-28 18:22:21.000000000 -0800 +++ 25-akpm/fs/compat.c 2003-10-28 18:22:21.000000000 -0800 @@ -554,3 +554,97 @@ asmlinkage long compat_sys_fcntl(unsigne return compat_sys_fcntl64(fd, cmd, arg); } +extern asmlinkage long sys_io_setup(unsigned nr_reqs, aio_context_t *ctx); + +asmlinkage long compat_sys_io_setup(unsigned nr_reqs, u32 *ctx32p) +{ + long ret; + aio_context_t ctx64; + compat_uptr_t uptr; + + mm_segment_t oldfs = get_fs(); + if (unlikely(get_user(uptr, ctx32p))) + return -EFAULT; + + ctx64 = (aio_context_t) compat_ptr(uptr); + set_fs(KERNEL_DS); + ret = sys_io_setup(nr_reqs, &ctx64); + set_fs(oldfs); + /* truncating is ok because it's a user address */ + if (!ret) + ret = put_user((u32) ctx64, ctx32p); + return ret; +} + +extern asmlinkage long sys_io_getevents(aio_context_t ctx_id, + long min_nr, + long nr, + struct io_event *events, + struct timespec *timeout); + +asmlinkage long compat_sys_io_getevents(aio_context_t ctx_id, + unsigned long min_nr, + unsigned long nr, + struct io_event *events, + struct compat_timespec *timeout) +{ + long ret; + mm_segment_t oldfs; + struct timespec t; + + if (unlikely(!access_ok(VERIFY_WRITE, events, + nr * sizeof(struct io_event)))) + return -EFAULT; + if (timeout && get_compat_timespec(&t, timeout)) + return -EFAULT; + oldfs = get_fs(); + set_fs(KERNEL_DS); + ret = sys_io_getevents(ctx_id, min_nr, nr, events, timeout ? &t : NULL); + set_fs(oldfs); + if (!ret && timeout && put_compat_timespec(&t, timeout)) + return -EFAULT; + return ret; +} + +asmlinkage long compat_sys_io_submit(aio_context_t ctx_id, int nr, + compat_uptr_t *iocbpp) +{ + struct kioctx *ctx; + long ret = 0; + int i; + + if (unlikely(nr < 0)) + return -EINVAL; + + if (unlikely(!access_ok(VERIFY_READ, iocbpp, (nr*sizeof(*iocbpp))))) + return -EFAULT; + + ctx = lookup_ioctx(ctx_id); + if (unlikely(!ctx)) { + pr_debug("EINVAL: io_submit: invalid context id\n"); + return -EINVAL; + } + + for (i=0; i < nr; i++) { + compat_uptr_t p32; + struct iocb *user_iocb, tmp; + + if (unlikely(__get_user(p32, iocbpp + i))) { + ret = -EFAULT; + break; + } + user_iocb = compat_ptr(p32); + + if (unlikely(copy_from_user(&tmp, user_iocb, sizeof(tmp)))) { + ret = -EFAULT; + break; + } + + ret = io_submit_one(ctx, user_iocb, &tmp); + if (ret) + break; + } + + put_ioctx(ctx); + return i ? i : ret; +} _