kernel patch support large fat partitions

Vijay Kumar (jkumar@qualcomm.com)
Thu, 03 Jan 2002 15:42:20 -0800


--=====================_107777585==_
Content-Type: text/plain; charset="us-ascii"; format=flowed

Alan,

This is regarding a change I had to make to the kernel 2.2.17-14 to support
really large drives. In our project we deal with huge drives, sometimes
drives larger than 128GB. The file system is FAT32 and only one partition
is create on any drive. During our testing we realized that linux fat
implementation doesn't support partitions larger than 128GB(actually 64GB
because of a bug in fat implementation).

This limitation is imposed by the data structures used by the linux fat
implementation to read/write directory entries. A 'long' data type is used
to access directory entries on the disk, of which only 28 bits are used to
identify the sector that contains the directory entry and the rest 4 bits
are used to specify offset of the directory entry inside the sector. Using
28 bits to identify a sector means we cannot access sectors beyond 128GB
(2^28*512), thus limiting us from creating partitions larger than 128GB on
large disk drives.

I have made changes to fat, vfat and msdos file system implementations in
the kernel to use larger data types, thus allowing us to create larger
partitions. As per the GPL I would like to make the patch available to
everyone and also in case somebody has run into the same problem(who cares
about fat in the linux world). The patch has been fairly well tested only
on our systems(p3, 700MHz with FC). I truly appreciate if you & anybody in
the kernel mailing list have any feedback about the changes.

The patch is applicable to only 2.2.17-14 kernel and may require changes to
use with other kernel versions. As far as I know none of the kernel
versions provide any fix for this problem.

Thanks,
- Vijay
--=====================_107777585==_
Content-Type: application/octet-stream; name="linux-2.2.17-fat-qualcomm-128GB-limit.patch"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="linux-2.2.17-fat-qualcomm-128GB-limit.patch"

