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;
+}

_