Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id ; Thu, 3 Jan 2002 18:42:50 -0500 Received: (majordomo@vger.kernel.org) by vger.kernel.org id ; Thu, 3 Jan 2002 18:42:42 -0500 Received: from smtphost.qualcomm.com ([129.46.64.124]:49072 "EHLO strange.qualcomm.com") by vger.kernel.org with ESMTP id ; Thu, 3 Jan 2002 18:42:30 -0500 Message-Id: <5.1.0.14.0.20020103152205.039f2008@mage.qualcomm.com> X-Mailer: QUALCOMM Windows Eudora Version 5.1 Date: Thu, 03 Jan 2002 15:42:20 -0800 To: Alan.Cox@linux.org From: Vijay Kumar Subject: kernel patch support large fat partitions Cc: linux-kernel@vger.kernel.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=====================_107777585==_" Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org --=====================_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/