From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S263890AbUDPWCt (ORCPT ); Fri, 16 Apr 2004 18:02:49 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S263822AbUDPVuT (ORCPT ); Fri, 16 Apr 2004 17:50:19 -0400 Received: from colino.net ([62.212.100.143]:9969 "EHLO paperstreet.colino.net") by vger.kernel.org with ESMTP id S263854AbUDPVsh (ORCPT ); Fri, 16 Apr 2004 17:48:37 -0400 Date: Fri, 16 Apr 2004 23:48:13 +0200 From: Colin Leroy To: David Brownell Cc: linux-kernel@vger.kernel.org, linux-usb-devel@lists.sourceforge.net Subject: [PATCH] Re: [linux-usb-devel] 2.6.6-rc1: cdc-acm still (differently) broken Message-Id: <20040416234813.0aaa44cf@jack.colino.net> In-Reply-To: <4080297A.1090002@pacbell.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> 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=_Fri__16_Apr_2004_23_48_13_+0200_bQdfUzBbHfw5kSdt" 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=_Fri__16_Apr_2004_23_48_13_+0200_bQdfUzBbHfw5kSdt Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit On 16 Apr 2004 at 11h04, David Brownell wrote: Hi, > It's looking better, but what I'd rather see is code scanning the > CDC descriptors (see "usbnet"). The deal is that there's actually > no guarantee that there's only one data interface, although that > seems to hold true for many current products. Ok... However I don't think i'll find the time to do that right now. So I think I'll take your advice that it's a good place to pause :) > But unless you're interested in finishing a much-needed rewrite > of that cdc-acm probe() code, this might be a good place to stop. > (Or at least pause!) Ok, here is the cosmetic patch following the previous one, then :) HTH, -- Colin --Multipart=_Fri__16_Apr_2004_23_48_13_+0200_bQdfUzBbHfw5kSdt Content-Type: application/octet-stream; name="cdc-acm-cosmetic.patch" Content-Disposition: attachment; filename="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=_Fri__16_Apr_2004_23_48_13_+0200_bQdfUzBbHfw5kSdt--