[OpenAFS-devel] OpenAFS 1.2.8 on Phoebe (Redhat 8.1 Beta) - patches attached

McDermott, Sean P spm@intel.com
Fri, 3 Jan 2003 23:33:05 -0800


This is a multi-part message in MIME format.

------_=_NextPart_001_01C2B3C3.8576B4DB
Content-Type: multipart/alternative;
	boundary="----_=_NextPart_002_01C2B3C3.8576B4DB"


------_=_NextPart_002_01C2B3C3.8576B4DB
Content-Type: text/plain;
	charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

OpenAFS Gurus,

            I spent a few hours today playing with Phoebe (the new beta
from Redhat), trying to get OpenAFS 1.2.8 to work. I started with the
RedHat 8.0 source RPMS from www.openafs.org. I've run into a few
problems that I was able to solve, but could use a quick hand with a
subject everyone on this list is rapidly becoming experts at - Linux
syscalls. First, the problems I've been able to solve.

=20

#1 - The first problem was the well documented issue of
src/pam/Makefile.in and the extra -I/usr/include line. This is already
fixed in CVS, so I just deleted the line on my local copy and re-ran
configure.

#2 - The second problem was the also documented problem with errno.h.
The two files that need errno.h included are src/sys/rmtsyss.c and
src/ptserver/pt_util.c.

#3 - Third, it seems some of the external functions OpenAFS use changed
names. To start with, recalc_sigpending() no longer takes any arguments;
it is assumed you want to act on the current task.  If you want to act
on something other than the current task, you need to use
recalc_sigpending_tsk(task);  Second, for_each_task() (a #define from
sched.h) changed names to for_each_process().

#4 - The names of some of the members of struct task changed.  The
changes that affect OpenAFS are (I think I got this right - I had to do
some searching to find out):

            sigmask_lock became sig->siglock

            p_pptr became parent

            p_opptr became real_parent

=20

With those four items fixed, I was able to build and install OpenAFS.
And then I tried to load it, and wouldn't you know it....

=20

libafs-2.4.20-2.2-i686.o: unresolved symbol sys_open

libafs-2.4.20-2.2-i686.o: unresolved symbol sys_exit

libafs-2.4.20-2.2-i686.o: unresolved symbol recalc_sigpending_tsk

libafs-2.4.20-2.2-i686.o:=20

Hint: You are trying to load a module without a GPL compatible license

      and it has unresolved symbols.  Contact the module supplier for

      assistance, only they can help you.

=20

I know these needs to be fixed in osi_module.c, but I got lost in that
file. I'm giving up and going home.

=20

To help anyone else out who wants to work on this over the weekend, I'm
attaching my patches that apply cleanly to a fresh OpenAFS 1.2.8 Redhat
8.0 .src.rpm.  The two patches are:

=20

Openafs-errno.patch - Includes the fixes for problems #1 and #2 listed
above. You can cleanly and safely apply this patch to any install.

Openafs-kern-struct-change.patch - Includes the fixes for problems #3
and #4 above. This patch is very specific to kernel 2.4.20 (and maybe
2.4.19). I haven't wrapped any of the functions with an #ifdef
NEW_LINUX_NAMES or anything like that, so once you install this patch on
your source tree you will be unable to compile OpenAFS for any other
kernels.

=20

Hopefully, someone on this list will find the info useful, and they will
be able to get OpenAFS working on Phoebe.


Sean


------_=_NextPart_002_01C2B3C3.8576B4DB
Content-Type: text/html;
	charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

<html>

<head>
<META HTTP-EQUIV=3D"Content-Type" CONTENT=3D"text/html; =
charset=3Dus-ascii">


<meta name=3DGenerator content=3D"Microsoft Word 10 (filtered)">

<style>
<!--
 /* Font Definitions */
 @font-face
	{font-family:Wingdings;
	panose-1:5 0 0 0 0 0 0 0 0 0;}
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
	{margin:0in;
	margin-bottom:.0001pt;
	font-size:12.0pt;
	font-family:"Times New Roman";}
