From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 78645 invoked by alias); 8 Jan 2016 08:53:24 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Received: (qmail 78633 invoked by uid 89); 8 Jan 2016 08:53:23 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-1.6 required=5.0 tests=AWL,BAYES_00,RP_MATCHES_RCVD,SPF_PASS autolearn=ham version=3.3.2 spammy=Dwarf, CIE, augmentation, Hx-spam-relays-external:sk:nasmtp0 X-HELO: SJOEDG01.corp.atmel.com Received: from nasmtp02.atmel.com (HELO SJOEDG01.corp.atmel.com) (204.2.163.16) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES128-SHA encrypted) ESMTPS; Fri, 08 Jan 2016 08:53:22 +0000 Received: from apsmtp01.atmel.com (10.168.254.30) by sjoedg01.corp.atmel.com (10.64.253.30) with Microsoft SMTP Server (TLS) id 14.3.235.1; Fri, 8 Jan 2016 01:00:56 -0800 Received: from PENCHT01.corp.atmel.com (10.168.5.161) by apsmtp01.corp.atmel.com (10.168.254.30) with Microsoft SMTP Server (TLS) id 14.3.235.1; Fri, 8 Jan 2016 16:53:47 +0800 Received: from penmbx02.corp.atmel.com ([fe80::b4e4:e0f6:b17c:e55f]) by PENCHT01.corp.atmel.com ([fe80::95df:d3d0:4452:28e3%12]) with mapi id 14.03.0235.001; Fri, 8 Jan 2016 16:52:34 +0800 From: "Sivanupandi, Pitchumani" To: "brobecker@adacore.com" , Pedro Alves CC: "troth@openavr.org" , "gdb-patches@sourceware.org" Subject: [patch] [v2] Enable dwarf unwind for AVR target Date: Fri, 08 Jan 2016 08:53:00 -0000 Message-ID: Content-Type: multipart/mixed; boundary="_002_CAC140656783604CABA6AE60C2A6D5A4CA3B7268penmbx02corpatm_" MIME-Version: 1.0 X-SW-Source: 2016-01/txt/msg00125.txt.bz2 --_002_CAC140656783604CABA6AE60C2A6D5A4CA3B7268penmbx02corpatm_ Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Content-length: 2771 Previous patch and discussion is here: https://sourceware.org/ml/gdb-patches/2016-01/msg00027.html Test case: step over on function call statements (e.g. break.exp) Need for dwarf unwind: Current AVR frame unwind analyzes only the prologue and stack unwind becomes unreliable. CFA info from dwarf debug information can be used to unwind the stack pointer and PC reliably. Attached patch (updated, v2) enables the dwarf unwinder for avr target. Fix: Dwarf debug info generated by avr-gcc denotes the return address by register 36 which is not an actual register. e.g. .debug_frame (--snip--) 00000000 00000010 ffffffff CIE Version: 1 Augmentation: "" Code alignment factor: 2 Data alignment factor: -1 Return address column: 36 DW_CFA_def_cfa: r32 ofs 3 DW_CFA_offset: r36 at cfa-2 (--snip--) The fix is to add a pseudo register (36 - AVR_DWARF2_PC_REGNUM/LR) to gdb to map return address register. Register name is "LR" (link register). When dw= arf frame unwind asks for PC, target function will read return address value fr= om AVR_DWARF2_PC_REGNUM's CFA address. Target function avr_dwarf2_prev_register implementation is similar to exist= ing avr_frame_prev_register function. Note: * AVR_DWARF2_PC_REGNUM is meant only to unwind PC. Also we can't expect sta= ck at all times (e.g. startup code) to read/write into that pseudo register. S= o, the pseudo register read will return that register unavailable and write wi= ll not do anything. * Added extern function dwarf2_frame_addr to dwarf2-frame.c to find the fra= me address for argument register from dwarf frame cache. * Dwarf2 address size set to 4 (Ref: DWARF2_ADDR_SIZE from avr-gcc). Ran GDB regression tests with Atmel internal simulator (atmega2560). No new regressions found. Is this patch OK? Regards, Pitchumani gdb/ChangeLog * avr-tdep.c: Include dwarf2-frame.h (enum): Add new pseudo register AVR_DWARF2_PC_REGNUM (36). Update number of pseudo registers (AVR_NUM_PSEUDO_REGS). (avr_register_name): Add LR as register name for new pseudo register. (avr_register_type): return pc type for new register. (avr_pseudo_register_read): return that register unavailable for new pseudo register. (avr_pseudo_register_write): do nothing as new pseudo register is read-on= ly. (avr_dwarf2_prev_register): New function to unwind prev register. (avr_dwarf_reg_to_regnum): Allow all valid pseudo registers. (avr_dwarf2_frame_init_reg): Initialize pseudo registers handler. (avr_gdbarch_init): Set dwarf2 address size. Set register state init function. Add dwarf2 unwinders to the unwinders list. * dwarf2-frame.c (dwarf2_frame_addr): New function that returns CFA for argument register. * dwarf2-frame.h: Add prototype for new function. --_002_CAC140656783604CABA6AE60C2A6D5A4CA3B7268penmbx02corpatm_ Content-Type: application/octet-stream; name="avr-enable-dwarf-unwind-v2.patch" Content-Description: avr-enable-dwarf-unwind-v2.patch Content-Disposition: attachment; filename="avr-enable-dwarf-unwind-v2.patch"; size=6412; creation-date="Fri, 08 Jan 2016 07:11:55 GMT"; modification-date="Fri, 08 Jan 2016 08:48:30 GMT" Content-Transfer-Encoding: base64 Content-length: 8695 ZGlmZiAtLWdpdCBhL2dkYi9hdnItdGRlcC5jIGIvZ2RiL2F2ci10ZGVwLmMK aW5kZXggY2NjOGI0NS4uZmFhNmE3NyAxMDA2NDQKLS0tIGEvZ2RiL2F2ci10 ZGVwLmMKKysrIGIvZ2RiL2F2ci10ZGVwLmMKQEAgLTI5LDYgKzI5LDcgQEAK ICNpbmNsdWRlICJ0cmFkLWZyYW1lLmgiCiAjaW5jbHVkZSAiZ2RiY21kLmgi CiAjaW5jbHVkZSAiZ2RiY29yZS5oIgorI2luY2x1ZGUgImR3YXJmMi1mcmFt ZS5oIgogI2luY2x1ZGUgImdkYnR5cGVzLmgiCiAjaW5jbHVkZSAiaW5mZXJp b3IuaCIKICNpbmNsdWRlICJzeW1maWxlLmgiCkBAIC05Nyw3ICs5OCw4IEBA IGVudW0KIAogICAvKiBQc2V1ZG8gcmVnaXN0ZXJzLiAgKi8KICAgQVZSX1BT RVVET19QQ19SRUdOVU0gPSAzNSwKLSAgQVZSX05VTV9QU0VVRE9fUkVHUyA9 IDEsCisgIEFWUl9EV0FSRjJfUENfUkVHTlVNID0gMzYgLypMUiovLAorICBB VlJfTlVNX1BTRVVET19SRUdTID0gMiwKIAogICBBVlJfUENfUkVHX0lOREVY ID0gMzUsCS8qIGluZGV4IGludG8gYXJyYXkgb2YgcmVnaXN0ZXJzICovCiAK QEAgLTIxMSw3ICsyMTMsNyBAQCBhdnJfcmVnaXN0ZXJfbmFtZSAoc3RydWN0 IGdkYmFyY2ggKmdkYmFyY2gsIGludCByZWdudW0pCiAgICAgInIxNiIsICJy MTciLCAicjE4IiwgInIxOSIsICJyMjAiLCAicjIxIiwgInIyMiIsICJyMjMi LAogICAgICJyMjQiLCAicjI1IiwgInIyNiIsICJyMjciLCAicjI4IiwgInIy OSIsICJyMzAiLCAicjMxIiwKICAgICAiU1JFRyIsICJTUCIsICJQQzIiLAot ICAgICJwYyIKKyAgICAicGMiLCAiTFIiCiAgIH07CiAgIGlmIChyZWdudW0g PCAwKQogICAgIHJldHVybiBOVUxMOwpAQCAtMjMwLDYgKzIzMiw4IEBAIGF2 cl9yZWdpc3Rlcl90eXBlIChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCwgaW50 IHJlZ19ucikKICAgICByZXR1cm4gYnVpbHRpbl90eXBlIChnZGJhcmNoKS0+ YnVpbHRpbl91aW50MzI7CiAgIGlmIChyZWdfbnIgPT0gQVZSX1BTRVVET19Q Q19SRUdOVU0pCiAgICAgcmV0dXJuIGdkYmFyY2hfdGRlcCAoZ2RiYXJjaCkt PnBjX3R5cGU7CisgIGlmIChyZWdfbnIgPT0gQVZSX0RXQVJGMl9QQ19SRUdO VU0pCisgICAgcmV0dXJuIGdkYmFyY2hfdGRlcCAoZ2RiYXJjaCktPnBjX3R5 cGU7CiAgIGlmIChyZWdfbnIgPT0gQVZSX1NQX1JFR05VTSkKICAgICByZXR1 cm4gYnVpbHRpbl90eXBlIChnZGJhcmNoKS0+YnVpbHRpbl9kYXRhX3B0cjsK ICAgcmV0dXJuIGJ1aWx0aW5fdHlwZSAoZ2RiYXJjaCktPmJ1aWx0aW5fdWlu dDg7CkBAIC0zOTUsNiArMzk5LDEwIEBAIGF2cl9wc2V1ZG9fcmVnaXN0ZXJf cmVhZCAoc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gsIHN0cnVjdCByZWdjYWNo ZSAqcmVnY2FjaGUsCiAgICAgICB2YWwgPj49IDE7CiAgICAgICBzdG9yZV91 bnNpZ25lZF9pbnRlZ2VyIChidWYsIDQsIGdkYmFyY2hfYnl0ZV9vcmRlciAo Z2RiYXJjaCksIHZhbCk7CiAgICAgICByZXR1cm4gc3RhdHVzOworICAgIGNh c2UgQVZSX0RXQVJGMl9QQ19SRUdOVU06CisgICAgICAvKiByZXR1cm4gdGhh dCByZWdpc3RlciBpcyB1bmF2YWlsYWJsZSBhcyB3ZSBjYW4ndCBleHBlY3Qg c3RhY2sgYXQgYWxsCisgICAgICAgICB0aW1lcyB0byByZWFkIENGQSwgZS5n LiBzdGFydHVwIGNvZGUuICAqLworICAgICAgcmV0dXJuIFJFR19VTkFWQUlM QUJMRTsKICAgICBkZWZhdWx0OgogICAgICAgaW50ZXJuYWxfZXJyb3IgKF9f RklMRV9fLCBfX0xJTkVfXywgXygiaW52YWxpZCByZWdudW0iKSk7CiAgICAg fQpAQCAtNDEzLDYgKzQyMSwxMCBAQCBhdnJfcHNldWRvX3JlZ2lzdGVyX3dy aXRlIChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCwgc3RydWN0IHJlZ2NhY2hl ICpyZWdjYWNoZSwKICAgICAgIHZhbCA8PD0gMTsKICAgICAgIHJlZ2NhY2hl X3Jhd193cml0ZV91bnNpZ25lZCAocmVnY2FjaGUsIEFWUl9QQ19SRUdOVU0s IHZhbCk7CiAgICAgICBicmVhazsKKyAgICBjYXNlIEFWUl9EV0FSRjJfUENf UkVHTlVNOgorICAgICAgLyogRG8gbm90aGluZy4gSXQgaXMgcmVhZC1vbmx5 OyBhbHNvIHdlIGNhbid0IGV4cGVjdCBzdGFjayBhdCBhbGwKKyAgICAgICAg IHRpbWVzIHRvIHdyaXRlLCBlLmcuIHN0YXJ0dXAgY29kZS4gICovCisgICAg ICBicmVhazsKICAgICBkZWZhdWx0OgogICAgICAgaW50ZXJuYWxfZXJyb3Ig KF9fRklMRV9fLCBfX0xJTkVfXywgXygiaW52YWxpZCByZWdudW0iKSk7CiAg ICAgfQpAQCAtMTM1NSw2ICsxMzY3LDM4IEBAIGF2cl9wdXNoX2R1bW15X2Nh bGwgKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLCBzdHJ1Y3QgdmFsdWUgKmZ1 bmN0aW9uLAogICByZXR1cm4gc3AgKyBjYWxsX2xlbmd0aDsKIH0KIAorc3Rh dGljIHN0cnVjdCB2YWx1ZSAqCithdnJfZHdhcmYyX3ByZXZfcmVnaXN0ZXIg KHN0cnVjdCBmcmFtZV9pbmZvICp0aGlzX2ZyYW1lLCB2b2lkICoqdGhpc19j YWNoZSwKKwkJCSAgaW50IHJlZ251bSkKK3sKKyAgc3RydWN0IGdkYmFyY2gg KiBnZGJhcmNoID0gZ2V0X2ZyYW1lX2FyY2ggKHRoaXNfZnJhbWUpOworICBz dHJ1Y3QgZ2RiYXJjaF90ZGVwICogdGRlcCA9IGdkYmFyY2hfdGRlcCAoZ2Ri YXJjaCk7CisgIENPUkVfQUREUiBhZGRyOworICBVTE9OR0VTVCBwYzsKKyAg aW50IGk7CisgIGdkYl9ieXRlIGJ1ZlszXTsKKworICBzd2l0Y2ggKHJlZ251 bSkKKyAgICB7CisgICAgY2FzZSBBVlJfUENfUkVHTlVNOgorICAgIGNhc2Ug QVZSX1BTRVVET19QQ19SRUdOVU06CisgICAgICBhZGRyID0gZHdhcmYyX2Zy YW1lX2FkZHIgKHRoaXNfY2FjaGUsIEFWUl9EV0FSRjJfUENfUkVHTlVNKTsK KyAgICAgIHJlYWRfbWVtb3J5IChhZGRyLCBidWYsIHRkZXAtPmNhbGxfbGVu Z3RoKTsKKyAgICAgIHBjID0gMDsKKyAgICAgIGZvciAoaSA9IDA7IGkgPCB0 ZGVwLT5jYWxsX2xlbmd0aDsgaSsrKQorICAgICAgICBwYyA9IChwYyA8PCA4 KSB8IGJ1ZltpXTsKKyAgICAgIC8qIENoYW5nZSBpdCB0byBieXRlIGFkZHJl c3MuICovCisgICAgICBpZiAocmVnbnVtID09IEFWUl9QQ19SRUdOVU0pCisg ICAgICAgIHBjIDw8PSAxOworICAgICAgcmV0dXJuIGZyYW1lX3Vud2luZF9n b3RfY29uc3RhbnQgKHRoaXNfZnJhbWUsIHJlZ251bSwgcGMpOworLy8gICAg Y2FzZSBBVlJfUFNFVURPX1BDX1JFR05VTToKKy8vICAgICAgaW50ZXJuYWxf ZXJyb3IgKF9fRklMRV9fLCBfX0xJTkVfXywgIkknbSBoZXJlIik7CisgICAg ZGVmYXVsdDoKKyAgICAgIGludGVybmFsX2Vycm9yIChfX0ZJTEVfXywgX19M SU5FX18sCisJCSAgICAgIF8oIlVuZXhwZWN0ZWQgcmVnaXN0ZXIgJWQiKSwg cmVnbnVtKTsKKyAgICB9Cit9CisKIC8qIFVuZm9ydHVuYXRlbHkgZHdhcmYy IHJlZ2lzdGVyIGZvciBTUCBpcyAzMi4gICovCiAKIHN0YXRpYyBpbnQKQEAg LTEzNjIsMTEgKzE0MDYsMzggQEAgYXZyX2R3YXJmX3JlZ190b19yZWdudW0g KHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLCBpbnQgcmVnKQogewogICBpZiAo cmVnID49IDAgJiYgcmVnIDwgMzIpCiAgICAgcmV0dXJuIHJlZzsKLSAgaWYg KHJlZyA9PSAzMikKLSAgICByZXR1cm4gQVZSX1NQX1JFR05VTTsKKyAgc3dp dGNoIChyZWcpCisgIHsKKyAgICBjYXNlIDMyOgorICAgICAgcmV0dXJuIEFW Ul9TUF9SRUdOVU07CisgICAgY2FzZSAzNDogLy8gQVZSX1BDX1JFR05VTQor ICAgIGNhc2UgMzU6IC8vIEFWUl9QU0VVRE9fUENfUkVHTlVNCisgICAgY2Fz ZSAzNjogLy8gQVZSX0RXQVJGMl9QQ19SRUdOVU0KKyAgICAgIHJldHVybiBy ZWc7CisgIH0KICAgcmV0dXJuIC0xOwogfQogCitzdGF0aWMgdm9pZAorYXZy X2R3YXJmMl9mcmFtZV9pbml0X3JlZyAoc3RydWN0IGdkYmFyY2ggKmdkYmFy Y2gsIGludCByZWdudW0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICBz dHJ1Y3QgZHdhcmYyX2ZyYW1lX3N0YXRlX3JlZyAqcmVnLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgc3RydWN0IGZyYW1lX2luZm8gKnRoaXNfZnJh bWUpCit7CisgIHN3aXRjaCAocmVnbnVtKQorICB7CisgICAgLyogSGFuZGxl IFBDIGFuZCBQU0VVRE8gUEMgcmVnaXN0ZXJzIGJ5IHRhcmdldCBmdW5jdGlv bi4gICovCisgICAgY2FzZSBBVlJfUENfUkVHTlVNOgorICAgIGNhc2UgQVZS X1BTRVVET19QQ19SRUdOVU06CisgICAgICByZWctPmhvdyA9IERXQVJGMl9G UkFNRV9SRUdfRk47CisgICAgICByZWctPmxvYy5mbiA9IGF2cl9kd2FyZjJf cHJldl9yZWdpc3RlcjsKKyAgICAgIGJyZWFrOworICAgIC8qICBVc2UgQ0ZB IHRvIGhhbmRsZSBTUCByZWdpc3Rlci4gICovCisgICAgY2FzZSBBVlJfU1Bf UkVHTlVNOgorICAgICAgcmVnLT5ob3cgPSBEV0FSRjJfRlJBTUVfUkVHX0NG QTsKKyAgICAgIGJyZWFrOworICB9Cit9CisKIC8qIEltcGxlbWVudGF0aW9u IG9mIGBhZGRyZXNzX2NsYXNzX3R5cGVfZmxhZ3MnIGdkYmFyY2ggbWV0aG9k LgogCiAgICBUaGlzIG1ldGhvZCBtYXBzIERXX0FUX2FkZHJlc3NfY2xhc3Mg YXR0cmlidXRlcyB0byBhCkBAIC0xNDc4LDYgKzE1NDksOSBAQCBhdnJfZ2Ri YXJjaF9pbml0IChzdHJ1Y3QgZ2RiYXJjaF9pbmZvIGluZm8sIHN0cnVjdCBn ZGJhcmNoX2xpc3QgKmFyY2hlcykKICAgc2V0X2dkYmFyY2hfcHRyX2JpdCAo Z2RiYXJjaCwgMiAqIFRBUkdFVF9DSEFSX0JJVCk7CiAgIHNldF9nZGJhcmNo X2FkZHJfYml0IChnZGJhcmNoLCAzMik7CiAKKyAgLyogRHdhcmYgYWRkcmVz cyBpcyA0IGJ5dGVzLiBSZWY6IERXQVJGMl9BRERSX1NJWkUgaW4gYXZyLWdj Yy4gICovCisgIHNldF9nZGJhcmNoX2R3YXJmMl9hZGRyX3NpemUgKGdkYmFy Y2gsIDQpOworCiAgIHNldF9nZGJhcmNoX2Zsb2F0X2JpdCAoZ2RiYXJjaCwg NCAqIFRBUkdFVF9DSEFSX0JJVCk7CiAgIHNldF9nZGJhcmNoX2RvdWJsZV9i aXQgKGdkYmFyY2gsIDQgKiBUQVJHRVRfQ0hBUl9CSVQpOwogICBzZXRfZ2Ri YXJjaF9sb25nX2RvdWJsZV9iaXQgKGdkYmFyY2gsIDQgKiBUQVJHRVRfQ0hB Ul9CSVQpOwpAQCAtMTUxNyw2ICsxNTkxLDkgQEAgYXZyX2dkYmFyY2hfaW5p dCAoc3RydWN0IGdkYmFyY2hfaW5mbyBpbmZvLCBzdHJ1Y3QgZ2RiYXJjaF9s aXN0ICphcmNoZXMpCiAKICAgc2V0X2dkYmFyY2hfYnJlYWtwb2ludF9mcm9t X3BjIChnZGJhcmNoLCBhdnJfYnJlYWtwb2ludF9mcm9tX3BjKTsKIAorICBk d2FyZjJfZnJhbWVfc2V0X2luaXRfcmVnIChnZGJhcmNoLCBhdnJfZHdhcmYy X2ZyYW1lX2luaXRfcmVnKTsKKyAgZHdhcmYyX2FwcGVuZF91bndpbmRlcnMg KGdkYmFyY2gpOworCiAgIGZyYW1lX3Vud2luZF9hcHBlbmRfdW53aW5kZXIg KGdkYmFyY2gsICZhdnJfZnJhbWVfdW53aW5kKTsKICAgZnJhbWVfYmFzZV9z ZXRfZGVmYXVsdCAoZ2RiYXJjaCwgJmF2cl9mcmFtZV9iYXNlKTsKIApkaWZm IC0tZ2l0IGEvZ2RiL2R3YXJmMi1mcmFtZS5jIGIvZ2RiL2R3YXJmMi1mcmFt ZS5jCmluZGV4IGE2NDBjMjYuLjU0YmFiMTcgMTAwNjQ0Ci0tLSBhL2dkYi9k d2FyZjItZnJhbWUuYworKysgYi9nZGIvZHdhcmYyLWZyYW1lLmMKQEAgLTE1 MjQsNiArMTUyNCwyMSBAQCBkd2FyZjJfZnJhbWVfY2ZhIChzdHJ1Y3QgZnJh bWVfaW5mbyAqdGhpc19mcmFtZSkKIAogICByZXR1cm4gZ2V0X2ZyYW1lX2Jh c2UgKHRoaXNfZnJhbWUpOwogfQorCisvKiBDb21wdXRlIHRoZSBmcmFtZSBh ZGRyZXNzLiAgKi8KK0NPUkVfQUREUgorZHdhcmYyX2ZyYW1lX2FkZHIgKHZv aWQgKiogdGhpc19jYWNoZSwgaW50IHJlZ251bSkKK3sKKyAgc3RydWN0IGR3 YXJmMl9mcmFtZV9jYWNoZSAqY2FjaGUgPSAqdGhpc19jYWNoZTsKKyAgQ09S RV9BRERSIGFkZHI7CisKKyAgZ2RiX2Fzc2VydCAoY2FjaGUgIT0gTlVMTCk7 CisgIGdkYl9hc3NlcnQgKGNhY2hlLT5yZWdbcmVnbnVtXS5ob3cgPT0gRFdB UkYyX0ZSQU1FX1JFR19TQVZFRF9PRkZTRVQpOworCisgIGFkZHIgPSBjYWNo ZS0+Y2ZhICsgY2FjaGUtPnJlZ1tyZWdudW1dLmxvYy5vZmZzZXQ7CisKKyAg cmV0dXJuIGFkZHI7Cit9CiAMCiBjb25zdCBzdHJ1Y3Qgb2JqZmlsZV9kYXRh ICpkd2FyZjJfZnJhbWVfb2JqZmlsZV9kYXRhOwogCmRpZmYgLS1naXQgYS9n ZGIvZHdhcmYyLWZyYW1lLmggYi9nZGIvZHdhcmYyLWZyYW1lLmgKaW5kZXgg YjczOTc0NC4uY2RlODhlNSAxMDA2NDQKLS0tIGEvZ2RiL2R3YXJmMi1mcmFt ZS5oCisrKyBiL2dkYi9kd2FyZjItZnJhbWUuaApAQCAtMTE5LDYgKzExOSw3 IEBAIGV4dGVybiBjb25zdCBzdHJ1Y3QgZnJhbWVfYmFzZSAqCiAvKiBDb21w dXRlIHRoZSBEV0FSRiBDRkEgZm9yIGEgZnJhbWUuICAqLwogCiBDT1JFX0FE RFIgZHdhcmYyX2ZyYW1lX2NmYSAoc3RydWN0IGZyYW1lX2luZm8gKnRoaXNf ZnJhbWUpOworQ09SRV9BRERSIGR3YXJmMl9mcmFtZV9hZGRyICh2b2lkICoq IHRoaXNfY2FjaGUsIGludCByZWdudW0pOwogCiAvKiBGaW5kIHRoZSBDRkEg aW5mb3JtYXRpb24gZm9yIFBDLgogCg== --_002_CAC140656783604CABA6AE60C2A6D5A4CA3B7268penmbx02corpatm_--