From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S263776AbUDQKEq (ORCPT ); Sat, 17 Apr 2004 06:04:46 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S263780AbUDQKEp (ORCPT ); Sat, 17 Apr 2004 06:04:45 -0400 Received: from colino.net ([62.212.100.143]:45556 "EHLO paperstreet.colino.net") by vger.kernel.org with ESMTP id S263776AbUDQJyv (ORCPT ); Sat, 17 Apr 2004 05:54:51 -0400 Date: Sat, 17 Apr 2004 11:54:25 +0200 From: Colin Leroy To: David Brownell Cc: linux-kernel@vger.kernel.org, linux-usb-devel@lists.sourceforge.net Subject: Re: [PATCH] Re: [linux-usb-devel] 2.6.6-rc1: cdc-acm still (differently) broken Message-Id: <20040417115425.0b2f0d6a@jack.colino.net> In-Reply-To: <20040416234813.0aaa44cf@jack.colino.net> References: <20040415201117.11524f63@jack.colino.net> <407EDA4A.2070509@pacbell.net> <20040415212334.4a568c5a@jack.colino.net> <407EE9A5.3020305@pacbell.net> <20040416122415.6f532584@jack.colino.net> <4080297A.1090002@pacbell.net> <20040416234813.0aaa44cf@jack.colino.net> Organization: X-Mailer: Sylpheed version 0.9.8claws (GTK+ 2.4.0; powerpc-unknown-linux-gnu) Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="Multipart=_Sat__17_Apr_2004_11_54_25_+0200_QywQ.jxPAZ7/=U5J" Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org This is a multi-part message in MIME format. --Multipart=_Sat__17_Apr_2004_11_54_25_+0200_QywQ.jxPAZ7/=U5J Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit On 16 Apr 2004 at 23h04, Colin Leroy wrote: Hi, > Ok, here is the cosmetic patch following the previous one, then :) Uhm, previous patch is broken. Here are the two again. -- Colin --Multipart=_Sat__17_Apr_2004_11_54_25_+0200_QywQ.jxPAZ7/=U5J Content-Type: application/octet-stream; name="1_cdc-acm.patch" Content-Disposition: attachment; filename="1_cdc-acm.patch" Content-Transfer-Encoding: base64 LS0tIGRyaXZlcnMvdXNiL2NsYXNzL2NkYy1hY20uYy5vcmlnCTIwMDQtMDQtMTUgMjA6MDQ6NDcu MDAwMDAwMDAwICswMjAwCisrKyBkcml2ZXJzL3VzYi9jbGFzcy9jZGMtYWNtLmMJMjAwNC0wNC0x NiAxMjoyMTo0MC4xMjA4NjU1MTIgKzAyMDAKQEAgLTU4MSw0NSArNTgxLDQ3IEBACiAKIAlkZXYg PSBpbnRlcmZhY2VfdG9fdXNiZGV2IChpbnRmKTsKIAotCQljZmFjbSA9IGRldi0+YWN0Y29uZmln OwotCi0JCWZvciAoaiA9IDA7IGogPCBjZmFjbS0+ZGVzYy5iTnVtSW50ZXJmYWNlcyAtIDE7IGor KykgewotCQkgICAgCi0JCQlpZiAodXNiX2ludGVyZmFjZV9jbGFpbWVkKGNmYWNtLT5pbnRlcmZh Y2Vbal0pIHx8Ci0JCQkgICAgdXNiX2ludGVyZmFjZV9jbGFpbWVkKGNmYWNtLT5pbnRlcmZhY2Vb aiArIDFdKSkKLQkJCWNvbnRpbnVlOworCQkJY2ZhY20gPSBkZXYtPmFjdGNvbmZpZzsKKwkKKwkJ CS8qIFdlIGtub3cgd2UncmUgcHJvYmUoKWQgd2l0aCB0aGUgY29udHJvbCBpbnRlcmZhY2UuICov CisJCQlpZmNvbSA9IGludGYtPmN1cl9hbHRzZXR0aW5nOwogCi0JCQkvKiBXZSBrbm93IHdlJ3Jl IHByb2JlKClkIHdpdGggdGhlIGNvbnRyb2wgaW50ZXJmYWNlLgotCQkJICogRklYTUUgQUNNIGRv ZXNuJ3QgZ3VhcmFudGVlIHRoZSBkYXRhIGludGVyZmFjZSBpcworCQkJLyogQUNNIGRvZXNuJ3Qg Z3VhcmFudGVlIHRoZSBkYXRhIGludGVyZmFjZSBpcwogCQkJICogYWRqYWNlbnQgdG8gdGhlIGNv bnRyb2wgaW50ZXJmYWNlLCBvciB0aGF0IGlmIG9uZQotCQkJICogaXMgdGhlcmUgaXQncyBub3Qg Zm9yIGNhbGwgbWFuYWdlbWVudCAuLi4gc28gdXNlCi0JCQkgKiB0aGUgY2RjIHVuaW9uIGRlc2Ny aXB0b3Igd2hlbmV2ZXIgdGhlcmUgaXMgb25lLgorCQkJICogaXMgdGhlcmUgaXQncyBub3QgZm9y IGNhbGwgbWFuYWdlbWVudCAuLi4gc28gZmluZAorCQkJICogaXQKIAkJCSAqLwotCQkJaWZjb20g PSBpbnRmLT5jdXJfYWx0c2V0dGluZzsKLQkJCWlmIChpbnRmID09IGNmYWNtLT5pbnRlcmZhY2Vb al0pIHsKLQkJCQlpZmRhdGEgPSBjZmFjbS0+aW50ZXJmYWNlW2ogKyAxXS0+Y3VyX2FsdHNldHRp bmc7Ci0JCQkJZGF0YSA9IGNmYWNtLT5pbnRlcmZhY2VbaiArIDFdOwotCQkJfSBlbHNlIGlmIChp bnRmID09IGNmYWNtLT5pbnRlcmZhY2VbaiArIDFdKSB7CisJCQlmb3IgKGogPSAwOyBqIDwgY2Zh Y20tPmRlc2MuYk51bUludGVyZmFjZXM7IGorKykgewogCQkJCWlmZGF0YSA9IGNmYWNtLT5pbnRl cmZhY2Vbal0tPmN1cl9hbHRzZXR0aW5nOwogCQkJCWRhdGEgPSBjZmFjbS0+aW50ZXJmYWNlW2pd OwotCQkJfSBlbHNlCi0JCQkJY29udGludWU7Ci0KLQkJCWlmIChpZmRhdGEtPmRlc2MuYkludGVy ZmFjZUNsYXNzICE9IDEwIHx8IGlmZGF0YS0+ZGVzYy5iTnVtRW5kcG9pbnRzIDwgMikKLQkJCQlj b250aW51ZTsKLQotCQkJZXBjdHJsID0gJmlmY29tLT5lbmRwb2ludFswXS5kZXNjOwotCQkJZXBy ZWFkID0gJmlmZGF0YS0+ZW5kcG9pbnRbMF0uZGVzYzsKLQkJCWVwd3JpdGUgPSAmaWZkYXRhLT5l bmRwb2ludFsxXS5kZXNjOwotCi0JCQlpZiAoKGVwY3RybC0+YkVuZHBvaW50QWRkcmVzcyAmIDB4 ODApICE9IDB4ODAgfHwgKGVwY3RybC0+Ym1BdHRyaWJ1dGVzICYgMykgIT0gMyB8fAotCQkJICAg KGVwcmVhZC0+Ym1BdHRyaWJ1dGVzICYgMykgIT0gMiB8fCAoZXB3cml0ZS0+Ym1BdHRyaWJ1dGVz ICYgMykgIT0gMiB8fAotCQkJICAgKChlcHJlYWQtPmJFbmRwb2ludEFkZHJlc3MgJiAweDgwKSBe IChlcHdyaXRlLT5iRW5kcG9pbnRBZGRyZXNzICYgMHg4MCkpICE9IDB4ODApCi0JCQkJY29udGlu dWU7Ci0KLQkJCWlmICgoZXByZWFkLT5iRW5kcG9pbnRBZGRyZXNzICYgMHg4MCkgIT0gMHg4MCkg ewotCQkJCWVwcmVhZCA9ICZpZmRhdGEtPmVuZHBvaW50WzFdLmRlc2M7Ci0JCQkJZXB3cml0ZSA9 ICZpZmRhdGEtPmVuZHBvaW50WzBdLmRlc2M7CisKKwkJCQlpZiAoaWZkYXRhLT5kZXNjLmJJbnRl cmZhY2VDbGFzcyA9PSAxMCAmJgorCQkJCSAgICBpZmRhdGEtPmRlc2MuYk51bUVuZHBvaW50cyA9 PSAyKSB7CisJCQkJCWVwY3RybCA9ICZpZmNvbS0+ZW5kcG9pbnRbMF0uZGVzYzsKKwkJCQkJZXBy ZWFkID0gJmlmZGF0YS0+ZW5kcG9pbnRbMF0uZGVzYzsKKwkJCQkJZXB3cml0ZSA9ICZpZmRhdGEt PmVuZHBvaW50WzFdLmRlc2M7CisKKwkJCQkJaWYgKChlcGN0cmwtPmJFbmRwb2ludEFkZHJlc3Mg JiAweDgwKSAhPSAweDgwIHx8CisJCQkJCSAgICAoZXBjdHJsLT5ibUF0dHJpYnV0ZXMgJiAzKSAh PSAzIHx8CisJCQkJCSAgICAoZXByZWFkLT5ibUF0dHJpYnV0ZXMgJiAzKSAhPSAyIHx8IAorCQkJ CQkgICAgKGVwd3JpdGUtPmJtQXR0cmlidXRlcyAmIDMpICE9IDIgfHwKKwkJCQkJICAgICgoZXBy ZWFkLT5iRW5kcG9pbnRBZGRyZXNzICYgMHg4MCkgXiAoZXB3cml0ZS0+YkVuZHBvaW50QWRkcmVz cyAmIDB4ODApKSAhPSAweDgwKSAKKwkJCQkJCWdvdG8gbmV4dF9pbnRlcmZhY2U7CisKKwkJCQkJ ZGJnKCJmb3VuZCBkYXRhIGludGVyZmFjZSBhdCAlZFxuIiwgaik7CisJCQkJCWJyZWFrOworCQkJ CX0gZWxzZSB7CituZXh0X2ludGVyZmFjZToKKwkJCQkJaWZkYXRhID0gTlVMTDsKKwkJCQkJZGF0 YSA9IE5VTEw7CisJCQkJfQorCQkJfQorCisJCQkvKiB0aGVyZSdzIGJlZW4gYSBwcm9ibGVtICov CisJCQlpZiAoIWlmZGF0YSkgeworCQkJCWRiZygiaW50ZXJmYWNlIG5vdCBmb3VuZCAoJXApXG4i LCBpZmRhdGEpOworCQkJCXJldHVybiAtRU5PREVWOworCiAJCQl9CiAKIAkJCWZvciAobWlub3Ig PSAwOyBtaW5vciA8IEFDTV9UVFlfTUlOT1JTICYmIGFjbV90YWJsZVttaW5vcl07IG1pbm9yKysp OwpAQCAtNjk2LDE2ICs2OTgsMjEgQEAKIAkJCWFjbS0+bGluZS5kYXRhYml0cyA9IDg7CiAJCQlh Y21fc2V0X2xpbmUoYWNtLCAmYWNtLT5saW5lKTsKIAotCQkJdXNiX2RyaXZlcl9jbGFpbV9pbnRl cmZhY2UoJmFjbV9kcml2ZXIsIGRhdGEsIGFjbSk7CisJCQlpZiAoIChqID0gdXNiX2RyaXZlcl9j bGFpbV9pbnRlcmZhY2UoJmFjbV9kcml2ZXIsIGRhdGEsIGFjbSkpICE9IDApIHsKKwkJCQllcnIo ImNsYWltIGZhaWxlZCIpOworCQkJCXVzYl9mcmVlX3VyYihhY20tPmN0cmx1cmIpOworCQkJCXVz Yl9mcmVlX3VyYihhY20tPnJlYWR1cmIpOworCQkJCXVzYl9mcmVlX3VyYihhY20tPndyaXRldXJi KTsKKwkJCQlrZnJlZShhY20pOworCQkJCWtmcmVlKGJ1Zik7CisJCQkJcmV0dXJuIGo7CisJCQl9 IAogCiAJCQl0dHlfcmVnaXN0ZXJfZGV2aWNlKGFjbV90dHlfZHJpdmVyLCBtaW5vciwgJmludGYt PmRldik7CiAKIAkJCWFjbV90YWJsZVttaW5vcl0gPSBhY207CiAJCQl1c2Jfc2V0X2ludGZkYXRh IChpbnRmLCBhY20pOwogCQkJcmV0dXJuIDA7Ci0JCX0KLQotCXJldHVybiAtRUlPOwogfQogCiBz dGF0aWMgdm9pZCBhY21fZGlzY29ubmVjdChzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqaW50ZikK --Multipart=_Sat__17_Apr_2004_11_54_25_+0200_QywQ.jxPAZ7/=U5J Content-Type: application/octet-stream; name="2_cdc-acm-cosmetic.patch" Content-Disposition: attachment; filename="2_cdc-acm-cosmetic.patch" Content-Transfer-Encoding: base64 LS0tIGRyaXZlcnMvdXNiL2NsYXNzL2NkYy1hY20uYy5uZXcJMjAwNC0wNC0xNiAyMzo0NDoxNC4y MDgyMzQ5NzYgKzAyMDAKKysrIGRyaXZlcnMvdXNiL2NsYXNzL2NkYy1hY20uYwkyMDA0LTA0LTE2 IDIzOjQ0OjQ1LjQ0MjQ4NjY0OCArMDIwMApAQCAtNTgxLDEzOCArNTgxLDEzOCBAQAogCiAJZGV2 ID0gaW50ZXJmYWNlX3RvX3VzYmRldiAoaW50Zik7CiAKLQkJCWNmYWNtID0gZGV2LT5hY3Rjb25m aWc7Ci0JCi0JCQkvKiBXZSBrbm93IHdlJ3JlIHByb2JlKClkIHdpdGggdGhlIGNvbnRyb2wgaW50 ZXJmYWNlLiAqLwotCQkJaWZjb20gPSBpbnRmLT5jdXJfYWx0c2V0dGluZzsKLQotCQkJLyogQUNN IGRvZXNuJ3QgZ3VhcmFudGVlIHRoZSBkYXRhIGludGVyZmFjZSBpcwotCQkJICogYWRqYWNlbnQg dG8gdGhlIGNvbnRyb2wgaW50ZXJmYWNlLCBvciB0aGF0IGlmIG9uZQotCQkJICogaXMgdGhlcmUg aXQncyBub3QgZm9yIGNhbGwgbWFuYWdlbWVudCAuLi4gc28gZmluZAotCQkJICogaXQKLQkJCSAq LwotCQkJZm9yIChqID0gMDsgaiA8IGNmYWNtLT5kZXNjLmJOdW1JbnRlcmZhY2VzOyBqKyspIHsK LQkJCQlpZmRhdGEgPSBjZmFjbS0+aW50ZXJmYWNlW2pdLT5jdXJfYWx0c2V0dGluZzsKLQkJCQlk YXRhID0gY2ZhY20tPmludGVyZmFjZVtqXTsKLQotCQkJCWlmIChpZmRhdGEtPmRlc2MuYkludGVy ZmFjZUNsYXNzID09IDEwICYmCi0JCQkJICAgIGlmZGF0YS0+ZGVzYy5iTnVtRW5kcG9pbnRzID09 IDIpIHsKLQkJCQkJZXBjdHJsID0gJmlmY29tLT5lbmRwb2ludFswXS5kZXNjOwotCQkJCQllcHJl YWQgPSAmaWZkYXRhLT5lbmRwb2ludFswXS5kZXNjOwotCQkJCQllcHdyaXRlID0gJmlmZGF0YS0+ ZW5kcG9pbnRbMV0uZGVzYzsKLQotCQkJCQlpZiAoKGVwY3RybC0+YkVuZHBvaW50QWRkcmVzcyAm IDB4ODApICE9IDB4ODAgfHwKLQkJCQkJICAgIChlcGN0cmwtPmJtQXR0cmlidXRlcyAmIDMpICE9 IDMgfHwKLQkJCQkJICAgIChlcHJlYWQtPmJtQXR0cmlidXRlcyAmIDMpICE9IDIgfHwgCi0JCQkJ CSAgICAoZXB3cml0ZS0+Ym1BdHRyaWJ1dGVzICYgMykgIT0gMiB8fAotCQkJCQkgICAgKChlcHJl YWQtPmJFbmRwb2ludEFkZHJlc3MgJiAweDgwKSBeIChlcHdyaXRlLT5iRW5kcG9pbnRBZGRyZXNz ICYgMHg4MCkpICE9IDB4ODApIAotCQkJCQkJZ290byBuZXh0X2ludGVyZmFjZTsKLQotCQkJCQlk YmcoImZvdW5kIGRhdGEgaW50ZXJmYWNlIGF0ICVkXG4iLCBqKTsKLQkJCQkJYnJlYWs7Ci0JCQkJ fSBlbHNlIHsKKwljZmFjbSA9IGRldi0+YWN0Y29uZmlnOworCisJLyogV2Uga25vdyB3ZSdyZSBw cm9iZSgpZCB3aXRoIHRoZSBjb250cm9sIGludGVyZmFjZS4gKi8KKwlpZmNvbSA9IGludGYtPmN1 cl9hbHRzZXR0aW5nOworCisJLyogQUNNIGRvZXNuJ3QgZ3VhcmFudGVlIHRoZSBkYXRhIGludGVy ZmFjZSBpcworCSAqIGFkamFjZW50IHRvIHRoZSBjb250cm9sIGludGVyZmFjZSwgb3IgdGhhdCBp ZiBvbmUKKwkgKiBpcyB0aGVyZSBpdCdzIG5vdCBmb3IgY2FsbCBtYW5hZ2VtZW50IC4uLiBzbyBm aW5kCisJICogaXQKKwkgKi8KKwlmb3IgKGogPSAwOyBqIDwgY2ZhY20tPmRlc2MuYk51bUludGVy ZmFjZXM7IGorKykgeworCQlpZmRhdGEgPSBjZmFjbS0+aW50ZXJmYWNlW2pdLT5jdXJfYWx0c2V0 dGluZzsKKwkJZGF0YSA9IGNmYWNtLT5pbnRlcmZhY2Vbal07CisKKwkJaWYgKGlmZGF0YS0+ZGVz Yy5iSW50ZXJmYWNlQ2xhc3MgPT0gMTAgJiYKKwkJICAgIGlmZGF0YS0+ZGVzYy5iTnVtRW5kcG9p bnRzID09IDIpIHsKKwkJCWVwY3RybCA9ICZpZmNvbS0+ZW5kcG9pbnRbMF0uZGVzYzsKKwkJCWVw cmVhZCA9ICZpZmRhdGEtPmVuZHBvaW50WzBdLmRlc2M7CisJCQllcHdyaXRlID0gJmlmZGF0YS0+ ZW5kcG9pbnRbMV0uZGVzYzsKKworCQkJaWYgKChlcGN0cmwtPmJFbmRwb2ludEFkZHJlc3MgJiAw eDgwKSAhPSAweDgwIHx8CisJCQkgICAgKGVwY3RybC0+Ym1BdHRyaWJ1dGVzICYgMykgIT0gMyB8 fAorCQkJICAgIChlcHJlYWQtPmJtQXR0cmlidXRlcyAmIDMpICE9IDIgfHwgCisJCQkgICAgKGVw d3JpdGUtPmJtQXR0cmlidXRlcyAmIDMpICE9IDIgfHwKKwkJCSAgICAoKGVwcmVhZC0+YkVuZHBv aW50QWRkcmVzcyAmIDB4ODApIF4gKGVwd3JpdGUtPmJFbmRwb2ludEFkZHJlc3MgJiAweDgwKSkg IT0gMHg4MCkgCisJCQkJZ290byBuZXh0X2ludGVyZmFjZTsKKworCQkJZGJnKCJmb3VuZCBkYXRh IGludGVyZmFjZSBhdCAlZFxuIiwgaik7CisJCQlicmVhazsKKwkJfSBlbHNlIHsKIG5leHRfaW50 ZXJmYWNlOgotCQkJCQlpZmRhdGEgPSBOVUxMOwotCQkJCQlkYXRhID0gTlVMTDsKLQkJCQl9Ci0J CQl9Ci0KLQkJCS8qIHRoZXJlJ3MgYmVlbiBhIHByb2JsZW0gKi8KLQkJCWlmICghaWZkYXRhKSB7 Ci0JCQkJZGJnKCJpbnRlcmZhY2Ugbm90IGZvdW5kICglcClcbiIsIGlmZGF0YSk7Ci0JCQkJcmV0 dXJuIC1FTk9ERVY7Ci0KLQkJCX0KLQotCQkJZm9yIChtaW5vciA9IDA7IG1pbm9yIDwgQUNNX1RU WV9NSU5PUlMgJiYgYWNtX3RhYmxlW21pbm9yXTsgbWlub3IrKyk7Ci0JCQlpZiAoYWNtX3RhYmxl W21pbm9yXSkgewotCQkJCWVycigibm8gbW9yZSBmcmVlIGFjbSBkZXZpY2VzIik7Ci0JCQkJcmV0 dXJuIC1FTk9ERVY7Ci0JCQl9Ci0KLQkJCWlmICghKGFjbSA9IGttYWxsb2Moc2l6ZW9mKHN0cnVj dCBhY20pLCBHRlBfS0VSTkVMKSkpIHsKLQkJCQllcnIoIm91dCBvZiBtZW1vcnkiKTsKLQkJCQly ZXR1cm4gLUVOT01FTTsKLQkJCX0KLQkJCW1lbXNldChhY20sIDAsIHNpemVvZihzdHJ1Y3QgYWNt KSk7Ci0KLQkJCWN0cmxzaXplID0gZXBjdHJsLT53TWF4UGFja2V0U2l6ZTsKLQkJCXJlYWRzaXpl ID0gZXByZWFkLT53TWF4UGFja2V0U2l6ZTsKLQkJCWFjbS0+d3JpdGVzaXplID0gZXB3cml0ZS0+ d01heFBhY2tldFNpemU7Ci0JCQlhY20tPmNvbnRyb2wgPSBpbnRmOwotCQkJYWNtLT5kYXRhID0g ZGF0YTsKLQkJCWFjbS0+bWlub3IgPSBtaW5vcjsKLQkJCWFjbS0+ZGV2ID0gZGV2OwotCi0JCQlh Y20tPmJoLmZ1bmMgPSBhY21fcnhfdGFza2xldDsKLQkJCWFjbS0+YmguZGF0YSA9ICh1bnNpZ25l ZCBsb25nKSBhY207Ci0JCQlJTklUX1dPUksoJmFjbS0+d29yaywgYWNtX3NvZnRpbnQsIGFjbSk7 Ci0KLQkJCWlmICghKGJ1ZiA9IGttYWxsb2MoY3RybHNpemUgKyByZWFkc2l6ZSArIGFjbS0+d3Jp dGVzaXplLCBHRlBfS0VSTkVMKSkpIHsKLQkJCQllcnIoIm91dCBvZiBtZW1vcnkiKTsKLQkJCQlr ZnJlZShhY20pOwotCQkJCXJldHVybiAtRU5PTUVNOwotCQkJfQotCi0JCQlhY20tPmN0cmx1cmIg PSB1c2JfYWxsb2NfdXJiKDAsIEdGUF9LRVJORUwpOwotCQkJaWYgKCFhY20tPmN0cmx1cmIpIHsK LQkJCQllcnIoIm91dCBvZiBtZW1vcnkiKTsKLQkJCQlrZnJlZShhY20pOwotCQkJCWtmcmVlKGJ1 Zik7Ci0JCQkJcmV0dXJuIC1FTk9NRU07Ci0JCQl9Ci0JCQlhY20tPnJlYWR1cmIgPSB1c2JfYWxs b2NfdXJiKDAsIEdGUF9LRVJORUwpOwotCQkJaWYgKCFhY20tPnJlYWR1cmIpIHsKLQkJCQllcnIo Im91dCBvZiBtZW1vcnkiKTsKLQkJCQl1c2JfZnJlZV91cmIoYWNtLT5jdHJsdXJiKTsKLQkJCQlr ZnJlZShhY20pOwotCQkJCWtmcmVlKGJ1Zik7Ci0JCQkJcmV0dXJuIC1FTk9NRU07Ci0JCQl9Ci0J CQlhY20tPndyaXRldXJiID0gdXNiX2FsbG9jX3VyYigwLCBHRlBfS0VSTkVMKTsKLQkJCWlmICgh YWNtLT53cml0ZXVyYikgewotCQkJCWVycigib3V0IG9mIG1lbW9yeSIpOwotCQkJCXVzYl9mcmVl X3VyYihhY20tPnJlYWR1cmIpOwotCQkJCXVzYl9mcmVlX3VyYihhY20tPmN0cmx1cmIpOwotCQkJ CWtmcmVlKGFjbSk7Ci0JCQkJa2ZyZWUoYnVmKTsKLQkJCQlyZXR1cm4gLUVOT01FTTsKLQkJCX0K LQotCQkJdXNiX2ZpbGxfaW50X3VyYihhY20tPmN0cmx1cmIsIGRldiwgdXNiX3JjdmludHBpcGUo ZGV2LCBlcGN0cmwtPmJFbmRwb2ludEFkZHJlc3MpLAotCQkJCWJ1ZiwgY3RybHNpemUsIGFjbV9j dHJsX2lycSwgYWNtLCBlcGN0cmwtPmJJbnRlcnZhbCk7Ci0KLQkJCXVzYl9maWxsX2J1bGtfdXJi KGFjbS0+cmVhZHVyYiwgZGV2LCB1c2JfcmN2YnVsa3BpcGUoZGV2LCBlcHJlYWQtPmJFbmRwb2lu dEFkZHJlc3MpLAotCQkJCWJ1ZiArPSBjdHJsc2l6ZSwgcmVhZHNpemUsIGFjbV9yZWFkX2J1bGss IGFjbSk7Ci0JCQlhY20tPnJlYWR1cmItPnRyYW5zZmVyX2ZsYWdzIHw9IFVSQl9OT19GU0JSOwot Ci0JCQl1c2JfZmlsbF9idWxrX3VyYihhY20tPndyaXRldXJiLCBkZXYsIHVzYl9zbmRidWxrcGlw ZShkZXYsIGVwd3JpdGUtPmJFbmRwb2ludEFkZHJlc3MpLAotCQkJCWJ1ZiArPSByZWFkc2l6ZSwg YWNtLT53cml0ZXNpemUsIGFjbV93cml0ZV9idWxrLCBhY20pOwotCQkJYWNtLT53cml0ZXVyYi0+ dHJhbnNmZXJfZmxhZ3MgfD0gVVJCX05PX0ZTQlI7Ci0KLQkJCWRldl9pbmZvKCZpbnRmLT5kZXYs ICJ0dHlBQ00lZDogVVNCIEFDTSBkZXZpY2UiLCBtaW5vcik7Ci0KLQkJCWFjbV9zZXRfY29udHJv bChhY20sIGFjbS0+Y3RybG91dCk7Ci0KLQkJCWFjbS0+bGluZS5zcGVlZCA9IGNwdV90b19sZTMy KDk2MDApOwotCQkJYWNtLT5saW5lLmRhdGFiaXRzID0gODsKLQkJCWFjbV9zZXRfbGluZShhY20s ICZhY20tPmxpbmUpOwotCi0JCQlpZiAoIChqID0gdXNiX2RyaXZlcl9jbGFpbV9pbnRlcmZhY2Uo JmFjbV9kcml2ZXIsIGRhdGEsIGFjbSkpICE9IDApIHsKLQkJCQllcnIoImNsYWltIGZhaWxlZCIp OwotCQkJCXVzYl9mcmVlX3VyYihhY20tPmN0cmx1cmIpOwotCQkJCXVzYl9mcmVlX3VyYihhY20t PnJlYWR1cmIpOwotCQkJCXVzYl9mcmVlX3VyYihhY20tPndyaXRldXJiKTsKLQkJCQlrZnJlZShh Y20pOwotCQkJCWtmcmVlKGJ1Zik7Ci0JCQkJcmV0dXJuIGo7Ci0JCQl9IAotCi0JCQl0dHlfcmVn aXN0ZXJfZGV2aWNlKGFjbV90dHlfZHJpdmVyLCBtaW5vciwgJmludGYtPmRldik7Ci0KLQkJCWFj bV90YWJsZVttaW5vcl0gPSBhY207Ci0JCQl1c2Jfc2V0X2ludGZkYXRhIChpbnRmLCBhY20pOwot CQkJcmV0dXJuIDA7CisJCQlpZmRhdGEgPSBOVUxMOworCQkJZGF0YSA9IE5VTEw7CisJCX0KKwl9 CisKKwkvKiB0aGVyZSdzIGJlZW4gYSBwcm9ibGVtICovCisJaWYgKCFpZmRhdGEpIHsKKwkJZGJn KCJpbnRlcmZhY2Ugbm90IGZvdW5kICglcClcbiIsIGlmZGF0YSk7CisJCXJldHVybiAtRU5PREVW OworCisJfQorCisJZm9yIChtaW5vciA9IDA7IG1pbm9yIDwgQUNNX1RUWV9NSU5PUlMgJiYgYWNt X3RhYmxlW21pbm9yXTsgbWlub3IrKyk7CisJaWYgKGFjbV90YWJsZVttaW5vcl0pIHsKKwkJZXJy KCJubyBtb3JlIGZyZWUgYWNtIGRldmljZXMiKTsKKwkJcmV0dXJuIC1FTk9ERVY7CisJfQorCisJ aWYgKCEoYWNtID0ga21hbGxvYyhzaXplb2Yoc3RydWN0IGFjbSksIEdGUF9LRVJORUwpKSkgewor CQllcnIoIm91dCBvZiBtZW1vcnkiKTsKKwkJcmV0dXJuIC1FTk9NRU07CisJfQorCW1lbXNldChh Y20sIDAsIHNpemVvZihzdHJ1Y3QgYWNtKSk7CisKKwljdHJsc2l6ZSA9IGVwY3RybC0+d01heFBh Y2tldFNpemU7CisJcmVhZHNpemUgPSBlcHJlYWQtPndNYXhQYWNrZXRTaXplOworCWFjbS0+d3Jp dGVzaXplID0gZXB3cml0ZS0+d01heFBhY2tldFNpemU7CisJYWNtLT5jb250cm9sID0gaW50ZjsK KwlhY20tPmRhdGEgPSBkYXRhOworCWFjbS0+bWlub3IgPSBtaW5vcjsKKwlhY20tPmRldiA9IGRl djsKKworCWFjbS0+YmguZnVuYyA9IGFjbV9yeF90YXNrbGV0OworCWFjbS0+YmguZGF0YSA9ICh1 bnNpZ25lZCBsb25nKSBhY207CisJSU5JVF9XT1JLKCZhY20tPndvcmssIGFjbV9zb2Z0aW50LCBh Y20pOworCisJaWYgKCEoYnVmID0ga21hbGxvYyhjdHJsc2l6ZSArIHJlYWRzaXplICsgYWNtLT53 cml0ZXNpemUsIEdGUF9LRVJORUwpKSkgeworCQllcnIoIm91dCBvZiBtZW1vcnkiKTsKKwkJa2Zy ZWUoYWNtKTsKKwkJcmV0dXJuIC1FTk9NRU07CisJfQorCisJYWNtLT5jdHJsdXJiID0gdXNiX2Fs bG9jX3VyYigwLCBHRlBfS0VSTkVMKTsKKwlpZiAoIWFjbS0+Y3RybHVyYikgeworCQllcnIoIm91 dCBvZiBtZW1vcnkiKTsKKwkJa2ZyZWUoYWNtKTsKKwkJa2ZyZWUoYnVmKTsKKwkJcmV0dXJuIC1F Tk9NRU07CisJfQorCWFjbS0+cmVhZHVyYiA9IHVzYl9hbGxvY191cmIoMCwgR0ZQX0tFUk5FTCk7 CisJaWYgKCFhY20tPnJlYWR1cmIpIHsKKwkJZXJyKCJvdXQgb2YgbWVtb3J5Iik7CisJCXVzYl9m cmVlX3VyYihhY20tPmN0cmx1cmIpOworCQlrZnJlZShhY20pOworCQlrZnJlZShidWYpOworCQly ZXR1cm4gLUVOT01FTTsKKwl9CisJYWNtLT53cml0ZXVyYiA9IHVzYl9hbGxvY191cmIoMCwgR0ZQ X0tFUk5FTCk7CisJaWYgKCFhY20tPndyaXRldXJiKSB7CisJCWVycigib3V0IG9mIG1lbW9yeSIp OworCQl1c2JfZnJlZV91cmIoYWNtLT5yZWFkdXJiKTsKKwkJdXNiX2ZyZWVfdXJiKGFjbS0+Y3Ry bHVyYik7CisJCWtmcmVlKGFjbSk7CisJCWtmcmVlKGJ1Zik7CisJCXJldHVybiAtRU5PTUVNOwor CX0KKworCXVzYl9maWxsX2ludF91cmIoYWNtLT5jdHJsdXJiLCBkZXYsIHVzYl9yY3ZpbnRwaXBl KGRldiwgZXBjdHJsLT5iRW5kcG9pbnRBZGRyZXNzKSwKKwkJYnVmLCBjdHJsc2l6ZSwgYWNtX2N0 cmxfaXJxLCBhY20sIGVwY3RybC0+YkludGVydmFsKTsKKworCXVzYl9maWxsX2J1bGtfdXJiKGFj bS0+cmVhZHVyYiwgZGV2LCB1c2JfcmN2YnVsa3BpcGUoZGV2LCBlcHJlYWQtPmJFbmRwb2ludEFk ZHJlc3MpLAorCQlidWYgKz0gY3RybHNpemUsIHJlYWRzaXplLCBhY21fcmVhZF9idWxrLCBhY20p OworCWFjbS0+cmVhZHVyYi0+dHJhbnNmZXJfZmxhZ3MgfD0gVVJCX05PX0ZTQlI7CisKKwl1c2Jf ZmlsbF9idWxrX3VyYihhY20tPndyaXRldXJiLCBkZXYsIHVzYl9zbmRidWxrcGlwZShkZXYsIGVw d3JpdGUtPmJFbmRwb2ludEFkZHJlc3MpLAorCQlidWYgKz0gcmVhZHNpemUsIGFjbS0+d3JpdGVz aXplLCBhY21fd3JpdGVfYnVsaywgYWNtKTsKKwlhY20tPndyaXRldXJiLT50cmFuc2Zlcl9mbGFn cyB8PSBVUkJfTk9fRlNCUjsKKworCWRldl9pbmZvKCZpbnRmLT5kZXYsICJ0dHlBQ00lZDogVVNC IEFDTSBkZXZpY2UiLCBtaW5vcik7CisKKwlhY21fc2V0X2NvbnRyb2woYWNtLCBhY20tPmN0cmxv dXQpOworCisJYWNtLT5saW5lLnNwZWVkID0gY3B1X3RvX2xlMzIoOTYwMCk7CisJYWNtLT5saW5l LmRhdGFiaXRzID0gODsKKwlhY21fc2V0X2xpbmUoYWNtLCAmYWNtLT5saW5lKTsKKworCWlmICgg KGogPSB1c2JfZHJpdmVyX2NsYWltX2ludGVyZmFjZSgmYWNtX2RyaXZlciwgZGF0YSwgYWNtKSkg IT0gMCkgeworCQllcnIoImNsYWltIGZhaWxlZCIpOworCQl1c2JfZnJlZV91cmIoYWNtLT5jdHJs dXJiKTsKKwkJdXNiX2ZyZWVfdXJiKGFjbS0+cmVhZHVyYik7CisJCXVzYl9mcmVlX3VyYihhY20t PndyaXRldXJiKTsKKwkJa2ZyZWUoYWNtKTsKKwkJa2ZyZWUoYnVmKTsKKwkJcmV0dXJuIGo7CisJ fSAKKworCXR0eV9yZWdpc3Rlcl9kZXZpY2UoYWNtX3R0eV9kcml2ZXIsIG1pbm9yLCAmaW50Zi0+ ZGV2KTsKKworCWFjbV90YWJsZVttaW5vcl0gPSBhY207CisJdXNiX3NldF9pbnRmZGF0YSAoaW50 ZiwgYWNtKTsKKwlyZXR1cm4gMDsKIH0KIAogc3RhdGljIHZvaWQgYWNtX2Rpc2Nvbm5lY3Qoc3Ry dWN0IHVzYl9pbnRlcmZhY2UgKmludGYpCg== --Multipart=_Sat__17_Apr_2004_11_54_25_+0200_QywQ.jxPAZ7/=U5J--