a:link, span.MsoHyperlink
	{color:blue;
	text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
	{color:purple;
	text-decoration:underline;}
p.MsoAutoSig, li.MsoAutoSig, div.MsoAutoSig
	{margin:0in;
	margin-bottom:.0001pt;
	font-size:12.0pt;
	font-family:"Times New Roman";}
span.EmailStyle17
	{font-family:Arial;
	color:windowtext;}
@page Section1
	{size:8.5in 11.0in;
	margin:1.0in 1.25in 1.0in 1.25in;}
div.Section1
	{page:Section1;}
 /* List Definitions */
 ol
	{margin-bottom:0in;}
ul
	{margin-bottom:0in;}
-->
</style>

</head>

<body lang=3DEN-US link=3Dblue vlink=3Dpurple>

<div class=3DSection1>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>OpenAFS Gurus,</span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp; I
spent a few hours today playing with Phoebe (the new beta from Redhat), =
trying
to get OpenAFS 1.2.8 to work. I started with the RedHat 8.0 source RPMS =
from www.openafs.org.
I&#8217;ve run into a few problems that I was able to solve, but could =
use a
quick hand with a subject everyone on this list is rapidly becoming =
experts at &#8211;
Linux syscalls. First, the problems I&#8217;ve been able to =
solve.</span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>&nbsp;</span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>#1 &#8211; The first problem was the well documented =
issue
of src/pam/Makefile.in and the extra &#8211;I/usr/include line. This is =
already
fixed in CVS, so I just deleted the line on my local copy and re-ran =
configure.</span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>#2 &#8211; The second problem was the also documented
problem with errno.h.&nbsp; The two files that need errno.h included are =
src/sys/rmtsyss.c
and src/ptserver/pt_util.c.</span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>#3 &#8211; Third, it seems some of the external =
functions OpenAFS
use changed names. To start with, recalc_sigpending() no longer takes =
any
arguments; it is assumed you want to act on the current task.&nbsp; If =
you want
to act on something other than the current task, you need to use =
recalc_sigpending_tsk(task);&nbsp;
Second, for_each_task() (a #define from sched.h) changed names to =
for_each_process().</span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>#4 &#8211; The names of some of the members of struct =
task
changed.&nbsp; The changes that affect OpenAFS are (I think I got this =
right &#8211;
I had to do some searching to find out):</span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp; sigmask_lock
became sig-&gt;siglock</span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp; p_pptr
became parent</span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp; p_opptr
became real_parent</span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>&nbsp;</span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>With those four items fixed, I was able to build and =
install
OpenAFS. And then I tried to load it, and wouldn&#8217;t you know =
it&#8230;.</span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>&nbsp;</span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>libafs-2.4.20-2.2-i686.o: unresolved symbol =
sys_open</span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>libafs-2.4.20-2.2-i686.o: unresolved symbol =
sys_exit</span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>libafs-2.4.20-2.2-i686.o: unresolved symbol =
recalc_sigpending_tsk</span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>libafs-2.4.20-2.2-i686.o: </span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>Hint: You are trying to load a module without a GPL =
compatible
license</span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; and it has unresolved
symbols.&nbsp; Contact the module supplier for</span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; assistance, only they =
can
help you.</span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>&nbsp;</span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>I know these needs to be fixed in osi_module.c, but I =
got
lost in that file. I&#8217;m giving up and going home.</span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>&nbsp;</span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>To help anyone else out who wants to work on this =
over the
weekend, I&#8217;m attaching my patches that apply cleanly to a fresh =
OpenAFS
1.2.8 Redhat 8.0 .src.rpm.&nbsp; The two patches are:</span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>&nbsp;</span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>Openafs-errno.patch &#8211; Includes the fixes for =
problems
#1 and #2 listed above. You can cleanly and safely apply this patch to =
any install.</span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>Openafs-kern-struct-change.patch &#8211; Includes the =
fixes
for problems #3 and #4 above. This patch is very specific to kernel =
2.4.20 (and
maybe 2.4.19). I haven&#8217;t wrapped any of the functions with an =
#ifdef NEW_LINUX_NAMES
or anything like that, so once you install this patch on your source =
tree you
will be unable to compile OpenAFS for any other =
kernels.</span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>&nbsp;</span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>Hopefully, someone on this list will find the info =
useful,
and they will be able to get OpenAFS working on =
Phoebe.</span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'><br>
Sean</span></font></p>

</div>

</body>

</html>

------_=_NextPart_002_01C2B3C3.8576B4DB--

------_=_NextPart_001_01C2B3C3.8576B4DB
Content-Type: application/octet-stream;
	name="openafs-errno.patch"
Content-Transfer-Encoding: base64
Content-Description: openafs-errno.patch
Content-Disposition: attachment;
	filename="openafs-errno.patch"

LS0tIG9wZW5hZnMtMS4yLjgvc3JjL3BhbS9NYWtlZmlsZS5pbgkyMDAyLTA5LTA5IDIyOjAzOjQy
LjAwMDAwMDAwMCAtMDcwMAorKysgb3BlbmFmcy0xLjIuOC5uZXcvc3JjL3BhbS9NYWtlZmlsZS5p
bgkyMDAzLTAxLTAzIDExOjM3OjUyLjAwMDAwMDAwMCAtMDgwMApAQCAtNDMsOCArNDMsNyBAQAog
IFNIT0JKUyA9IGFmc19hY2NvdW50Lm8gYWZzX3Nlc3Npb24ubyBhZnNfcGFzc3dvcmQubyBcCiAJ
ICBhZnNfcGFtX21zZy5vIGFmc19tZXNzYWdlLm8gQUZTX2NvbXBvbmVudF92ZXJzaW9uX251bWJl
ci5vCiAgICBPQkpTID0gJChTSE9CSlMpIHRlc3RfcGFtLm8KLUlOQ0xVREVTPS1JJHtUT1BfU1JD
RElSfS9jb25maWcgLUkke1RPUF9JTkNESVJ9IFwKLQktSS91c3IvaW5jbHVkZSAtSS91c3IvaW5j
bHVkZS9zeXMKK0lOQ0xVREVTPS1JJHtUT1BfU1JDRElSfS9jb25maWcgLUkke1RPUF9JTkNESVJ9
IAogQ0ZMQUdTID0gICR7REVCVUd9ICR7SU5DTFVERVN9ICR7UEFNX0NGTEFHU30KIAogYWxsOiB0
ZXN0X3BhbSAke1RPUF9MSUJESVJ9L3BhbV9hZnMuc28uMSAke1RPUF9MSUJESVJ9L3BhbV9hZnMu
a3JiLnNvLjEKLS0tIG9wZW5hZnMtMS4yLjgub2xkL3NyYy92ZW51cy90ZXN0L293bnRlc3QuYwky
MDAyLTA4LTIxIDExOjE0OjI3LjAwMDAwMDAwMCAtMDcwMAorKysgb3BlbmFmcy0xLjIuOC9zcmMv
dmVudXMvdGVzdC9vd250ZXN0LmMJMjAwMy0wMS0wMyAwOTo0ODowNy4wMDAwMDAwMDAgLTA4MDAK
QEAgLTE5LDYgKzE5LDcgQEAKICNpbmNsdWRlIDxzeXMvZmlsZS5oPgogI2luY2x1ZGUgPHN5cy9z
dGF0Lmg+CiAjaW5jbHVkZSA8c3lzL3RpbWUuaD4KKyNpbmNsdWRlIDxlcnJuby5oPgogCiBleHRl
cm4gaW50IGVycm5vOwogCi0tLSBvcGVuYWZzLTEuMi44Lm9sZC9zcmMvcHRzZXJ2ZXIvcHRfdXRp
bC5jCTIwMDEtMDktMTcgMjE6Mjc6MTguMDAwMDAwMDAwIC0wNzAwCisrKyBvcGVuYWZzLTEuMi44
L3NyYy9wdHNlcnZlci9wdF91dGlsLmMJMjAwMy0wMS0wMiAxNzoxNzo1Ny4wMDAwMDAwMDAgLTA4
MDAKQEAgLTE2LDYgKzE2LDcgQEAKICNpbmNsdWRlIDxzdGRpby5oPgogI2luY2x1ZGUgPGN0eXBl
Lmg+CiAjaW5jbHVkZSA8c3RyaW5nLmg+CisjaW5jbHVkZSA8ZXJybm8uaD4KICNpbmNsdWRlIDxz
eXMvZmlsZS5oPgogCiAjaW5jbHVkZSA8YWZzY29uZmlnLmg+Ci0tLSBvcGVuYWZzLTEuMi44Lm9s
ZC9zcmMvc3lzL3JtdHN5c3MuYwkyMDAyLTAzLTEwIDExOjA4OjAwLjAwMDAwMDAwMCAtMDgwMAor
Kysgb3BlbmFmcy0xLjIuOC9zcmMvc3lzL3JtdHN5c3MuYwkyMDAzLTAxLTAyIDE3OjE3OjA2LjAw
MDAwMDAwMCAtMDgwMApAQCAtMjYsNiArMjYsNyBAQAogI2luY2x1ZGUgPHN5cy9maWxlLmg+CiAj
aW5jbHVkZSA8c3RkaW8uaD4KICNpbmNsdWRlIDxyeC94ZHIuaD4KKyNpbmNsdWRlIDxlcnJuby5o
PgogI2luY2x1ZGUgPHNpZ25hbC5oPgogI2lmZGVmIEhBVkVfU1RSSU5HX0gKICNpbmNsdWRlIDxz
dHJpbmcuaD4K

------_=_NextPart_001_01C2B3C3.8576B4DB
Content-Type: application/octet-stream;
	name="openafs-kern-struct-change.patch"
Content-Transfer-Encoding: base64
Content-Description: openafs-kern-struct-change.patch
Content-Disposition: attachment;
	filename="openafs-kern-struct-change.patch"

LS0tIG9wZW5hZnMtMS4yLjgvc3JjL2Fmcy9MSU5VWC9vc2lfc2xlZXAuYwkyMDAzLTAxLTAzIDEx
OjI2OjQ2LjAwMDAwMDAwMCAtMDgwMAorKysgb3BlbmFmcy0xLjIuOC5uZXcvc3JjL2Fmcy9MSU5V
WC9vc2lfc2xlZXAuYwkyMDAzLTAxLTAzIDExOjIyOjIxLjAwMDAwMDAwMCAtMDgwMApAQCAtMTky
LDE4ICsxOTIsMTggQEAKIAlzZXRfY3VycmVudF9zdGF0ZShUQVNLX0lOVEVSUlVQVElCTEUpOwog
CUFGU19BU1NFUlRfR0xPQ0soKTsKIAlBRlNfR1VOTE9DSygpOworCXNwaW5fbG9ja19pcnEoJmN1
cnJlbnQtPnNpZy0+c2lnbG9jayk7Ci0Jc3Bpbl9sb2NrX2lycSgmY3VycmVudC0+c2lnbWFza19s
b2NrKTsKIAlzYXZlZF9zZXQgPSBjdXJyZW50LT5ibG9ja2VkOwogCXNpZ2ZpbGxzZXQoJmN1cnJl
bnQtPmJsb2NrZWQpOworCXJlY2FsY19zaWdwZW5kaW5nKCk7CisJc3Bpbl91bmxvY2tfaXJxKCZj
dXJyZW50LT5zaWctPnNpZ2xvY2spOwotCXJlY2FsY19zaWdwZW5kaW5nKGN1cnJlbnQpOwotCXNw
aW5fdW5sb2NrX2lycSgmY3VycmVudC0+c2lnbWFza19sb2NrKTsKIAogCXNjaGVkdWxlKCk7CiAK
KwlzcGluX2xvY2tfaXJxKCZjdXJyZW50LT5zaWctPnNpZ2xvY2spOwotCXNwaW5fbG9ja19pcnEo
JmN1cnJlbnQtPnNpZ21hc2tfbG9jayk7CiAJY3VycmVudC0+YmxvY2tlZCA9IHNhdmVkX3NldDsK
KwlyZWNhbGNfc2lncGVuZGluZygpOworCXNwaW5fdW5sb2NrX2lycSgmY3VycmVudC0+c2lnLT5z
aWdsb2NrKTsKLQlyZWNhbGNfc2lncGVuZGluZyhjdXJyZW50KTsKLQlzcGluX3VubG9ja19pcnEo
JmN1cnJlbnQtPnNpZ21hc2tfbG9jayk7CiAJQUZTX0dMT0NLKCk7CiAgICAgfQogICAgIHJlbW92
ZV93YWl0X3F1ZXVlKCZldnAtPmNvbmQsICZ3YWl0KTsKLS0tIG9wZW5hZnMtMS4yLjgub2xkL3Ny
Yy9hZnMvYWZzX29zaS5jCTIwMDItMTEtMTQgMTU6NTM6MzYuMDAwMDAwMDAwIC0wODAwCisrKyBv
cGVuYWZzLTEuMi44L3NyYy9hZnMvYWZzX29zaS5jCTIwMDMtMDEtMDIgMTc6MjY6MzguMDAwMDAw
MDAwIC0wODAwCkBAIC03OTgsNyArNzk4LDcgQEAKICNpZmRlZiBFWFBPUlRFRF9UQVNLTElTVF9M
T0NLCiAgICAgcmVhZF9sb2NrKCZ0YXNrbGlzdF9sb2NrKTsKICNlbmRpZgotICAgIGZvcl9lYWNo
X3Rhc2socCkgaWYgKHAtPnBpZCkgeworICAgIGZvcl9lYWNoX3Byb2Nlc3MocCkgaWYgKHAtPnBp
ZCkgewogICAgICAgICBpZiAocC0+c3RhdGUgJiBUQVNLX1pPTUJJRSkKICAgICAgICAgICAgIGNv
bnRpbnVlOwogCWFmc19HQ1BBR3NfcGVycHJvY19mdW5jKHApOwotLS0gb3BlbmFmcy0xLjIuOC5v
bGQvc3JjL2Fmcy9MSU5VWC9vc2lfZ3JvdXBzLmMJMjAwMi0xMC0xNSAyMDo1ODoyMS4wMDAwMDAw
MDAgLTA3MDAKKysrIG9wZW5hZnMtMS4yLjgvc3JjL2Fmcy9MSU5VWC9vc2lfZ3JvdXBzLmMJMjAw
My0wMS0wMyAwOToyOTozMS4wMDAwMDAwMDAgLTA4MDAKQEAgLTMzLDEzICszMywxMyBAQAogICov
CiBpbnQgc2V0X3BhZ19pbl9wYXJlbnQoaW50IHBhZywgaW50IGcwLCBpbnQgZzEpCiB7Ci0gICAg
Z2lkX3QgKmdwID0gY3VycmVudC0+cF9wcHRyLT5ncm91cHM7CisgICAgZ2lkX3QgKmdwID0gY3Vy
cmVudC0+cGFyZW50LT5ncm91cHM7CiAgICAgaW50IG5ncm91cHM7CiAgICAgaW50IGk7CiAKICAg
ICAKLSAgICBuZ3JvdXBzID0gY3VycmVudC0+cF9wcHRyLT5uZ3JvdXBzOwotICAgIGdwID0gY3Vy
cmVudC0+cF9wcHRyLT5ncm91cHM7CisgICAgbmdyb3VwcyA9IGN1cnJlbnQtPnBhcmVudC0+bmdy
b3VwczsKKyAgICBncCA9IGN1cnJlbnQtPnBhcmVudC0+Z3JvdXBzOwogCiAKICAgICBpZiAoKG5n
cm91cHMgPCAyKSB8fCAoYWZzX2dldF9wYWdfZnJvbV9ncm91cHMoZ3BbMF0sIGdwWzFdKSA9PSBO
T1BBRykpIHsKQEAgLTU3LDcgKzU3LDcgQEAKICAgICBpZiAobmdyb3VwcyA8IE5HUk9VUFMpCiAJ
Z3Bbbmdyb3Vwc10gPSBOT0dST1VQOwogCi0gICAgY3VycmVudC0+cF9wcHRyLT5uZ3JvdXBzID0g
bmdyb3VwczsKKyAgICBjdXJyZW50LT5wYXJlbnQtPm5ncm91cHMgPSBuZ3JvdXBzOwogICAgIHJl
dHVybiAwOwogfQogCi0tLSBvcGVuYWZzLTEuMi44Lm9sZC9zcmMvYWZzL0xJTlVYL29zaV9tYWNo
ZGVwLmgJMjAwMi0xMC0xNSAyMDo1ODoyMS4wMDAwMDAwMDAgLTA3MDAKKysrIG9wZW5hZnMtMS4y
Ljgvc3JjL2Fmcy9MSU5VWC9vc2lfbWFjaGRlcC5oCTIwMDMtMDEtMDMgMDk6MjU6MTkuMDAwMDAw
MDAwIC0wODAwCkBAIC0yNCw3ICsyNCw3IEBACiAjdW5kZWYgZ2V0dWVycm9yCiAKICNkZWZpbmUg
Z2V0cGlkKCkgY3VycmVudC0+cGlkCi0jZGVmaW5lIGdldHBwaWQoKSBjdXJyZW50LT5wX29wcHRy
LT5waWQKKyNkZWZpbmUgZ2V0cHBpZCgpIGN1cnJlbnQtPnJlYWxfcGFyZW50LT5waWQKIAogCiAj
ZGVmaW5lIGFmc19oeiBIWgotLS0gb3BlbmFmcy0xLjIuOC5vbGQvc3JjL2Fmcy9MSU5VWC9vc2lf
bWlzYy5jCTIwMDItMTAtMTUgMjA6NTg6MjEuMDAwMDAwMDAwIC0wNzAwCisrKyBvcGVuYWZzLTEu
Mi44L3NyYy9hZnMvTElOVVgvb3NpX21pc2MuYwkyMDAzLTAxLTAzIDA5OjM3OjI4LjAwMDAwMDAw
MCAtMDgwMApAQCAtNDQ1LDE3ICs0NDUsMTkgQEAKIAogdm9pZCBvc2lfbGludXhfbWFzaygpIHsK
LSAgICBzcGluX2xvY2tfaXJxKCZjdXJyZW50LT5zaWdtYXNrX2xvY2spOworICAgIHNwaW5fbG9j
a19pcnEoJmN1cnJlbnQtPnNpZy0+c2lnbG9jayk7CiAgICAgc2lnZmlsbHNldCgmY3VycmVudC0+
YmxvY2tlZCk7Ci0gICAgcmVjYWxjX3NpZ3BlbmRpbmcoY3VycmVudCk7Ci0gICAgc3Bpbl91bmxv
Y2tfaXJxKCZjdXJyZW50LT5zaWdtYXNrX2xvY2spOworICAgIHJlY2FsY19zaWdwZW5kaW5nX3Rz
ayhjdXJyZW50KTsKKyAgICBzcGluX3VubG9ja19pcnEoJmN1cnJlbnQtPnNpZy0+c2lnbG9jayk7
CiB9CiAKIHZvaWQgb3NpX2xpbnV4X3VubWFzaygpIHsKKyAgICBleHRlcm4gdm9pZCByZWNhbGNf
c2lncGVuZGluZ190c2soc3RydWN0IHRhc2tfc3RydWN0ICp0KTsKKwotICAgIHNwaW5fbG9ja19p
cnEoJnJ4a19MaXN0ZW5lclRhc2stPnNpZ21hc2tfbG9jayk7CisgICAgc3Bpbl9sb2NrX2lycSgm
cnhrX0xpc3RlbmVyVGFzay0+c2lnLT5zaWdsb2NrKTsKICAgICBzaWdlbXB0eXNldCgmcnhrX0xp
c3RlbmVyVGFzay0+YmxvY2tlZCk7CiAgICAgZmx1c2hfc2lnbmFscyhyeGtfTGlzdGVuZXJUYXNr
KTsKLSAgICByZWNhbGNfc2lncGVuZGluZyhyeGtfTGlzdGVuZXJUYXNrKTsKLSAgICBzcGluX3Vu
bG9ja19pcnEoJnJ4a19MaXN0ZW5lclRhc2stPnNpZ21hc2tfbG9jayk7CisgICAgcmVjYWxjX3Np
Z3BlbmRpbmdfdHNrKHJ4a19MaXN0ZW5lclRhc2spOworICAgIHNwaW5fdW5sb2NrX2lycSgmcnhr
X0xpc3RlbmVyVGFzay0+c2lnLT5zaWdsb2NrKTsKIH0KIAogdm9pZCBvc2lfbGludXhfcnhrcmVn
KCkgewotLS0gb3BlbmFmcy0xLjIuOC5vbGQvc3JjL2Fmcy9MSU5VWC9vc2lfbW9kdWxlLmMJMjAw
Mi0xMi0wOSAyMDoxNjoyMS4wMDAwMDAwMDAgLTA4MDAKKysrIG9wZW5hZnMtMS4yLjgvc3JjL2Fm
cy9MSU5VWC9vc2lfbW9kdWxlLmMJMjAwMy0wMS0wMyAwOTo0MzowMC4wMDAwMDAwMDAgLTA4MDAK
QEAgLTQzNyw3ICs0MzcsNyBAQAogICAgIHN0cnVjdCB0YXNrX3N0cnVjdCAqcDsKIAogICAgIC8q
IHNlYXJjaCBiYWNrd2FyZCB0aHJ1IHRoZSBjaXJjdWxhciBsaXN0ICovCi0gICAgZm9yKHAgPSBj
dXJyZW50OyBwOyBwID0gcC0+cHJldl90YXNrKQorICAgIGZvcihwID0gY3VycmVudDsgcDsgcCA9
IHByZXZfdGFzayhwKSkKIAlpZiAocC0+cGlkID09IDEpCiAJICAgIHJldHVybiBwLT5hZGRyX2xp
bWl0LnNlZzsKIAotLS0gb3BlbmFmcy0xLjIuOC9zcmMvcngvTElOVVgvcnhfa211dGV4LmgJMjAw
My0wMS0wMyAxMzo0ODoxNi4wMDAwMDAwMDAgLTA4MDAKKysrIG9wZW5hZnMtMS4yLjgvc3JjL3J4
L0xJTlVYL3J4X2ttdXRleC5oLm9sZAkyMDAzLTAxLTAzIDEzOjQ5OjUwLjAwMDAwMDAwMCAtMDgw
MApAQCAtMTI1LDE5ICsxMjUsMTkgQEAKICAgICBpZiAoaXNBRlNHbG9ja2VkKSBBRlNfR1VOTE9D
SygpOwogICAgIE1VVEVYX0VYSVQobCk7CiAKLSAgICBzcGluX2xvY2tfaXJxKCZjdXJyZW50LT5z
aWdtYXNrX2xvY2spOworICAgIHNwaW5fbG9ja19pcnEoJmN1cnJlbnQtPnNpZy0+c2lnbG9jayk7
CiAgICAgc2F2ZWRfc2V0ID0gY3VycmVudC0+YmxvY2tlZDsKICAgICBzaWdmaWxsc2V0KCZjdXJy
ZW50LT5ibG9ja2VkKTsKLSAgICByZWNhbGNfc2lncGVuZGluZyhjdXJyZW50KTsKLSAgICBzcGlu
X3VubG9ja19pcnEoJmN1cnJlbnQtPnNpZ21hc2tfbG9jayk7CisgICAgcmVjYWxjX3NpZ3BlbmRp
bmcoKTsKKyAgICBzcGluX3VubG9ja19pcnEoJmN1cnJlbnQtPnNpZy0+c2lnbG9jayk7CiAKICAg
ICBzY2hlZHVsZSgpOwogICAgIHJlbW92ZV93YWl0X3F1ZXVlKGN2LCAmd2FpdCk7CiAKLSAgICBz
cGluX2xvY2tfaXJxKCZjdXJyZW50LT5zaWdtYXNrX2xvY2spOworICAgIHNwaW5fbG9ja19pcnEo
JmN1cnJlbnQtPnNpZy0+c2lnbG9jayk7CiAgICAgY3VycmVudC0+YmxvY2tlZCA9IHNhdmVkX3Nl
dDsKLSAgICByZWNhbGNfc2lncGVuZGluZyhjdXJyZW50KTsKLSAgICBzcGluX3VubG9ja19pcnEo
JmN1cnJlbnQtPnNpZ21hc2tfbG9jayk7CisgICAgcmVjYWxjX3NpZ3BlbmRpbmcoKTsKKyAgICBz
cGluX3VubG9ja19pcnEoJmN1cnJlbnQtPnNpZy0+c2lnbG9jayk7CiAKICAgICBpZiAoaXNBRlNH
bG9ja2VkKSBBRlNfR0xPQ0soKTsKICAgICBNVVRFWF9FTlRFUihsKTsKQEAgLTE2MiwxOSArMTYy
LDE5IEBACiAgICAgaWYgKGlzQUZTR2xvY2tlZCkgQUZTX0dVTkxPQ0soKTsKICAgICBNVVRFWF9F
WElUKGwpOwogICAgIAotICAgIHNwaW5fbG9ja19pcnEoJmN1cnJlbnQtPnNpZ21hc2tfbG9jayk7
CisgICAgc3Bpbl9sb2NrX2lycSgmY3VycmVudC0+c2lnLT5zaWdsb2NrKTsKICAgICBzYXZlZF9z
ZXQgPSBjdXJyZW50LT5ibG9ja2VkOwogICAgIHNpZ2ZpbGxzZXQoJmN1cnJlbnQtPmJsb2NrZWQp
OwotICAgIHJlY2FsY19zaWdwZW5kaW5nKGN1cnJlbnQpOwotICAgIHNwaW5fdW5sb2NrX2lycSgm
Y3VycmVudC0+c2lnbWFza19sb2NrKTsKKyAgICByZWNhbGNfc2lncGVuZGluZygpOworICAgIHNw
aW5fdW5sb2NrX2lycSgmY3VycmVudC0+c2lnLT5zaWdsb2NrKTsKIAogICAgIHQgPSBzY2hlZHVs
ZV90aW1lb3V0KHQpOwogICAgIHJlbW92ZV93YWl0X3F1ZXVlKGN2LCAmd2FpdCk7CiAgICAgCi0g
ICAgc3Bpbl9sb2NrX2lycSgmY3VycmVudC0+c2lnbWFza19sb2NrKTsKKyAgICBzcGluX2xvY2tf
aXJxKCZjdXJyZW50LT5zaWctPnNpZ2xvY2spOwogICAgIGN1cnJlbnQtPmJsb2NrZWQgPSBzYXZl
ZF9zZXQ7Ci0gICAgcmVjYWxjX3NpZ3BlbmRpbmcoY3VycmVudCk7Ci0gICAgc3Bpbl91bmxvY2tf
aXJxKCZjdXJyZW50LT5zaWdtYXNrX2xvY2spOworICAgIHJlY2FsY19zaWdwZW5kaW5nKCk7Cisg
ICAgc3Bpbl91bmxvY2tfaXJxKCZjdXJyZW50LT5zaWctPnNpZ2xvY2spOwogCiAgICAgaWYgKGlz
QUZTR2xvY2tlZCkgQUZTX0dMT0NLKCk7CiAgICAgTVVURVhfRU5URVIobCk7Cg==

------_=_NextPart_001_01C2B3C3.8576B4DB--