ZGlmZiAtdSAtciBsaW51eC5vcmlnL2ZzL2ZhdC9kaXIuYyBsaW51eC9mcy9mYXQvZGlyLmMKLS0t
IGxpbnV4Lm9yaWcvZnMvZmF0L2Rpci5jCUZyaSBOb3YgIDkgMTc6MDc6MDIgMjAwMQorKysgbGlu
dXgvZnMvZmF0L2Rpci5jCUZyaSBOb3YgIDkgMTg6MDU6MjkgMjAwMQpAQCAtMTI5LDcgKzEyOSw4
IEBACiAJbG9mZl90ICpzcG9zLCBsb2ZmX3QgKmxwb3MpCiB7CiAJc3RydWN0IHN1cGVyX2Jsb2Nr
ICpzYiA9IGlub2RlLT5pX3NiOwotCWludCBpbm8saSxpMixsYXN0OworCWludCBpLGkyLGxhc3Q7
CisgICAgbG9mZl90IGlubzsKIAljaGFyIGM7CiAJc3RydWN0IGJ1ZmZlcl9oZWFkICpiaCA9IE5V
TEw7CiAJc3RydWN0IG1zZG9zX2Rpcl9lbnRyeSAqZGU7CkBAIC0yOTIsNyArMjkzLDggQEAKIAlp
bnQgYm90aCkKIHsKIAlzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiID0gaW5vZGUtPmlfc2I7Ci0JaW50
IGlubyxpbnVtLGksaTIsbGFzdDsKKwlpbnQgaSxpMixsYXN0OworICAgIGxvZmZfdCBpbm8sIGlu
dW07CiAJY2hhciBjOwogCXN0cnVjdCBidWZmZXJfaGVhZCAqYmg7CiAJc3RydWN0IG1zZG9zX2Rp
cl9lbnRyeSAqZGU7CkBAIC01ODcsNyArNTg5LDggQEAKIAlsb2ZmX3QgcG9zOwogCXN0cnVjdCBi
dWZmZXJfaGVhZCAqYmg7CiAJc3RydWN0IG1zZG9zX2Rpcl9lbnRyeSAqZGU7Ci0JaW50IGlubyxy
ZXN1bHQgPSAwOworCWludCByZXN1bHQgPSAwOworICAgIGxvZmZfdCBpbm87CiAKIAlwb3MgPSAw
OwogCWJoID0gTlVMTDsKQEAgLTYxMSw3ICs2MTQsNyBAQAogLyogVGhpcyBhc3N1bWVzIHRoYXQg
c2l6ZSBvZiBjbHVzdGVyIGlzIGFib3ZlIHRoZSAzMipzbG90cyAqLwogCiBpbnQgZmF0X2FkZF9l
bnRyaWVzKHN0cnVjdCBpbm9kZSAqZGlyLGludCBzbG90cywgc3RydWN0IGJ1ZmZlcl9oZWFkICoq
YmgsCi0JCSAgc3RydWN0IG1zZG9zX2Rpcl9lbnRyeSAqKmRlLCBpbnQgKmlubykKKwkJICBzdHJ1
Y3QgbXNkb3NfZGlyX2VudHJ5ICoqZGUsIGxvZmZfdCAqaW5vKQogewogCXN0cnVjdCBzdXBlcl9i
bG9jayAqc2IgPSBkaXItPmlfc2I7CiAJbG9mZl90IG9mZnNldCwgY3VycjsKZGlmZiAtdSAtciBs
aW51eC5vcmlnL2ZzL2ZhdC9pbm9kZS5jIGxpbnV4L2ZzL2ZhdC9pbm9kZS5jCi0tLSBsaW51eC5v
cmlnL2ZzL2ZhdC9pbm9kZS5jCUZyaSBOb3YgIDkgMTc6MDc6MDIgMjAwMQorKysgbGludXgvZnMv
ZmF0L2lub2RlLmMJRnJpIE5vdiAgOSAxOTowNjo1OCAyMDAxCkBAIC05MCw3ICs5MCw3IEBACiAJ
cmV0dXJuIHRtcCAmIEZBVF9IQVNIX01BU0s7CiB9CiAKLXZvaWQgZmF0X2F0dGFjaChzdHJ1Y3Qg
aW5vZGUgKmlub2RlLCBpbnQgaV9wb3MpIHsKK3ZvaWQgZmF0X2F0dGFjaChzdHJ1Y3QgaW5vZGUg
Kmlub2RlLCBsb2ZmX3QgaV9wb3MpIHsKIAlzcGluX2xvY2soJmZhdF9pbm9kZV9sb2NrKTsKIAlN
U0RPU19JKGlub2RlKS0+aV9sb2NhdGlvbiA9IGlfcG9zOwogCWxpc3RfYWRkKCZNU0RPU19JKGlu
b2RlKS0+aV9mYXRfaGFzaCwKQEAgLTEwNiw3ICsxMDYsNyBAQAogCXNwaW5fdW5sb2NrKCZmYXRf
aW5vZGVfbG9jayk7CiB9CiAKLXN0cnVjdCBpbm9kZSAqZmF0X2lnZXQoc3RydWN0IHN1cGVyX2Js
b2NrICpzYiwgaW50IGlfcG9zKSB7CitzdHJ1Y3QgaW5vZGUgKmZhdF9pZ2V0KHN0cnVjdCBzdXBl
cl9ibG9jayAqc2IsIGxvZmZfdCBpX3BvcykgewogCXN0cnVjdCBsaXN0X2hlYWQgKnAgPSBmYXRf
aW5vZGVfaGFzaHRhYmxlICsgZmF0X2hhc2goc2IsIGlfcG9zKTsKIAlzdHJ1Y3QgbGlzdF9oZWFk
ICp3YWxrOwogCXN0cnVjdCBtc2Rvc19pbm9kZV9pbmZvICppOwpAQCAtMTI3LDcgKzEyNyw3IEBA
CiBzdGF0aWMgdm9pZCBmYXRfZmlsbF9pbm9kZShzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3Qg
bXNkb3NfZGlyX2VudHJ5ICpkZSk7CiAKIHN0cnVjdCBpbm9kZSAqZmF0X2J1aWxkX2lub2RlKHN0
cnVjdCBzdXBlcl9ibG9jayAqc2IsCi0JCQkJc3RydWN0IG1zZG9zX2Rpcl9lbnRyeSAqZGUsIGlu
dCBpbm8sIGludCAqcmVzKQorCQkJCXN0cnVjdCBtc2Rvc19kaXJfZW50cnkgKmRlLCBsb2ZmX3Qg
aW5vLCBpbnQgKnJlcykKIHsKIAlzdHJ1Y3QgaW5vZGUgKmlub2RlOwogCSpyZXMgPSAwOwpAQCAt
ODM5LDEzICs4MzksMTMgQEAKIAlzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiID0gaW5vZGUtPmlfc2I7
CiAJc3RydWN0IGJ1ZmZlcl9oZWFkICpiaDsKIAlzdHJ1Y3QgbXNkb3NfZGlyX2VudHJ5ICpyYXdf
ZW50cnk7Ci0JaW50IGlfcG9zOworCWxvZmZfdCBpX3BvczsKIAogcmV0cnk6CiAJaV9wb3MgPSBN
U0RPU19JKGlub2RlKS0+aV9sb2NhdGlvbjsKIAlpZiAoaW5vZGUtPmlfaW5vID09IE1TRE9TX1JP
T1RfSU5PIHx8ICFpX3BvcykgcmV0dXJuOwotCWlmICghKGJoID0gZmF0X2JyZWFkKHNiLCAoKHVu
c2lnbmVkIGludCkgaV9wb3MpID4+IE1TRE9TX0RQQl9CSVRTKSkpIHsKLQkJcHJpbnRrKCJkZXYg
PSAlcywgaW5vID0gJWRcbiIsIGtkZXZuYW1lKGlub2RlLT5pX2RldiksIGlfcG9zKTsKKwlpZiAo
IShiaCA9IGZhdF9icmVhZChzYiwgKCh1bnNpZ25lZCBsb25nIGxvbmcpIGlfcG9zKSA+PiBNU0RP
U19EUEJfQklUUykpKSB7CisJCXByaW50aygiZGV2ID0gJXMsIGlubyA9ICVsZFxuIiwga2Rldm5h
bWUoaW5vZGUtPmlfZGV2KSwgaV9wb3MpOwogCQlmYXRfZnNfcGFuaWMoc2IsICJtc2Rvc193cml0
ZV9pbm9kZTogdW5hYmxlIHRvIHJlYWQgaS1ub2RlIGJsb2NrIik7CiAJCXJldHVybjsKIAl9CmRp
ZmYgLXUgLXIgbGludXgub3JpZy9mcy9mYXQvbWlzYy5jIGxpbnV4L2ZzL2ZhdC9taXNjLmMKLS0t
IGxpbnV4Lm9yaWcvZnMvZmF0L21pc2MuYwlGcmkgTm92ICA5IDE3OjA3OjAyIDIwMDEKKysrIGxp
bnV4L2ZzL2ZhdC9taXNjLmMJRnJpIE5vdiAgOSAxNzoxNzowOSAyMDAxCkBAIC0zNDEsMTAgKzM0
MSwxMCBAQAogICovCiAKIGludCBmYXRfX2dldF9lbnRyeShzdHJ1Y3QgaW5vZGUgKmRpciwgbG9m
Zl90ICpwb3Msc3RydWN0IGJ1ZmZlcl9oZWFkICoqYmgsCi0gICAgc3RydWN0IG1zZG9zX2Rpcl9l
bnRyeSAqKmRlLCBpbnQgKmlubykKKyAgICBzdHJ1Y3QgbXNkb3NfZGlyX2VudHJ5ICoqZGUsIGxv
ZmZfdCAqaW5vKQogewogCXN0cnVjdCBzdXBlcl9ibG9jayAqc2IgPSBkaXItPmlfc2I7Ci0JaW50
IHNlY3Rvciwgb2Zmc2V0OworCWxvbmcgbG9uZyBzZWN0b3IsIG9mZnNldDsKIAogCXdoaWxlICgx
KSB7CiAJCW9mZnNldCA9ICpwb3M7CkBAIC00MjAsOCArNDIwLDggQEAKIAkgICAgKCpudW1iZXIp
Kys7IFwKICAgICB9CiAKLXN0YXRpYyBpbnQgcmF3X3NjYW5fc2VjdG9yKHN0cnVjdCBzdXBlcl9i
bG9jayAqc2IsaW50IHNlY3Rvcixjb25zdCBjaGFyICpuYW1lLAotICAgIGludCAqbnVtYmVyLGlu
dCAqaW5vLHN0cnVjdCBidWZmZXJfaGVhZCAqKnJlc19iaCwKK3N0YXRpYyBpbnQgcmF3X3NjYW5f
c2VjdG9yKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IsbG9uZyBsb25nIHNlY3RvciwKKyAgICBjb25z
dCBjaGFyICpuYW1lLCBpbnQgKm51bWJlcixsb2ZmX3QgKmlubyxzdHJ1Y3QgYnVmZmVyX2hlYWQg
KipyZXNfYmgsCiAgICAgc3RydWN0IG1zZG9zX2Rpcl9lbnRyeSAqKnJlc19kZSkKIHsKIAlzdHJ1
Y3QgYnVmZmVyX2hlYWQgKmJoOwpAQCAtNDY3LDcgKzQ2Nyw3IEBACiAgKiByZXF1ZXN0ZWQgZW50
cnkgaXMgZm91bmQgb3IgdGhlIGVuZCBvZiB0aGUgZGlyZWN0b3J5IGlzIHJlYWNoZWQuCiAgKi8K
IAotc3RhdGljIGludCByYXdfc2Nhbl9yb290KHN0cnVjdCBzdXBlcl9ibG9jayAqc2IsY29uc3Qg
Y2hhciAqbmFtZSxpbnQgKm51bWJlcixpbnQgKmlubywKK3N0YXRpYyBpbnQgcmF3X3NjYW5fcm9v
dChzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLGNvbnN0IGNoYXIgKm5hbWUsaW50ICpudW1iZXIsbG9m
Zl90ICppbm8sCiAgICAgc3RydWN0IGJ1ZmZlcl9oZWFkICoqcmVzX2JoLHN0cnVjdCBtc2Rvc19k
aXJfZW50cnkgKipyZXNfZGUpCiB7CiAJaW50IGNvdW50LGNsdXN0ZXI7CkBAIC00ODYsNyArNDg2
LDcgQEAKICAqLwogCiBzdGF0aWMgaW50IHJhd19zY2FuX25vbnJvb3Qoc3RydWN0IHN1cGVyX2Js
b2NrICpzYixpbnQgc3RhcnQsY29uc3QgY2hhciAqbmFtZSwKLSAgICBpbnQgKm51bWJlcixpbnQg
KmlubyxzdHJ1Y3QgYnVmZmVyX2hlYWQgKipyZXNfYmgsc3RydWN0IG1zZG9zX2Rpcl9lbnRyeQor
ICAgIGludCAqbnVtYmVyLGxvZmZfdCAqaW5vLHN0cnVjdCBidWZmZXJfaGVhZCAqKnJlc19iaCxz
dHJ1Y3QgbXNkb3NfZGlyX2VudHJ5CiAgICAgKipyZXNfZGUpCiB7CiAJaW50IGNvdW50LGNsdXN0
ZXI7CkBAIC01MjIsNyArNTIyLDcgQEAKICAqLwogCiBzdGF0aWMgaW50IHJhd19zY2FuKHN0cnVj
dCBzdXBlcl9ibG9jayAqc2IsIGludCBzdGFydCwgY29uc3QgY2hhciAqbmFtZSwKLSAgICBpbnQg
Km51bWJlciwgaW50ICppbm8sIHN0cnVjdCBidWZmZXJfaGVhZCAqKnJlc19iaCwKKyAgICBpbnQg
Km51bWJlciwgbG9mZl90ICppbm8sIHN0cnVjdCBidWZmZXJfaGVhZCAqKnJlc19iaCwKICAgICBz
dHJ1Y3QgbXNkb3NfZGlyX2VudHJ5ICoqcmVzX2RlKQogewogCWlmIChzdGFydCkgcmV0dXJuIHJh
d19zY2FuX25vbnJvb3QKQEAgLTYxMyw3ICs2MTMsNyBAQAogICovCiAKIGludCBmYXRfc2Nhbihz
dHJ1Y3QgaW5vZGUgKmRpcixjb25zdCBjaGFyICpuYW1lLHN0cnVjdCBidWZmZXJfaGVhZCAqKnJl
c19iaCwKLSAgICBzdHJ1Y3QgbXNkb3NfZGlyX2VudHJ5ICoqcmVzX2RlLGludCAqaW5vKQorICAg
IHN0cnVjdCBtc2Rvc19kaXJfZW50cnkgKipyZXNfZGUsbG9mZl90ICppbm8pCiB7CiAJaW50IHJl
czsKIApPbmx5IGluIGxpbnV4L2ZzL21zZG9zOiAuZGVwZW5kCmRpZmYgLXUgLXIgbGludXgub3Jp
Zy9mcy9tc2Rvcy9uYW1laS5jIGxpbnV4L2ZzL21zZG9zL25hbWVpLmMKLS0tIGxpbnV4Lm9yaWcv
ZnMvbXNkb3MvbmFtZWkuYwlXZWQgTm92IDE0IDIzOjE3OjI1IDIwMDEKKysrIGxpbnV4L2ZzL21z
ZG9zL25hbWVpLmMJV2VkIE5vdiAxNCAyMzoxNDoxNSAyMDAxCkBAIC0xMjYsNyArMTI2LDcgQEAK
IAogLyoqKioqIExvY2F0ZXMgYSBkaXJlY3RvcnkgZW50cnkuICBVc2VzIHVuZm9ybWF0dGVkIG5h
bWUuICovCiBzdGF0aWMgaW50IG1zZG9zX2ZpbmQoc3RydWN0IGlub2RlICpkaXIsY29uc3QgY2hh
ciAqbmFtZSxpbnQgbGVuLAotICAgIHN0cnVjdCBidWZmZXJfaGVhZCAqKmJoLHN0cnVjdCBtc2Rv
c19kaXJfZW50cnkgKipkZSxpbnQgKmlubykKKyAgICBzdHJ1Y3QgYnVmZmVyX2hlYWQgKipiaCxz
dHJ1Y3QgbXNkb3NfZGlyX2VudHJ5ICoqZGUsbG9mZl90ICppbm8pCiB7CiAJaW50IHJlczsKIAlj
aGFyIGRvdHNPSzsKQEAgLTIyMCw3ICsyMjAsOCBAQAogCXN0cnVjdCBpbm9kZSAqaW5vZGUgPSBO
VUxMOwogCXN0cnVjdCBtc2Rvc19kaXJfZW50cnkgKmRlOwogCXN0cnVjdCBidWZmZXJfaGVhZCAq
YmggPSBOVUxMOwotCWludCBpbm8scmVzOworCWludCByZXM7CisJbG9mZl90IGlubzsKIAkKIAlQ
UklOVEsgKCgibXNkb3NfbG9va3VwXG4iKSk7CiAKQEAgLTI0OSw3ICsyNTAsNyBAQAogc3RhdGlj
IGludCBtc2Rvc19hZGRfZW50cnkoc3RydWN0IGlub2RlICpkaXIsIGNvbnN0IGNoYXIgKm5hbWUs
CiAJCQkgICBzdHJ1Y3QgYnVmZmVyX2hlYWQgKipiaCwKIAkJCSAgIHN0cnVjdCBtc2Rvc19kaXJf
ZW50cnkgKipkZSwKLQkJCSAgIGludCAqaW5vLAorCQkJICAgbG9mZl90ICppbm8sCiAJCQkgICBp
bnQgaXNfZGlyLCBpbnQgaXNfaGlkKQogewogCXN0cnVjdCBzdXBlcl9ibG9jayAqc2IgPSBkaXIt
Pmlfc2I7CkBAIC0yODUsNyArMjg2LDggQEAKIAlzdHJ1Y3QgYnVmZmVyX2hlYWQgKmJoOwogCXN0
cnVjdCBtc2Rvc19kaXJfZW50cnkgKmRlOwogCXN0cnVjdCBpbm9kZSAqaW5vZGU7Ci0JaW50IGlu
byxyZXMsaXNfaGlkOworCWludCByZXMsaXNfaGlkOworCWxvZmZfdCBpbm87CiAJY2hhciBtc2Rv
c19uYW1lW01TRE9TX05BTUVdOwogCiAJcmVzID0gbXNkb3NfZm9ybWF0X25hbWUoTVNET1NfU0Io
c2IpLT5vcHRpb25zLm5hbWVfY2hlY2ssCkBAIC0zMTgsNyArMzIwLDggQEAKIHsKIAlzdHJ1Y3Qg
c3VwZXJfYmxvY2sgKnNiID0gZGlyLT5pX3NiOwogCXN0cnVjdCBpbm9kZSAqaW5vZGUgPSBkZW50
cnktPmRfaW5vZGU7Ci0JaW50IHJlcyxpbm87CisJaW50IHJlczsKKwlsb2ZmX3QgaW5vOwogCXN0
cnVjdCBidWZmZXJfaGVhZCAqYmg7CiAJc3RydWN0IG1zZG9zX2Rpcl9lbnRyeSAqZGU7CiAKQEAg
LTM2NSw3ICszNjgsNyBAQAogCWNoYXIgbXNkb3NfbmFtZVtNU0RPU19OQU1FXTsKIAlzdHJ1Y3Qg
YnVmZmVyX2hlYWQgKmJoMTsKIAlzdHJ1Y3QgbXNkb3NfZGlyX2VudHJ5ICpkZTE7Ci0JaW50IGlu
bzsKKwlsb2ZmX3QgaW5vOwogCiAJcmVzID0gbXNkb3NfZm9ybWF0X25hbWUoTVNET1NfU0Ioc2Ip
LT5vcHRpb25zLm5hbWVfY2hlY2ssCiAJCQkJZGVudHJ5LT5kX25hbWUubmFtZSxkZW50cnktPmRf
bmFtZS5sZW4sCkBAIC00NTEsNyArNDU0LDggQEAKIHsKIAlzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNi
ID0gZGlyLT5pX3NiOwogCXN0cnVjdCBpbm9kZSAqaW5vZGUgPSBkZW50cnktPmRfaW5vZGU7Ci0J
aW50IHJlcyxpbm87CisJaW50IHJlczsKKwlsb2ZmX3QgaW5vOwogCXN0cnVjdCBidWZmZXJfaGVh
ZCAqYmg7CiAJc3RydWN0IG1zZG9zX2Rpcl9lbnRyeSAqZGU7CiAKQEAgLTQ3OSwxMyArNDgzLDEz
IEBACiAgICAgc3RydWN0IGRlbnRyeSAqb2xkX2RlbnRyeSwKICAgICBzdHJ1Y3QgaW5vZGUgKm5l
d19kaXIsY2hhciAqbmV3X25hbWUsIHN0cnVjdCBkZW50cnkgKm5ld19kZW50cnksCiAgICAgc3Ry
dWN0IGJ1ZmZlcl9oZWFkICpvbGRfYmgsCi0gICAgc3RydWN0IG1zZG9zX2Rpcl9lbnRyeSAqb2xk
X2RlLCBpbnQgb2xkX2lubywgaW50IGlzX2hpZCkKKyAgICBzdHJ1Y3QgbXNkb3NfZGlyX2VudHJ5
ICpvbGRfZGUsIGxvZmZfdCBvbGRfaW5vLCBpbnQgaXNfaGlkKQogewogCXN0cnVjdCBzdXBlcl9i
bG9jayAqc2IgPSBvbGRfZGlyLT5pX3NiOwogCXN0cnVjdCBidWZmZXJfaGVhZCAqbmV3X2JoPU5V
TEwsKmRvdGRvdF9iaD1OVUxMOwogCXN0cnVjdCBtc2Rvc19kaXJfZW50cnkgKm5ld19kZSwqZG90
ZG90X2RlOwogCXN0cnVjdCBpbm9kZSAqb2xkX2lub2RlLCpuZXdfaW5vZGU7Ci0JaW50IG5ld19p
bm8sZG90ZG90X2lubzsKKwlsb2ZmX3QgbmV3X2lubyxkb3Rkb3RfaW5vOwogCWludCBlcnJvcjsK
IAlpbnQgaXNfZGlyOwogCkBAIC01ODIsNyArNTg2LDggQEAKIAlzdHJ1Y3Qgc3VwZXJfYmxvY2sg
KnNiID0gb2xkX2Rpci0+aV9zYjsKIAlzdHJ1Y3QgYnVmZmVyX2hlYWQgKm9sZF9iaDsKIAlzdHJ1
Y3QgbXNkb3NfZGlyX2VudHJ5ICpvbGRfZGU7Ci0JaW50IG9sZF9pbm8sIGVycm9yOworCWludCBl
cnJvcjsKKwlsb2ZmX3Qgb2xkX2lubzsKIAlpbnQgaXNfaGlkLG9sZF9oaWQ7IC8qIGlmIG5ldyBm
aWxlIGFuZCBvbGQgZmlsZSBhcmUgaGlkZGVuICovCiAJY2hhciBvbGRfbXNkb3NfbmFtZVtNU0RP
U19OQU1FXSwgbmV3X21zZG9zX25hbWVbTVNET1NfTkFNRV07CiAKQEAgLTYwNSw3ICs2MTAsNyBA
QAogCiAJZXJyb3IgPSBkb19tc2Rvc19yZW5hbWUob2xkX2Rpciwgb2xkX21zZG9zX25hbWUsIG9s
ZF9kZW50cnksCiAJCQkJbmV3X2RpciwgbmV3X21zZG9zX25hbWUsIG5ld19kZW50cnksCi0JCQkJ
b2xkX2JoLCBvbGRfZGUsIChpbm9fdClvbGRfaW5vLCBpc19oaWQpOworCQkJCW9sZF9iaCwgb2xk
X2RlLCBvbGRfaW5vLCBpc19oaWQpOwogCWZhdF9icmVsc2Uoc2IsIG9sZF9iaCk7CiAKIHJlbmFt
ZV9kb25lOgpkaWZmIC11IC1yIGxpbnV4Lm9yaWcvZnMvdmZhdC9uYW1laS5jIGxpbnV4L2ZzL3Zm
YXQvbmFtZWkuYwotLS0gbGludXgub3JpZy9mcy92ZmF0L25hbWVpLmMJRnJpIE5vdiAgOSAxNzow
NzowNyAyMDAxCisrKyBsaW51eC9mcy92ZmF0L25hbWVpLmMJRnJpIE5vdiAgOSAxODowNTo0NSAy
MDAxCkBAIC00MTksNyArNDE5LDggQEAKIHsKIAlzdHJ1Y3QgbXNkb3NfZGlyX2VudHJ5ICpkZTsK
IAlzdHJ1Y3QgYnVmZmVyX2hlYWQgKmJoID0gTlVMTDsKLQlpbnQgaW5vLHJlczsKKwlpbnQgcmVz
OworCWxvZmZfdCBpbm87CiAKIAlyZXM9ZmF0X3NjYW4oZGlyLG5hbWUsJmJoLCZkZSwmaW5vKTsK
IAlmYXRfYnJlbHNlKGRpci0+aV9zYiwgYmgpOwpAQCAtODA5LDcgKzgxMCw3IEBACiAJaW50IHJl
czsKIAlzdHJ1Y3QgbXNkb3NfZGlyX2VudHJ5ICpkZTE7CiAJc3RydWN0IGJ1ZmZlcl9oZWFkICpi
aDE7Ci0JaW50IGlubzsKKwlsb2ZmX3QgaW5vOwogCWludCBsZW47CiAJbG9mZl90IGR1bW15Owog
CkBAIC0xMDIwLDcgKzEwMjEsOCBAQAogewogCXN0cnVjdCBzdXBlcl9ibG9jayAqc2IgPSBkaXIt
Pmlfc2I7CiAJbG9mZl90IG9mZnNldDsKLQlpbnQgaSxpbm87CisJaW50IGk7CisgICAgbG9mZl90
IGlubzsKIAogCS8qIHJlbW92ZSB0aGUgc2hvcnRuYW1lICovCiAJZGlyLT5pX210aW1lID0gQ1VS
UkVOVF9USU1FOwpAQCAtMTE0NSw3ICsxMTQ3LDcgQEAKIAlzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNi
ID0gb2xkX2Rpci0+aV9zYjsKIAlzdHJ1Y3QgYnVmZmVyX2hlYWQgKm9sZF9iaCwqbmV3X2JoLCpk
b3Rkb3RfYmg7CiAJc3RydWN0IG1zZG9zX2Rpcl9lbnRyeSAqb2xkX2RlLCpuZXdfZGUsKmRvdGRv
dF9kZTsKLQlpbnQgZG90ZG90X2lubzsKKwlsb2ZmX3QgZG90ZG90X2lubzsKIAlzdHJ1Y3QgaW5v
ZGUgKm9sZF9pbm9kZSwgKm5ld19pbm9kZTsKIAlpbnQgcmVzLCBpc19kaXI7CiAJc3RydWN0IHZm
YXRfc2xvdF9pbmZvIG9sZF9zaW5mbyxzaW5mbzsKZGlmZiAtdSAtciBsaW51eC5vcmlnL2luY2x1
ZGUvbGludXgvbXNkb3NfZnMuaCBsaW51eC9pbmNsdWRlL2xpbnV4L21zZG9zX2ZzLmgKLS0tIGxp
bnV4Lm9yaWcvaW5jbHVkZS9saW51eC9tc2Rvc19mcy5oCUZyaSBOb3YgIDkgMTc6MzM6NTEgMjAw
MQorKysgbGludXgvaW5jbHVkZS9saW51eC9tc2Rvc19mcy5oCUZyaSBOb3YgIDkgMTk6MDc6MDQg
MjAwMQpAQCAtMTY3LDcgKzE2Nyw3IEBACiAJaW50IHRvdGFsX3Nsb3RzOwkgICAgICAgLyogdG90
YWwgc2xvdHMgKGxvbmcgYW5kIHNob3J0KSAqLwogCWxvZmZfdCBsb25nbmFtZV9vZmZzZXQ7CSAg
ICAgICAvKiBkaXIgb2Zmc2V0IGZvciBsb25nbmFtZSBzdGFydCAqLwogCWxvZmZfdCBzaG9ydG5h
bWVfb2Zmc2V0OyAgICAgICAvKiBkaXIgb2Zmc2V0IGZvciBzaG9ydG5hbWUgc3RhcnQgKi8KLQlp
bnQgaW5vOwkJICAgICAgIC8qIGlubyBmb3IgdGhlIGZpbGUgKi8KKwlsb2ZmX3QgaW5vOwkJICAg
ICAgIC8qIGlubyBmb3IgdGhlIGZpbGUgKi8KIH07CiAKIC8qIERldGVybWluZSB3aGV0aGVyIHRo
aXMgRlMgaGFzIGtCLWFsaWduZWQgZGF0YS4gKi8KQEAgLTIwMyw5ICsyMDMsOSBAQAogZXh0ZXJu
IHZvaWQgZmF0X3VubG9ja19jcmVhdGlvbih2b2lkKTsKIGV4dGVybiB2b2lkIGZhdF9kYXRlX3Vu
aXgyZG9zKGludCB1bml4X2RhdGUsX191MTYgKnRpbWUsIF9fdTE2ICpkYXRlKTsKIGV4dGVybiBp
bnQgZmF0X19nZXRfZW50cnkoc3RydWN0IGlub2RlICpkaXIsbG9mZl90ICpwb3Msc3RydWN0IGJ1
ZmZlcl9oZWFkICoqYmgsCi0JCQkgc3RydWN0IG1zZG9zX2Rpcl9lbnRyeSAqKmRlLGludCAqaW5v
KTsKKwkJCSBzdHJ1Y3QgbXNkb3NfZGlyX2VudHJ5ICoqZGUsbG9mZl90ICppbm8pOwogc3RhdGlj
IF9faW5saW5lX18gaW50IGZhdF9nZXRfZW50cnkoc3RydWN0IGlub2RlICpkaXIsbG9mZl90ICpw
b3MsCi0JCXN0cnVjdCBidWZmZXJfaGVhZCAqKmJoLHN0cnVjdCBtc2Rvc19kaXJfZW50cnkgKipk
ZSxpbnQgKmlubykKKwkJc3RydWN0IGJ1ZmZlcl9oZWFkICoqYmgsc3RydWN0IG1zZG9zX2Rpcl9l
bnRyeSAqKmRlLGxvZmZfdCAqaW5vKQogewogCS8qIEZhc3Qgc3R1ZmYgZmlyc3QgKi8KIAlpZiAo
KmJoICYmICpkZSAmJgpAQCAtMjE4LDcgKzIxOCw3IEBACiAJcmV0dXJuIGZhdF9fZ2V0X2VudHJ5
KGRpcixwb3MsYmgsZGUsaW5vKTsKIH0KIGV4dGVybiBpbnQgZmF0X3NjYW4oc3RydWN0IGlub2Rl
ICpkaXIsY29uc3QgY2hhciAqbmFtZSxzdHJ1Y3QgYnVmZmVyX2hlYWQgKipyZXNfYmgsCi0JCSAg
ICBzdHJ1Y3QgbXNkb3NfZGlyX2VudHJ5ICoqcmVzX2RlLGludCAqaW5vKTsKKwkJICAgIHN0cnVj
dCBtc2Rvc19kaXJfZW50cnkgKipyZXNfZGUsbG9mZl90ICppbm8pOwogZXh0ZXJuIGludCBmYXRf
cGFyZW50X2lubyhzdHJ1Y3QgaW5vZGUgKmRpcixpbnQgbG9ja2VkKTsKIGV4dGVybiBpbnQgZmF0
X3N1YmRpcnMoc3RydWN0IGlub2RlICpkaXIpOwogdm9pZCBmYXRfY2x1c3RlcnNfZmx1c2goc3Ry
dWN0IHN1cGVyX2Jsb2NrICpzYik7CkBAIC0yNDEsMTAgKzI0MSwxMCBAQAogZXh0ZXJuIHZvaWQg
ZmF0X2NsZWFyX2lub2RlKHN0cnVjdCBpbm9kZSAqaW5vZGUpOwogZXh0ZXJuIHZvaWQgZmF0X2Rl
bGV0ZV9pbm9kZShzdHJ1Y3QgaW5vZGUgKmlub2RlKTsKIGV4dGVybiB2b2lkIGZhdF9wdXRfc3Vw
ZXIoc3RydWN0IHN1cGVyX2Jsb2NrICpzYik7Ci1leHRlcm4gdm9pZCBmYXRfYXR0YWNoKHN0cnVj
dCBpbm9kZSAqaW5vZGUsIGludCBpbm8pOworZXh0ZXJuIHZvaWQgZmF0X2F0dGFjaChzdHJ1Y3Qg
aW5vZGUgKmlub2RlLCBsb2ZmX3QgaW5vKTsKIGV4dGVybiB2b2lkIGZhdF9kZXRhY2goc3RydWN0
IGlub2RlICppbm9kZSk7Ci1leHRlcm4gc3RydWN0IGlub2RlICpmYXRfaWdldChzdHJ1Y3Qgc3Vw
ZXJfYmxvY2sqLGludCk7Ci1leHRlcm4gc3RydWN0IGlub2RlICpmYXRfYnVpbGRfaW5vZGUoc3Ry
dWN0IHN1cGVyX2Jsb2NrKixzdHJ1Y3QgbXNkb3NfZGlyX2VudHJ5KixpbnQsaW50Kik7CitleHRl
cm4gc3RydWN0IGlub2RlICpmYXRfaWdldChzdHJ1Y3Qgc3VwZXJfYmxvY2sqLGxvZmZfdCk7Citl
eHRlcm4gc3RydWN0IGlub2RlICpmYXRfYnVpbGRfaW5vZGUoc3RydWN0IHN1cGVyX2Jsb2NrKixz
dHJ1Y3QgbXNkb3NfZGlyX2VudHJ5Kixsb2ZmX3QsaW50Kik7CiBleHRlcm4gc3RydWN0IHN1cGVy
X2Jsb2NrICpmYXRfcmVhZF9zdXBlcihzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnMsIHZvaWQgKmRhdGEs
IGludCBzaWxlbnQsIHN0cnVjdCBpbm9kZV9vcGVyYXRpb25zICpkaXJfb3BzKTsKIGV4dGVybiB2
b2lkIG1zZG9zX3B1dF9zdXBlcihzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiKTsKIGV4dGVybiBpbnQg
ZmF0X3N0YXRmcyhzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLHN0cnVjdCBzdGF0ZnMgKmJ1ZiwgaW50
KTsKQEAgLTI1OSw3ICsyNTksNyBAQAogZXh0ZXJuIGludCBmYXRfZGlyX2lvY3RsKHN0cnVjdCBp
bm9kZSAqIGlub2RlLCBzdHJ1Y3QgZmlsZSAqIGZpbHAsCiAJCQkgdW5zaWduZWQgaW50IGNtZCwg
dW5zaWduZWQgbG9uZyBhcmcpOwogaW50IGZhdF9hZGRfZW50cmllcyhzdHJ1Y3QgaW5vZGUgKmRp
cixpbnQgc2xvdHMsIHN0cnVjdCBidWZmZXJfaGVhZCAqKmJoLAotCQkgIHN0cnVjdCBtc2Rvc19k
aXJfZW50cnkgKipkZSwgaW50ICppbm8pOworCQkgIHN0cnVjdCBtc2Rvc19kaXJfZW50cnkgKipk
ZSwgbG9mZl90ICppbm8pOwogaW50IGZhdF9kaXJfZW1wdHkoc3RydWN0IGlub2RlICpkaXIpOwog
CiAvKiBmaWxlLmMgKi8KZGlmZiAtdSAtciBsaW51eC5vcmlnL2luY2x1ZGUvbGludXgvbXNkb3Nf
ZnNfaS5oIGxpbnV4L2luY2x1ZGUvbGludXgvbXNkb3NfZnNfaS5oCi0tLSBsaW51eC5vcmlnL2lu
Y2x1ZGUvbGludXgvbXNkb3NfZnNfaS5oCUZyaSBOb3YgIDkgMTg6MTY6NDkgMjAwMQorKysgbGlu
dXgvaW5jbHVkZS9saW51eC9tc2Rvc19mc19pLmgJRnJpIE5vdiAgOSAxODoxNzoyMCAyMDAxCkBA
IC0zMCw3ICszMCw3IEBACiAJaW50IGlfYXR0cnM7CS8qIHVudXNlZCBhdHRyaWJ1dGUgYml0cyAq
LwogCWludCBpX2N0aW1lX21zOwkvKiB1bnVzZWQgY2hhbmdlIHRpbWUgaW4gbWlsbGlzZWNvbmRz
ICovCiAJaW50IGlfYmluYXJ5OwkvKiBmaWxlIGNvbnRhaW5zIG5vbi10ZXh0IGRhdGEgKi8KLQlp
bnQgaV9sb2NhdGlvbjsJLyogb24tZGlzayBwb3NpdGlvbiBvZiBkaXJlY3RvcnkgZW50cnkgb3Ig
MCAqLworCWxvZmZfdCBpX2xvY2F0aW9uOwkvKiBvbi1kaXNrIHBvc2l0aW9uIG9mIGRpcmVjdG9y
eSBlbnRyeSBvciAwICovCiAJc3RydWN0IGlub2RlICppX2ZhdF9pbm9kZTsJLyogc3RydWN0IGlu
b2RlIG9mIHRoaXMgb25lICovCiAJc3RydWN0IGxpc3RfaGVhZCBpX2ZhdF9oYXNoOwkvKiBoYXNo
IGJ5IGlfbG9jYXRpb24gKi8KIAlvZmZfdCBpX2xhc3RfcG9zOy8qIHBvc2l0aW9uIG9mIGxhc3Qg
bG9va3VwICovCg==
--=====================_107777585==_--

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/