From nobody@FreeBSD.org  Fri Apr  7 05:32:51 2006
Return-Path: <nobody@FreeBSD.org>
Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125])
	by hub.freebsd.org (Postfix) with ESMTP id E1ABE16A400
	for <freebsd-gnats-submit@FreeBSD.org>; Fri,  7 Apr 2006 05:32:51 +0000 (UTC)
	(envelope-from nobody@FreeBSD.org)
Received: from www.freebsd.org (www.freebsd.org [216.136.204.117])
	by mx1.FreeBSD.org (Postfix) with ESMTP id 5BEAA43D4C
	for <freebsd-gnats-submit@FreeBSD.org>; Fri,  7 Apr 2006 05:32:51 +0000 (GMT)
	(envelope-from nobody@FreeBSD.org)
Received: from www.freebsd.org (localhost [127.0.0.1])
	by www.freebsd.org (8.13.1/8.13.1) with ESMTP id k375WoDd000997
	for <freebsd-gnats-submit@FreeBSD.org>; Fri, 7 Apr 2006 05:32:50 GMT
	(envelope-from nobody@www.freebsd.org)
Received: (from nobody@localhost)
	by www.freebsd.org (8.13.1/8.13.1/Submit) id k375WoJY000996;
	Fri, 7 Apr 2006 05:32:50 GMT
	(envelope-from nobody)
Message-Id: <200604070532.k375WoJY000996@www.freebsd.org>
Date: Fri, 7 Apr 2006 05:32:50 GMT
From: oleg dashevskii <be9-ml@be9.ru>
To: freebsd-gnats-submit@FreeBSD.org
Subject: [ar] Rebooting the system while rebuilding RAID (Intel MatrixRAID) results in data loss
X-Send-Pr-Version: www-2.3

>Number:         95459
>Category:       kern
>Synopsis:       Rebooting the system while rebuilding RAID (Intel MatrixRAID) results in data loss
>Confidential:   no
>Severity:       serious
>Priority:       high
>Responsible:    freebsd-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:  
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Fri Apr 07 05:40:12 GMT 2006
>Closed-Date:    
>Last-Modified:  Fri Oct 17 14:13:12 UTC 2008
>Originator:     oleg dashevskii
>Release:        6.1-BETA4
>Organization:
IAE SB RAS
>Environment:
FreeBSD mx2.iae.nsk.su 6.1-BETA4 FreeBSD 6.1-BETA4 #0: Tue Mar 14 13:59:38 UTC 2006    root@wv1u.samsco.home:/usr/obj/usr/src/sys/GENERIC  i386
>Description:
I've got a motherboard with a ICH7 chipset which supports RAID. Using BIOS utility, I created a RAID1 of two SATA disks (150 Gbytes each). I installed  FreeBSD 6.1-BETA4 then. No prob, ar0 has been detected and voila.

Upon installation, I wanted to check the RAID1 functioning and pulled away the power cord from one of the disks. This was immediately detected and RAID1 found itself in a DEGRADED state. I turned on the power again (the disk was detected) and used "atacontrol addspare" and then "atacontrol rebuild" to recreate the array.

The rebuilding process was nearly complete when I decided to reboot the box. To my surprise, the RAID was no more detected by the BIOS. The first disk was labeled as "Single" or "Separate" or whatever (don't remember it exactly), the second as "Spare". But there were no RAID volumes detected (as shown on the screen) and FreeBSD wasn't going to boot. So I had to "un-RAID" both disks, recreate the array and reinstall FreeBSD.

I decided to see what will be if I wait until complete rebuilding. Just after it was complete, the ATA driver hanged for nearly 10 secs. It unhanged with the following messages:
ad6: WARNING - WRITE_DMA taskqueue timeout - completing request directly
ad6: WARNING - WRITE_DMA48 freeing taskqueue zombie request

This is bad news - you get RAID1 for redundancy, but if you occasionally reboot while rebuilding, you lose ALL your data.

M$ Windows XP in a similar situation is able to continue the rebuilding process from the point it was stopped when you initiated a reboot.
>How-To-Repeat:
1. Get a working RAID1 of two disks on a Intel MatrixRAID (ICH7 chipset).

2. Put array in a DEGRADED state by removing the power cord from one of the disks.

3. Regain the power, put the disk back to the array by using e.g. "atacontrol addspare ar0 ad4" and initiate the rebuilding by "atacontrol rebuild ar0".

4. Reboot the system while rebuilding.

5. You get it - the system doesn't boot, the data are LOST.
>Fix:
none
>Release-Note:
>Audit-Trail:

From: "Wouter de Jong" <maddog2k@maddog2k.net>
To: <bug-followup@FreeBSD.org>,
	<be9-ml@be9.ru>
Cc:  
Subject: Re: kern/95459: Rebooting the system while rebuilding RAID (Intel MatrixRAID) results in data loss
Date: Mon, 13 Nov 2006 11:47:44 +0100

 This is a multi-part message in MIME format.
 
 ------=_NextPart_000_0021_01C70719.88714550
 Content-Type: text/plain;
 	charset="iso-8859-1"
 Content-Transfer-Encoding: quoted-printable
 
 I get the same error message _after_ rebuilding (and the ar0 goes back =
 to status READY).
 However, my data is not lost nor the RAID.
 The system just 'hangs'.
 
 This is with both ICH5 and ICH6-chipset. (different SuperMicro =
 server-models).
 
 Nov 13 10:41:16 monitoring0-1 kernel: ad4: 76319MB <WDC WD800JD-00LSA0 =
 06.01D06> at ata2-master SATA150
 Nov 13 10:41:37 monitoring0-1 kernel: ad4: inserted into ar0 disk0 as =
 spare
 Nov 13 11:34:22 monitoring0-1 kernel: ad6: WARNING - WRITE_DMA taskqueue =
 timeout - completing request directly
 Nov 13 11:34:22 monitoring0-1 kernel: ad4: WARNING - WRITE_DMA freeing =
 taskqueue zombie request
 Nov 13 11:34:22 monitoring0-1 kernel: ad6: WARNING - WRITE_DMA freeing =
 taskqueue zombie request
 
 After rebooting, it's all OK _after_ a forced fsck in single mode.
 
 Regards,
 
 Wouter
 ------=_NextPart_000_0021_01C70719.88714550
 Content-Type: text/html;
 	charset="iso-8859-1"
 Content-Transfer-Encoding: quoted-printable
 
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
 <HTML><HEAD>
 <META http-equiv=3DContent-Type content=3D"text/html; =
 charset=3Diso-8859-1">
 <META content=3D"MSHTML 6.00.2900.2963" name=3DGENERATOR>
 <STYLE></STYLE>
 </HEAD>
 <BODY bgColor=3D#ffffff>
 <DIV><FONT face=3DArial size=3D2>I get the same error&nbsp;message =
 _after_=20
 rebuilding (and the ar0 goes back to status READY).</FONT></DIV>
 <DIV><FONT face=3DArial size=3D2>However, my data is not lost nor=20
 the&nbsp;RAID.</FONT></DIV>
 <DIV><FONT face=3DArial size=3D2>The system just 'hangs'.</FONT></DIV>
 <DIV><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV>
 <DIV><FONT face=3DArial size=3D2>This is with both ICH5 and =
 ICH6-chipset. (different=20
 SuperMicro server-models).</FONT></DIV>
 <DIV><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV>
 <DIV><FONT face=3DArial size=3D2>Nov 13 10:41:16 monitoring0-1 kernel: =
 ad4: 76319MB=20
 &lt;WDC WD800JD-00LSA0 06.01D06&gt; at ata2-master SATA150<BR>Nov 13 =
 10:41:37=20
 monitoring0-1 kernel: ad4: inserted into ar0 disk0 as spare<BR>Nov 13 =
 11:34:22=20
 monitoring0-1 kernel: ad6: WARNING - WRITE_DMA taskqueue timeout - =
 completing=20
 request directly<BR>Nov 13 11:34:22 monitoring0-1 kernel: ad4: WARNING - =
 
 WRITE_DMA freeing taskqueue zombie request<BR>Nov 13 11:34:22 =
 monitoring0-1=20
 kernel: ad6: WARNING - WRITE_DMA freeing taskqueue zombie=20
 request<BR></FONT></DIV>
 <DIV><FONT face=3DArial size=3D2>After rebooting, it's all OK _after_ a =
 forced fsck=20
 in single mode.</FONT></DIV>
 <DIV><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV>
 <DIV><FONT face=3DArial size=3D2>Regards,</FONT></DIV>
 <DIV><FONT face=3DArial size=3D2><BR>Wouter</DIV></FONT></BODY></HTML>
 
 ------=_NextPart_000_0021_01C70719.88714550--
 

From: Hideki SAKAMOTO <hsakamt@tsnr.com>
To: bug-followup@FreeBSD.org, be9-ml@be9.ru
Cc:  
Subject: Re: kern/95459: Rebooting the system while rebuilding RAID (Intel
 MatrixRAID) results in data loss
Date: Fri, 05 Sep 2008 11:16:09 +0900

 This is a multi-part message in MIME format.
 --------------090608030702030508080702
 Content-Type: text/plain; charset=ISO-2022-JP
 Content-Transfer-Encoding: 7bit
 
 Hi,
 
 I wrote a patch for 6_STABLE and 7_STABLE.
 ata-raid.h.patch is common patch for both version.
 
 I hope this patch, kern/102211(this patch also resolv kern/108924), and
 kern/124064 will be commited in next RELEASE, if it's not too late.
 
 ---
  Hideki Sakamoto
 
 --------------090608030702030508080702
 Content-Type: text/plain;
  name="ata-raid.c.patch7"
 Content-Transfer-Encoding: base64
 Content-Disposition: inline;
  filename="ata-raid.c.patch7"
 
 KioqIGF0YS1yYWlkLmMub3JpZwlUdWUgQXVnIDE0IDAzOjQ2OjMxIDIwMDcKLS0tIGF0YS1y
 YWlkLmMJRnJpIFNlcCAgNSAwMToyMToyNiAyMDA4CioqKioqKioqKioqKioqKgoqKiogMTMy
 NSwxMzMwICoqKioKLS0tIDEzMjUsMTMzMiAtLS0tCiAgCWlmIChjb3VudCkgewogIAkgICAg
 cmRwLT5yZWJ1aWxkX2xiYSA9IDA7CiAgCSAgICByZHAtPnN0YXR1cyB8PSBBUl9TX1JFQlVJ
 TERJTkc7CisgCSAgICBpZiAocmRwLT5mb3JtYXQgPT0gQVJfRl9JTlRFTF9SQUlEKQorIAkJ
 YXRhX3JhaWRfY29uZmlnX2NoYW5nZWQocmRwLCAxKTsKICAJICAgIHJldHVybiAwOwogIAl9
 CiAgCXJldHVybiBFSU87CioqKioqKioqKioqKioqKgoqKiogMjE3NCwyMTc5ICoqKioKLS0t
 IDIxNzYsMjE5MSAtLS0tCiAgCQlyYWlkLT5zdGF0dXMgfD0gQVJfU19ERUdSQURFRDsKICAJ
 CWJyZWFrOwogIAkgICAgY2FzZSBJTlRFTF9TX0RJU0FCTEVEOgorIAkJcmFpZC0+c3RhdHVz
 ID0gQVJfU19SRUFEWTsKKyAJCS8qCisgCQkgKiByb2xsYmFjayB0byBERUdSQURFRCBtb2Rl
 IGJlY2F1c2UgL2Jpbi9kZCBjYW5uJ3Qga2ljaworICAgICAgICAgICAgICAgICAgKiBsaWtl
 IGF0YWNvbnRyb2woOCkgYXQgdGhpcyBtb21lbnQuCisgCQkgKiAKKyAJCSAqIEkgY2hlY2tl
 ZCB0aGUgY29kZSBiZWxvdyBieSBleGVjdXRlIC9iaW4vZGQgb24gc2hlbGwuCisgCQkgKiBp
 ZiAobWFwLT5yZWJ1aWxkX2ZsYWcgJiBJTlRFTF9SRl9SRUJVSUxESU5HICYmIG1hcC0+bWFn
 aWNbMV0gIT0gMHhmZikKKyAJCSAqICAgIHJhaWQtPnN0YXR1cyB8PSAoQVJfU19SRUJVSUxE
 SU5HfEFSX1NfREVHUkFERUQpOworICAgICAgICAgICAgICAgICAgKi8KKyAJCWJyZWFrOwog
 IAkgICAgY2FzZSBJTlRFTF9TX0ZBSUxVUkU6CiAgCQlyYWlkLT5zdGF0dXMgPSAwOwogIAkg
 ICAgfQoqKioqKioqKioqKioqKioKKioqIDIyMDMsMjIxMCAqKioqCiAgCQlyYWlkLT5kaXNr
 c1tkaXNrXS5zZWN0b3JzID0KICAJCSAgICBtZXRhLT5kaXNrW21hcC0+ZGlza19pZHhbZGlz
 a11dLnNlY3RvcnM7CiAgCQlyYWlkLT5kaXNrc1tkaXNrXS5mbGFncyA9IDA7CiEgCQlpZiAo
 bWV0YS0+ZGlza1ttYXAtPmRpc2tfaWR4W2Rpc2tdXS5mbGFncyAmIElOVEVMX0ZfT05MSU5F
 KQohIAkJICAgIHJhaWQtPmRpc2tzW2Rpc2tdLmZsYWdzIHw9IEFSX0RGX09OTElORTsKICAJ
 CWlmIChtZXRhLT5kaXNrW21hcC0+ZGlza19pZHhbZGlza11dLmZsYWdzICYgSU5URUxfRl9B
 U1NJR05FRCkKICAJCSAgICByYWlkLT5kaXNrc1tkaXNrXS5mbGFncyB8PSBBUl9ERl9BU1NJ
 R05FRDsKICAJCWlmIChtZXRhLT5kaXNrW21hcC0+ZGlza19pZHhbZGlza11dLmZsYWdzICYg
 SU5URUxfRl9TUEFSRSkgewotLS0gMjIxNSwyMjI4IC0tLS0KICAJCXJhaWQtPmRpc2tzW2Rp
 c2tdLnNlY3RvcnMgPQogIAkJICAgIG1ldGEtPmRpc2tbbWFwLT5kaXNrX2lkeFtkaXNrXV0u
 c2VjdG9yczsKICAJCXJhaWQtPmRpc2tzW2Rpc2tdLmZsYWdzID0gMDsKISAJCWlmIChtZXRh
 LT5kaXNrW21hcC0+ZGlza19pZHhbZGlza11dLmZsYWdzICYgSU5URUxfRl9PTkxJTkUpIHsK
 ISAJCSAgICBpZiAoKG1hcC0+cmVidWlsZF9mbGFnICYgSU5URUxfUkZfUkVCVUlMRElORykg
 JiYgZGlzayA9PSBtYXAtPm1hZ2ljWzFdKSB7CiEgCQkJcmFpZC0+ZGlza3NbZGlza10uZmxh
 Z3MgfD0gQVJfREZfU1BBUkU7CiEgCQkJLy8gcmFpZC0+cmVidWlsZF9sYmEgPSBtYXAtPnJl
 YnVpbGRfY291bnQgLi4uOwohIAkJICAgIH0gZWxzZSB7CiEgCQkJcmFpZC0+ZGlza3NbZGlz
 a10uZmxhZ3MgfD0gQVJfREZfT05MSU5FOwohIAkJICAgIH0KISAJCX0KICAJCWlmIChtZXRh
 LT5kaXNrW21hcC0+ZGlza19pZHhbZGlza11dLmZsYWdzICYgSU5URUxfRl9BU1NJR05FRCkK
 ICAJCSAgICByYWlkLT5kaXNrc1tkaXNrXS5mbGFncyB8PSBBUl9ERl9BU1NJR05FRDsKICAJ
 CWlmIChtZXRhLT5kaXNrW21hcC0+ZGlza19pZHhbZGlza11dLmZsYWdzICYgSU5URUxfRl9T
 UEFSRSkgewoqKioqKioqKioqKioqKioKKioqIDIyMjIsMjIyOCAqKioqCiAgCQlpZiAoIXN0
 cm5jbXAocmFpZC0+ZGlza3NbZGlza10uc2VyaWFsLCBhdGFkZXYtPnBhcmFtLnNlcmlhbCwK
 ICAJCSAgICBzaXplb2YocmFpZC0+ZGlza3NbZGlza10uc2VyaWFsKSkpIHsKICAJCSAgICBy
 YWlkLT5kaXNrc1tkaXNrXS5kZXYgPSBwYXJlbnQ7CiEgCQkgICAgcmFpZC0+ZGlza3NbZGlz
 a10uZmxhZ3MgfD0gKEFSX0RGX1BSRVNFTlQgfCBBUl9ERl9PTkxJTkUpOwogIAkJICAgIGFy
 cy0+cmFpZFtyYWlkLT52b2x1bWVdID0gcmFpZDsKICAJCSAgICBhcnMtPmRpc2tfbnVtYmVy
 W3JhaWQtPnZvbHVtZV0gPSBkaXNrOwogIAkJICAgIHJldHZhbCA9IDE7Ci0tLSAyMjQwLDIy
 NDYgLS0tLQogIAkJaWYgKCFzdHJuY21wKHJhaWQtPmRpc2tzW2Rpc2tdLnNlcmlhbCwgYXRh
 ZGV2LT5wYXJhbS5zZXJpYWwsCiAgCQkgICAgc2l6ZW9mKHJhaWQtPmRpc2tzW2Rpc2tdLnNl
 cmlhbCkpKSB7CiAgCQkgICAgcmFpZC0+ZGlza3NbZGlza10uZGV2ID0gcGFyZW50OwohIAkJ
 ICAgIHJhaWQtPmRpc2tzW2Rpc2tdLmZsYWdzIHw9IEFSX0RGX1BSRVNFTlQ7CiAgCQkgICAg
 YXJzLT5yYWlkW3JhaWQtPnZvbHVtZV0gPSByYWlkOwogIAkJICAgIGFycy0+ZGlza19udW1i
 ZXJbcmFpZC0+dm9sdW1lXSA9IGRpc2s7CiAgCQkgICAgcmV0dmFsID0gMTsKKioqKioqKioq
 KioqKioqCioqKiAyMjYxLDIyNjggKioqKgogICAgICBzdHJ1Y3QgaW50ZWxfcmFpZF9jb25m
 ICptZXRhOwogICAgICBzdHJ1Y3QgaW50ZWxfcmFpZF9tYXBwaW5nICptYXA7CiAgICAgIHN0
 cnVjdCB0aW1ldmFsIHRpbWVzdGFtcDsKISAgICAgdV9pbnQzMl90IGNoZWNrc3VtLCAqcHRy
 OwogICAgICBpbnQgY291bnQsIGRpc2ssIGVycm9yID0gMDsKICAgICAgY2hhciAqdG1wOwog
 IAogICAgICBpZiAoIShtZXRhID0gKHN0cnVjdCBpbnRlbF9yYWlkX2NvbmYgKikKLS0tIDIy
 NzksMjI4NyAtLS0tCiAgICAgIHN0cnVjdCBpbnRlbF9yYWlkX2NvbmYgKm1ldGE7CiAgICAg
 IHN0cnVjdCBpbnRlbF9yYWlkX21hcHBpbmcgKm1hcDsKICAgICAgc3RydWN0IHRpbWV2YWwg
 dGltZXN0YW1wOwohICAgICB1X2ludDMyX3QgY2hlY2tzdW0sICpwdHIsIHJlYnVpbGRfZmxh
 ZyA9IElOVEVMX1JGX05PUk1BTDsKICAgICAgaW50IGNvdW50LCBkaXNrLCBlcnJvciA9IDA7
 CisgICAgIHVfaW50OF90IHJlYnVpbGRfdGFyZ2V0ID0gMHhmZjsKICAgICAgY2hhciAqdG1w
 OwogIAogICAgICBpZiAoIShtZXRhID0gKHN0cnVjdCBpbnRlbF9yYWlkX2NvbmYgKikKKioq
 KioqKioqKioqKioqCioqKiAyMjkyLDIzMjEgKioqKgogIAkgICAgbWV0YS0+ZGlza1tkaXNr
 XS5zZWN0b3JzID0gcmRwLT5kaXNrc1tkaXNrXS5zZWN0b3JzOwogIAkgICAgbWV0YS0+ZGlz
 a1tkaXNrXS5pZCA9IChjaC0+dW5pdCA8PCAxNikgfCBBVEFfREVWKGF0YWRldi0+dW5pdCk7
 CiAgCX0KISAJZWxzZQogIAkgICAgbWV0YS0+ZGlza1tkaXNrXS5zZWN0b3JzID0gcmRwLT50
 b3RhbF9zZWN0b3JzIC8gcmRwLT53aWR0aDsKICAJbWV0YS0+ZGlza1tkaXNrXS5mbGFncyA9
 IDA7CiEgCWlmIChyZHAtPmRpc2tzW2Rpc2tdLmZsYWdzICYgQVJfREZfU1BBUkUpCiAgCSAg
 ICBtZXRhLT5kaXNrW2Rpc2tdLmZsYWdzICB8PSBJTlRFTF9GX1NQQVJFOwohIAllbHNlIHsK
 ISAJICAgIGlmIChyZHAtPmRpc2tzW2Rpc2tdLmZsYWdzICYgQVJfREZfT05MSU5FKQogIAkJ
 bWV0YS0+ZGlza1tkaXNrXS5mbGFncyB8PSBJTlRFTF9GX09OTElORTsKICAJICAgIGVsc2UK
 ICAJCW1ldGEtPmRpc2tbZGlza10uZmxhZ3MgfD0gSU5URUxfRl9ET1dOOwogIAkgICAgaWYg
 KHJkcC0+ZGlza3NbZGlza10uZmxhZ3MgJiBBUl9ERl9BU1NJR05FRCkKICAJCW1ldGEtPmRp
 c2tbZGlza10uZmxhZ3MgIHw9IElOVEVMX0ZfQVNTSUdORUQ7CiAgCX0KICAgICAgfQogICAg
 ICBtYXAgPSAoc3RydWN0IGludGVsX3JhaWRfbWFwcGluZyAqKSZtZXRhLT5kaXNrW21ldGEt
 PnRvdGFsX2Rpc2tzXTsKICAKICAgICAgYmNvcHkocmRwLT5uYW1lLCBtYXAtPm5hbWUsIHNp
 emVvZihyZHAtPm5hbWUpKTsKICAgICAgbWFwLT50b3RhbF9zZWN0b3JzID0gcmRwLT50b3Rh
 bF9zZWN0b3JzOwohICAgICBtYXAtPnN0YXRlID0gMTI7ICAgICAgICAgICAgICAgICAgICAg
 ICAgICAgICAgICAgICAgICAgICAgICAvKiBYWFggU09TICovCiAgICAgIG1hcC0+b2Zmc2V0
 ID0gcmRwLT5vZmZzZXRfc2VjdG9yczsKICAgICAgbWFwLT5zdHJpcGVfY291bnQgPSByZHAt
 PnRvdGFsX3NlY3RvcnMgLyAocmRwLT5pbnRlcmxlYXZlKnJkcC0+dG90YWxfZGlza3MpOwog
 ICAgICBtYXAtPnN0cmlwZV9zZWN0b3JzID0gIHJkcC0+aW50ZXJsZWF2ZTsKICAgICAgbWFw
 LT5kaXNrX3NlY3RvcnMgPSByZHAtPnRvdGFsX3NlY3RvcnMgLyByZHAtPndpZHRoOwohICAg
 ICBtYXAtPnN0YXR1cyA9IElOVEVMX1NfUkVBRFk7ICAgICAgICAgICAgICAgICAgICAgICAg
 ICAgICAgICAvKiBYWFggU09TICovCiAgICAgIHN3aXRjaCAocmRwLT50eXBlKSB7CiAgICAg
 IGNhc2UgQVJfVF9SQUlEMDoKICAJbWFwLT50eXBlID0gSU5URUxfVF9SQUlEMDsKLS0tIDIz
 MTEsMjM2OCAtLS0tCiAgCSAgICBtZXRhLT5kaXNrW2Rpc2tdLnNlY3RvcnMgPSByZHAtPmRp
 c2tzW2Rpc2tdLnNlY3RvcnM7CiAgCSAgICBtZXRhLT5kaXNrW2Rpc2tdLmlkID0gKGNoLT51
 bml0IDw8IDE2KSB8IEFUQV9ERVYoYXRhZGV2LT51bml0KTsKICAJfQohIAllbHNlIHsKICAJ
 ICAgIG1ldGEtPmRpc2tbZGlza10uc2VjdG9ycyA9IHJkcC0+dG90YWxfc2VjdG9ycyAvIHJk
 cC0+d2lkdGg7CisgCSAgICBtZXRhLT5kaXNrW2Rpc2tdLmlkID0gMHhmZmZmZmZmZjsKKyAJ
 fQogIAltZXRhLT5kaXNrW2Rpc2tdLmZsYWdzID0gMDsKISAJLyoKISAJICogUmVidWlsZGlu
 ZyBzdGF0dXM6CiEgCSAqICAgZHJpdmVyOgohIAkgKiAgICAgLSBBUl9ERl9PTkxJTkUgaXMg
 Tk9UIHNldCBvbiBtaXJyb3IgZHJpdmUuCiEgCSAqICAgICAtIEFSX1NfUkVCVUlMRElORyBp
 cyBzZXQuCiEgCSAqICAgICAtIEFSX0RGX1NQQVJFIGlzIHNldCBvbiBtaXJyb3IgZHJpdmUu
 CiEgCSAqICAgQklPUzoKISAJICogICAgIC0gSU5URUxfRl9PTkxJTkUgaXMgc2V0IG9uIGJv
 dGggbWFzdGVyIGFuZCBtaXJyb3IgZHJpdmUuCiEgCSAqICAgICAtIElOVEVMX1JGX1JFQlVJ
 TERJTkcgaXMgc2V0LgohIAkgKiAgICAgLSBtaXJyb3IncyBkcml2ZSBudW1iZXIgaXMgaW4g
 bWFnaWNbMV0uCiEgCSAqLwohIAlpZiAoKHJkcC0+ZGlza3NbZGlza10uZmxhZ3MgJiBBUl9E
 Rl9TUEFSRSkgJiYKISAJICAgICghKHJkcC0+c3RhdHVzICYgQVJfU19SRUJVSUxESU5HKSB8
 fCAocmVidWlsZF90YXJnZXQgIT0gMHhmZikpKSB7CiAgCSAgICBtZXRhLT5kaXNrW2Rpc2td
 LmZsYWdzICB8PSBJTlRFTF9GX1NQQVJFOwohIAl9IGVsc2UgewohIAkgICAgaWYgKHJkcC0+
 ZGlza3NbZGlza10uZmxhZ3MgJiAoQVJfREZfT05MSU5FfEFSX0RGX1NQQVJFKSkKICAJCW1l
 dGEtPmRpc2tbZGlza10uZmxhZ3MgfD0gSU5URUxfRl9PTkxJTkU7CiAgCSAgICBlbHNlCiAg
 CQltZXRhLT5kaXNrW2Rpc2tdLmZsYWdzIHw9IElOVEVMX0ZfRE9XTjsKICAJICAgIGlmIChy
 ZHAtPmRpc2tzW2Rpc2tdLmZsYWdzICYgQVJfREZfQVNTSUdORUQpCiAgCQltZXRhLT5kaXNr
 W2Rpc2tdLmZsYWdzICB8PSBJTlRFTF9GX0FTU0lHTkVEOworIAkgICAgaWYgKHJkcC0+ZGlz
 a3NbZGlza10uZmxhZ3MgJiBBUl9ERl9TUEFSRSkgeworIAkJcmVidWlsZF90YXJnZXQgPSAo
 dV9pbnQ4X3QpZGlzazsKKyAJCXJlYnVpbGRfZmxhZyA9IElOVEVMX1JGX1JFQlVJTERJTkc7
 CisgCSAgICB9CiAgCX0KICAgICAgfQogICAgICBtYXAgPSAoc3RydWN0IGludGVsX3JhaWRf
 bWFwcGluZyAqKSZtZXRhLT5kaXNrW21ldGEtPnRvdGFsX2Rpc2tzXTsKICAKICAgICAgYmNv
 cHkocmRwLT5uYW1lLCBtYXAtPm5hbWUsIHNpemVvZihyZHAtPm5hbWUpKTsKICAgICAgbWFw
 LT50b3RhbF9zZWN0b3JzID0gcmRwLT50b3RhbF9zZWN0b3JzOwohICAgICBtYXAtPnN0YXRl
 ID0gMjY4OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyog
 WFhYICovCiAgICAgIG1hcC0+b2Zmc2V0ID0gcmRwLT5vZmZzZXRfc2VjdG9yczsKICAgICAg
 bWFwLT5zdHJpcGVfY291bnQgPSByZHAtPnRvdGFsX3NlY3RvcnMgLyAocmRwLT5pbnRlcmxl
 YXZlKnJkcC0+dG90YWxfZGlza3MpOwogICAgICBtYXAtPnN0cmlwZV9zZWN0b3JzID0gIHJk
 cC0+aW50ZXJsZWF2ZTsKICAgICAgbWFwLT5kaXNrX3NlY3RvcnMgPSByZHAtPnRvdGFsX3Nl
 Y3RvcnMgLyByZHAtPndpZHRoOwohICAgICBtYXAtPnJlYnVpbGRfY291bnQgPSBtYXAtPnN0
 cmlwZV9jb3VudCAvIDI7ICAgICAgICAgICAgICAgICAgLyogWFhYICovCiEgICAgIG1hcC0+
 cmVidWlsZF9mbGFnID0gcmVidWlsZF9mbGFnOwohICAgICBpZiAocmRwLT5zdGF0dXMgJiBB
 Ul9TX1JFQlVJTERJTkcpIHsgICAgICAgICAgICAgLyoga2VlcCB0aGlzIG9yZGVyICovCiEg
 CW1hcC0+c3RhdHVzID0gSU5URUxfU19ESVNBQkxFRDsKISAgICAgfSBlbHNlIGlmIChyZHAt
 PnN0YXR1cyAmIEFSX1NfUkVBRFkpIHsKISAJbWFwLT5zdGF0dXMgPSBJTlRFTF9TX1JFQURZ
 OwohICAgICB9IGVsc2UgaWYgKHJkcC0+c3RhdHVzICYgQVJfU19ERUdSQURFRCkgewohIAlt
 YXAtPnN0YXR1cyA9IElOVEVMX1NfREVHUkFERUQ7CiEgICAgIH0gZWxzZSB7CiEgCW1hcC0+
 c3RhdHVzID0gSU5URUxfU19GQUlMVVJFOwohICAgICB9CiAgICAgIHN3aXRjaCAocmRwLT50
 eXBlKSB7CiAgICAgIGNhc2UgQVJfVF9SQUlEMDoKICAJbWFwLT50eXBlID0gSU5URUxfVF9S
 QUlEMDsKKioqKioqKioqKioqKioqCioqKiAyMzM1LDIzNDEgKioqKgogICAgICB9CiAgICAg
 IG1hcC0+dG90YWxfZGlza3MgPSByZHAtPnRvdGFsX2Rpc2tzOwogICAgICBtYXAtPm1hZ2lj
 WzBdID0gMHgwMjsKISAgICAgbWFwLT5tYWdpY1sxXSA9IDB4ZmY7CiAgICAgIG1hcC0+bWFn
 aWNbMl0gPSAweDAxOwogICAgICBmb3IgKGRpc2sgPSAwOyBkaXNrIDwgcmRwLT50b3RhbF9k
 aXNrczsgZGlzaysrKQogIAltYXAtPmRpc2tfaWR4W2Rpc2tdID0gZGlzazsKLS0tIDIzODIs
 MjM4OCAtLS0tCiAgICAgIH0KICAgICAgbWFwLT50b3RhbF9kaXNrcyA9IHJkcC0+dG90YWxf
 ZGlza3M7CiAgICAgIG1hcC0+bWFnaWNbMF0gPSAweDAyOwohICAgICBtYXAtPm1hZ2ljWzFd
 ID0gcmVidWlsZF90YXJnZXQ7CiAgICAgIG1hcC0+bWFnaWNbMl0gPSAweDAxOwogICAgICBm
 b3IgKGRpc2sgPSAwOyBkaXNrIDwgcmRwLT50b3RhbF9kaXNrczsgZGlzaysrKQogIAltYXAt
 PmRpc2tfaWR4W2Rpc2tdID0gZGlzazsKKioqKioqKioqKioqKioqCioqKiA0NTcyLDQ1Nzcg
 KioqKgotLS0gNDYxOSw0NjI2IC0tLS0KICAJcHJpbnRmKCJ0b3RhbF9zZWN0b3JzICAgICAg
 ICVqdVxuIiwgbWFwLT50b3RhbF9zZWN0b3JzKTsKICAJcHJpbnRmKCJzdGF0ZSAgICAgICAg
 ICAgICAgICV1XG4iLCBtYXAtPnN0YXRlKTsKICAJcHJpbnRmKCJyZXNlcnZlZCAgICAgICAg
 ICAgICV1XG4iLCBtYXAtPnJlc2VydmVkKTsKKyAJcHJpbnRmKCJyZWJ1aWxkX2NvdW50ICAg
 ICAgICV1XG4iLCBtYXAtPnJlYnVpbGRfY291bnQpOworIAlwcmludGYoInJlYnVpbGRfZmxh
 ZyAgICAgICAgMHglMDh4XG4iLCBtYXAtPnJlYnVpbGRfZmxhZyk7CiAgCXByaW50Zigib2Zm
 c2V0ICAgICAgICAgICAgICAldVxuIiwgbWFwLT5vZmZzZXQpOwogIAlwcmludGYoImRpc2tf
 c2VjdG9ycyAgICAgICAgJXVcbiIsIG1hcC0+ZGlza19zZWN0b3JzKTsKICAJcHJpbnRmKCJz
 dHJpcGVfY291bnQgICAgICAgICV1XG4iLCBtYXAtPnN0cmlwZV9jb3VudCk7Cg==
 --------------090608030702030508080702
 Content-Type: text/plain;
  name="ata-raid.h.patch"
 Content-Transfer-Encoding: base64
 Content-Disposition: inline;
  filename="ata-raid.h.patch"
 
 KioqIGF0YS1yYWlkLmgub3JpZwlTYXQgU2VwIDMwIDIzOjUxOjQ5IDIwMDYKLS0tIGF0YS1y
 YWlkLmgJVGh1IFNlcCAgNCAxODozNToxNSAyMDA4CioqKioqKioqKioqKioqKgoqKiogMzIz
 LDMyOSAqKioqCiAgICAgIHVfaW50NjRfdCAgICAgICAgICAgdG90YWxfc2VjdG9ycyBfX3Bh
 Y2tlZDsKICAgICAgdV9pbnQzMl90ICAgICAgICAgICBzdGF0ZTsKICAgICAgdV9pbnQzMl90
 ICAgICAgICAgICByZXNlcnZlZDsKISAgICAgdV9pbnQzMl90ICAgICAgICAgICBmaWxsZXJf
 MFsyMF07CiAgICAgIHVfaW50MzJfdCAgICAgICAgICAgb2Zmc2V0OwogICAgICB1X2ludDMy
 X3QgICAgICAgICAgIGRpc2tfc2VjdG9yczsKICAgICAgdV9pbnQzMl90ICAgICAgICAgICBz
 dHJpcGVfY291bnQ7Ci0tLSAzMjMsMzM2IC0tLS0KICAgICAgdV9pbnQ2NF90ICAgICAgICAg
 ICB0b3RhbF9zZWN0b3JzIF9fcGFja2VkOwogICAgICB1X2ludDMyX3QgICAgICAgICAgIHN0
 YXRlOwogICAgICB1X2ludDMyX3QgICAgICAgICAgIHJlc2VydmVkOwohICAgICB1X2ludDMy
 X3QgICAgICAgICAgIGZpbGxlcl8wWzEyXTsKISAgICAgdV9pbnQzMl90ICAgICAgICAgICBy
 ZWJ1aWxkX2NvdW50OwohICAgICB1X2ludDMyX3QgICAgICAgICAgIGR1bW15OwohICAgICB1
 X2ludDMyX3QgICAgICAgICAgIHJlYnVpbGRfZmxhZzsKISAjZGVmaW5lIElOVEVMX1JGX05P
 Uk1BTCAgICAgICAgIDB4MDAwMDAxMDAKISAjZGVmaW5lIElOVEVMX1JGX1JFQlVJTERJTkcg
 ICAgIDB4MDAwMDAwMDEKISAKISAgICAgdV9pbnQzMl90ICAgICAgICAgICBmaWxsZXJfMVs1
 XTsKICAgICAgdV9pbnQzMl90ICAgICAgICAgICBvZmZzZXQ7CiAgICAgIHVfaW50MzJfdCAg
 ICAgICAgICAgZGlza19zZWN0b3JzOwogICAgICB1X2ludDMyX3QgICAgICAgICAgIHN0cmlw
 ZV9jb3VudDsKKioqKioqKioqKioqKioqCioqKiAzNDEsMzQ3ICoqKioKICAKICAgICAgdV9p
 bnQ4X3QgICAgICAgICAgICB0b3RhbF9kaXNrczsKICAgICAgdV9pbnQ4X3QgICAgICAgICAg
 ICBtYWdpY1szXTsKISAgICAgdV9pbnQzMl90ICAgICAgICAgICBmaWxsZXJfMVs3XTsKICAg
 ICAgdV9pbnQzMl90ICAgICAgICAgICBkaXNrX2lkeFsxXTsKICB9IF9fcGFja2VkOwogIAot
 LS0gMzQ4LDM1NCAtLS0tCiAgCiAgICAgIHVfaW50OF90ICAgICAgICAgICAgdG90YWxfZGlz
 a3M7CiAgICAgIHVfaW50OF90ICAgICAgICAgICAgbWFnaWNbM107CiEgICAgIHVfaW50MzJf
 dCAgICAgICAgICAgZmlsbGVyXzJbN107CiAgICAgIHVfaW50MzJfdCAgICAgICAgICAgZGlz
 a19pZHhbMV07CiAgfSBfX3BhY2tlZDsKICAK
 --------------090608030702030508080702
 Content-Type: text/plain;
  name="ata-raid.c.patch6"
 Content-Transfer-Encoding: base64
 Content-Disposition: inline;
  filename="ata-raid.c.patch6"
 
 KioqIGF0YS1yYWlkLmMub3JpZwlUaHUgU2VwICA0IDE4OjQwOjM2IDIwMDgKLS0tIGF0YS1y
 YWlkLmMJRnJpIFNlcCAgNSAxMDo1MjowMSAyMDA4CioqKioqKioqKioqKioqKgoqKiogMTI4
 NiwxMjkxICoqKioKLS0tIDEyODYsMTI5MyAtLS0tCiAgCWlmIChjb3VudCkgewogIAkgICAg
 cmRwLT5yZWJ1aWxkX2xiYSA9IDA7CiAgCSAgICByZHAtPnN0YXR1cyB8PSBBUl9TX1JFQlVJ
 TERJTkc7CisgCSAgICBpZiAocmRwLT5mb3JtYXQgPT0gQVJfRl9JTlRFTF9SQUlEKQorIAkg
 ICAgICAgIGF0YV9yYWlkX2NvbmZpZ19jaGFuZ2VkKHJkcCwgMSk7CiAgCSAgICByZXR1cm4g
 MDsKICAJfQogIAlyZXR1cm4gRUlPOwoqKioqKioqKioqKioqKioKKioqIDIxMzUsMjE0MCAq
 KioqCi0tLSAyMTM3LDIxNTMgLS0tLQogIAkJcmFpZC0+c3RhdHVzIHw9IEFSX1NfREVHUkFE
 RUQ7CiAgCQlicmVhazsKICAJICAgIGNhc2UgSU5URUxfU19ESVNBQkxFRDoKKyAJCXJhaWQt
 PnN0YXR1cyB8PSBBUl9TX1JFQURZOworIAkJLyoKKyAJCSAqIHJvbGxiYWNrIHRvIERFR1JB
 REVEIG1vZGUgYmVjYXVzZSAvYmluL2RkIGNhbm4ndCBraWNrCisgCQkgKiBsaWtlIGF0YWNv
 bnRyb2woOCkgYXQgdGhpcyBtb21lbnQuCisgCQkgKgorIAkJICogSSBjaGVja2VkIHRoZSBj
 b2RlIGJlbG93IGJ5IGV4ZWN1dGUgL2Jpbi9kZCBvbiBzaGVsbC4KKyAJCSAqCisgCQkgKiBp
 ZiAoKG1hcC0+cmVidWlsZF9mbGFnICYgSU5URUxfUkZfUkVCVUlMRElORykgJiYgbWFwLT5t
 YWdpY1sxXSAhPSAweGZmKQorIAkJICogICAgcmFpZC0+c3RhdHVzIHw9IChBUl9TX1JFQlVJ
 TERJTkd8QVJfU19ERUdSQURFRCk7CisgCQkgKi8KKyAJCWJyZWFrOwogIAkgICAgY2FzZSBJ
 TlRFTF9TX0ZBSUxVUkU6CiAgCQlyYWlkLT5zdGF0dXMgPSAwOwogIAkgICAgfQoqKioqKioq
 KioqKioqKioKKioqIDIxNjQsMjE3MSAqKioqCiAgCQlyYWlkLT5kaXNrc1tkaXNrXS5zZWN0
 b3JzID0KICAJCSAgICBtZXRhLT5kaXNrW21hcC0+ZGlza19pZHhbZGlza11dLnNlY3RvcnM7
 CiAgCQlyYWlkLT5kaXNrc1tkaXNrXS5mbGFncyA9IDA7CiEgCQlpZiAobWV0YS0+ZGlza1tt
 YXAtPmRpc2tfaWR4W2Rpc2tdXS5mbGFncyAmIElOVEVMX0ZfT05MSU5FKQohIAkJICAgIHJh
 aWQtPmRpc2tzW2Rpc2tdLmZsYWdzIHw9IEFSX0RGX09OTElORTsKICAJCWlmIChtZXRhLT5k
 aXNrW21hcC0+ZGlza19pZHhbZGlza11dLmZsYWdzICYgSU5URUxfRl9BU1NJR05FRCkKICAJ
 CSAgICByYWlkLT5kaXNrc1tkaXNrXS5mbGFncyB8PSBBUl9ERl9BU1NJR05FRDsKICAJCWlm
 IChtZXRhLT5kaXNrW21hcC0+ZGlza19pZHhbZGlza11dLmZsYWdzICYgSU5URUxfRl9TUEFS
 RSkgewotLS0gMjE3NywyMTkwIC0tLS0KICAJCXJhaWQtPmRpc2tzW2Rpc2tdLnNlY3RvcnMg
 PQogIAkJICAgIG1ldGEtPmRpc2tbbWFwLT5kaXNrX2lkeFtkaXNrXV0uc2VjdG9yczsKICAJ
 CXJhaWQtPmRpc2tzW2Rpc2tdLmZsYWdzID0gMDsKISAJCWlmIChtZXRhLT5kaXNrW21hcC0+
 ZGlza19pZHhbZGlza11dLmZsYWdzICYgSU5URUxfRl9PTkxJTkUpIHsKISAJCSAgICBpZiAo
 KG1hcC0+cmVidWlsZF9mbGFnICYgSU5URUxfUkZfUkVCVUlMRElORykgJiYgZGlzayA9PSBt
 YXAtPm1hZ2ljWzFdKSB7CiEgCQkgICAgICAgIHJhaWQtPmRpc2tzW2Rpc2tdLmZsYWdzIHw9
 IEFSX0RGX1NQQVJFOwohIAkJCS8vIHJhaWQtPnJlYnVpbGRfbGJhID0gbWFwLT5yZWJ1aWxk
 X2NvdW50IC4uLjsKISAJCSAgICB9IGVsc2UgewohIAkJICAgICAgICByYWlkLT5kaXNrc1tk
 aXNrXS5mbGFncyB8PSBBUl9ERl9PTkxJTkU7CiEgCQkgICAgfQohIAkJfQogIAkJaWYgKG1l
 dGEtPmRpc2tbbWFwLT5kaXNrX2lkeFtkaXNrXV0uZmxhZ3MgJiBJTlRFTF9GX0FTU0lHTkVE
 KQogIAkJICAgIHJhaWQtPmRpc2tzW2Rpc2tdLmZsYWdzIHw9IEFSX0RGX0FTU0lHTkVEOwog
 IAkJaWYgKG1ldGEtPmRpc2tbbWFwLT5kaXNrX2lkeFtkaXNrXV0uZmxhZ3MgJiBJTlRFTF9G
 X1NQQVJFKSB7CioqKioqKioqKioqKioqKgoqKiogMjE4MywyMTg5ICoqKioKICAJCWlmICgh
 c3RybmNtcChyYWlkLT5kaXNrc1tkaXNrXS5zZXJpYWwsIGF0YWRldi0+cGFyYW0uc2VyaWFs
 LAogIAkJICAgIHNpemVvZihyYWlkLT5kaXNrc1tkaXNrXS5zZXJpYWwpKSkgewogIAkJICAg
 IHJhaWQtPmRpc2tzW2Rpc2tdLmRldiA9IHBhcmVudDsKISAJCSAgICByYWlkLT5kaXNrc1tk
 aXNrXS5mbGFncyB8PSAoQVJfREZfUFJFU0VOVCB8IEFSX0RGX09OTElORSk7CiAgCQkgICAg
 YXJzLT5yYWlkW3JhaWQtPnZvbHVtZV0gPSByYWlkOwogIAkJICAgIGFycy0+ZGlza19udW1i
 ZXJbcmFpZC0+dm9sdW1lXSA9IGRpc2s7CiAgCQkgICAgcmV0dmFsID0gMTsKLS0tIDIyMDIs
 MjIwOCAtLS0tCiAgCQlpZiAoIXN0cm5jbXAocmFpZC0+ZGlza3NbZGlza10uc2VyaWFsLCBh
 dGFkZXYtPnBhcmFtLnNlcmlhbCwKICAJCSAgICBzaXplb2YocmFpZC0+ZGlza3NbZGlza10u
 c2VyaWFsKSkpIHsKICAJCSAgICByYWlkLT5kaXNrc1tkaXNrXS5kZXYgPSBwYXJlbnQ7CiEg
 CQkgICAgcmFpZC0+ZGlza3NbZGlza10uZmxhZ3MgfD0gQVJfREZfUFJFU0VOVDsKICAJCSAg
 ICBhcnMtPnJhaWRbcmFpZC0+dm9sdW1lXSA9IHJhaWQ7CiAgCQkgICAgYXJzLT5kaXNrX251
 bWJlcltyYWlkLT52b2x1bWVdID0gZGlzazsKICAJCSAgICByZXR2YWwgPSAxOwoqKioqKioq
 KioqKioqKioKKioqIDIyMjIsMjIyOSAqKioqCiAgICAgIHN0cnVjdCBpbnRlbF9yYWlkX2Nv
 bmYgKm1ldGE7CiAgICAgIHN0cnVjdCBpbnRlbF9yYWlkX21hcHBpbmcgKm1hcDsKICAgICAg
 c3RydWN0IHRpbWV2YWwgdGltZXN0YW1wOwohICAgICB1X2ludDMyX3QgY2hlY2tzdW0sICpw
 dHI7CiAgICAgIGludCBjb3VudCwgZGlzaywgZXJyb3IgPSAwOwogICAgICBjaGFyICp0bXA7
 CiAgCiAgICAgIGlmICghKG1ldGEgPSAoc3RydWN0IGludGVsX3JhaWRfY29uZiAqKQotLS0g
 MjI0MSwyMjQ5IC0tLS0KICAgICAgc3RydWN0IGludGVsX3JhaWRfY29uZiAqbWV0YTsKICAg
 ICAgc3RydWN0IGludGVsX3JhaWRfbWFwcGluZyAqbWFwOwogICAgICBzdHJ1Y3QgdGltZXZh
 bCB0aW1lc3RhbXA7CiEgICAgIHVfaW50MzJfdCBjaGVja3N1bSwgKnB0ciwgcmVidWlsZF9m
 bGFnID0gSU5URUxfUkZfTk9STUFMOwogICAgICBpbnQgY291bnQsIGRpc2ssIGVycm9yID0g
 MDsKKyAgICAgdV9pbnQ4X3QgcmVidWlsZF90YXJnZXQgPSAweGZmOwogICAgICBjaGFyICp0
 bXA7CiAgCiAgICAgIGlmICghKG1ldGEgPSAoc3RydWN0IGludGVsX3JhaWRfY29uZiAqKQoq
 KioqKioqKioqKioqKioKKioqIDIyNTMsMjI4MiAqKioqCiAgCSAgICBtZXRhLT5kaXNrW2Rp
 c2tdLnNlY3RvcnMgPSByZHAtPmRpc2tzW2Rpc2tdLnNlY3RvcnM7CiAgCSAgICBtZXRhLT5k
 aXNrW2Rpc2tdLmlkID0gKGNoLT51bml0IDw8IDE2KSB8IEFUQV9ERVYoYXRhZGV2LT51bml0
 KTsKICAJfQohIAllbHNlCiAgCSAgICBtZXRhLT5kaXNrW2Rpc2tdLnNlY3RvcnMgPSByZHAt
 PnRvdGFsX3NlY3RvcnMgLyByZHAtPndpZHRoOwogIAltZXRhLT5kaXNrW2Rpc2tdLmZsYWdz
 ID0gMDsKISAJaWYgKHJkcC0+ZGlza3NbZGlza10uZmxhZ3MgJiBBUl9ERl9TUEFSRSkKICAJ
 ICAgIG1ldGEtPmRpc2tbZGlza10uZmxhZ3MgIHw9IElOVEVMX0ZfU1BBUkU7CiEgCWVsc2Ug
 ewohIAkgICAgaWYgKHJkcC0+ZGlza3NbZGlza10uZmxhZ3MgJiBBUl9ERl9PTkxJTkUpCiAg
 CQltZXRhLT5kaXNrW2Rpc2tdLmZsYWdzIHw9IElOVEVMX0ZfT05MSU5FOwogIAkgICAgZWxz
 ZQogIAkJbWV0YS0+ZGlza1tkaXNrXS5mbGFncyB8PSBJTlRFTF9GX0RPV047CiAgCSAgICBp
 ZiAocmRwLT5kaXNrc1tkaXNrXS5mbGFncyAmIEFSX0RGX0FTU0lHTkVEKQogIAkJbWV0YS0+
 ZGlza1tkaXNrXS5mbGFncyAgfD0gSU5URUxfRl9BU1NJR05FRDsKICAJfQogICAgICB9CiAg
 ICAgIG1hcCA9IChzdHJ1Y3QgaW50ZWxfcmFpZF9tYXBwaW5nICopJm1ldGEtPmRpc2tbbWV0
 YS0+dG90YWxfZGlza3NdOwogIAogICAgICBiY29weShyZHAtPm5hbWUsIG1hcC0+bmFtZSwg
 c2l6ZW9mKHJkcC0+bmFtZSkpOwogICAgICBtYXAtPnRvdGFsX3NlY3RvcnMgPSByZHAtPnRv
 dGFsX3NlY3RvcnM7CiEgICAgIG1hcC0+c3RhdGUgPSAxMjsgICAgICAgICAgICAgICAgICAg
 ICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFhYWCBTT1MgKi8KICAgICAgbWFwLT5vZmZz
 ZXQgPSByZHAtPm9mZnNldF9zZWN0b3JzOwogICAgICBtYXAtPnN0cmlwZV9jb3VudCA9IHJk
 cC0+dG90YWxfc2VjdG9ycyAvIChyZHAtPmludGVybGVhdmUqcmRwLT50b3RhbF9kaXNrcyk7
 CiAgICAgIG1hcC0+c3RyaXBlX3NlY3RvcnMgPSAgcmRwLT5pbnRlcmxlYXZlOwogICAgICBt
 YXAtPmRpc2tfc2VjdG9ycyA9IHJkcC0+dG90YWxfc2VjdG9ycyAvIHJkcC0+d2lkdGg7CiEg
 ICAgIG1hcC0+c3RhdHVzID0gSU5URUxfU19SRUFEWTsgICAgICAgICAgICAgICAgICAgICAg
 ICAgICAgICAgIC8qIFhYWCBTT1MgKi8KICAgICAgc3dpdGNoIChyZHAtPnR5cGUpIHsKICAg
 ICAgY2FzZSBBUl9UX1JBSUQwOgogIAltYXAtPnR5cGUgPSBJTlRFTF9UX1JBSUQwOwotLS0g
 MjI3MywyMzMwIC0tLS0KICAJICAgIG1ldGEtPmRpc2tbZGlza10uc2VjdG9ycyA9IHJkcC0+
 ZGlza3NbZGlza10uc2VjdG9yczsKICAJICAgIG1ldGEtPmRpc2tbZGlza10uaWQgPSAoY2gt
 PnVuaXQgPDwgMTYpIHwgQVRBX0RFVihhdGFkZXYtPnVuaXQpOwogIAl9CiEgCWVsc2Ugewog
 IAkgICAgbWV0YS0+ZGlza1tkaXNrXS5zZWN0b3JzID0gcmRwLT50b3RhbF9zZWN0b3JzIC8g
 cmRwLT53aWR0aDsKKyAJICAgIG1ldGEtPmRpc2tbZGlza10uaWQgPSAweGZmZmZmZmZmOwor
 IAl9CiAgCW1ldGEtPmRpc2tbZGlza10uZmxhZ3MgPSAwOwohIAkvKgohIAkgKiBSZWJ1aWxk
 aW5nIHN0YXR1czogCiEgCSAqICAgZHJpdmVyOgohIAkgKiAgICAgLSBBUl9ERl9PTkxJTkUg
 aXMgTk9UIHNldCBvbiBtaXJyb3IgZHJpdmUuCiEgCSAqICAgICAtIEFSX1NfUkVCVUlMRElO
 RyBpcyBzZXQuCiEgCSAqICAgICAtIEFSX0RGX1NQQVJFIGlzIHNldCBvbiBtaXJyb3IgZHJp
 dmUuCiEgCSAqICAgQklPUzogICAKISAJICogICAgIC0gSU5URUxfRl9PTkxJTkUgaXMgc2V0
 IG9uIGJvdGggbWFzdGVyIGFuZCBtaXJyb3IgZHJpdmUuCiEgCSAqICAgICAtIElOVEVMX1JG
 X1JFQlVJTERJTkcgaXMgc2V0LgohIAkgKiAgICAgLSBtaXJyb3IncyBkcml2ZSBudW1iZXIg
 aXMgaW4gbWFnaWNbMV0uCiEgCSAqLwohIAlpZiAoKHJkcC0+ZGlza3NbZGlza10uZmxhZ3Mg
 JiBBUl9ERl9TUEFSRSkgJiYKISAJICAgICAgKCEocmRwLT5zdGF0dXMgJiBBUl9TX1JFQlVJ
 TERJTkcpIHx8IChyZWJ1aWxkX3RhcmdldCAhPSAweGZmKSkpIHsKICAJICAgIG1ldGEtPmRp
 c2tbZGlza10uZmxhZ3MgIHw9IElOVEVMX0ZfU1BBUkU7CiEgCX0gZWxzZSB7CiEgCSAgICBp
 ZiAoKHJkcC0+ZGlza3NbZGlza10uZmxhZ3MgJiAoQVJfREZfT05MSU5FfEFSX0RGX1NQQVJF
 KSkpCiAgCQltZXRhLT5kaXNrW2Rpc2tdLmZsYWdzIHw9IElOVEVMX0ZfT05MSU5FOwogIAkg
 ICAgZWxzZQogIAkJbWV0YS0+ZGlza1tkaXNrXS5mbGFncyB8PSBJTlRFTF9GX0RPV047CiAg
 CSAgICBpZiAocmRwLT5kaXNrc1tkaXNrXS5mbGFncyAmIEFSX0RGX0FTU0lHTkVEKQogIAkJ
 bWV0YS0+ZGlza1tkaXNrXS5mbGFncyAgfD0gSU5URUxfRl9BU1NJR05FRDsKKyAJICAgIGlm
 IChyZHAtPmRpc2tzW2Rpc2tdLmZsYWdzICYgQVJfREZfU1BBUkUpIHsKKyAJCXJlYnVpbGRf
 dGFyZ2V0ID0gKHVfaW50OF90KWRpc2s7CisgCQlyZWJ1aWxkX2ZsYWcgfD0gSU5URUxfUkZf
 UkVCVUlMRElORzsKKyAJICAgIH0KICAJfQogICAgICB9CiAgICAgIG1hcCA9IChzdHJ1Y3Qg
 aW50ZWxfcmFpZF9tYXBwaW5nICopJm1ldGEtPmRpc2tbbWV0YS0+dG90YWxfZGlza3NdOwog
 IAogICAgICBiY29weShyZHAtPm5hbWUsIG1hcC0+bmFtZSwgc2l6ZW9mKHJkcC0+bmFtZSkp
 OwogICAgICBtYXAtPnRvdGFsX3NlY3RvcnMgPSByZHAtPnRvdGFsX3NlY3RvcnM7CiEgICAg
 IG1hcC0+c3RhdGUgPSAyNjg7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
 ICAgICAgIC8qIFhYWCAqLwogICAgICBtYXAtPm9mZnNldCA9IHJkcC0+b2Zmc2V0X3NlY3Rv
 cnM7CiAgICAgIG1hcC0+c3RyaXBlX2NvdW50ID0gcmRwLT50b3RhbF9zZWN0b3JzIC8gKHJk
 cC0+aW50ZXJsZWF2ZSpyZHAtPnRvdGFsX2Rpc2tzKTsKICAgICAgbWFwLT5zdHJpcGVfc2Vj
 dG9ycyA9ICByZHAtPmludGVybGVhdmU7CiAgICAgIG1hcC0+ZGlza19zZWN0b3JzID0gcmRw
 LT50b3RhbF9zZWN0b3JzIC8gcmRwLT53aWR0aDsKISAgICAgbWFwLT5yZWJ1aWxkX2NvdW50
 ID0gbWFwLT5zdHJpcGVfY291bnQgLyAyOyAgICAgICAgICAgICAgICAvKiBYWFggKi8KISAg
 ICAgbWFwLT5yZWJ1aWxkX2ZsYWcgPSByZWJ1aWxkX2ZsYWc7CiEgICAgIGlmIChyZHAtPnN0
 YXR1cyAmIEFSX1NfUkVCVUlMRElORykgeyAgICAgICAgICAgLyoga2VlcCB0aGlzIG9yZGVy
 ICovCiEgICAgIAltYXAtPnN0YXR1cyA9IElOVEVMX1NfRElTQUJMRUQ7CiEgICAgIH0gZWxz
 ZSBpZiAocmRwLT5zdGF0dXMgJiBBUl9TX1JFQURZKSB7CiEgICAgIAltYXAtPnN0YXR1cyA9
 IElOVEVMX1NfUkVBRFk7CiEgICAgIH0gZWxzZSBpZiAocmRwLT5zdGF0dXMgJiBBUl9TX0RF
 R1JBREVEKSB7CiEgCW1hcC0+c3RhdHVzID0gSU5URUxfU19ERUdSQURFRDsKISAgICAgfSBl
 bHNlIHsKISAJbWFwLT5zdGF0dXMgPSBJTlRFTF9TX0ZBSUxVUkU7CiEgICAgIH0KICAgICAg
 c3dpdGNoIChyZHAtPnR5cGUpIHsKICAgICAgY2FzZSBBUl9UX1JBSUQwOgogIAltYXAtPnR5
 cGUgPSBJTlRFTF9UX1JBSUQwOwoqKioqKioqKioqKioqKioKKioqIDIyOTYsMjMwMiAqKioq
 CiAgICAgIH0KICAgICAgbWFwLT50b3RhbF9kaXNrcyA9IHJkcC0+dG90YWxfZGlza3M7CiAg
 ICAgIG1hcC0+bWFnaWNbMF0gPSAweDAyOwohICAgICBtYXAtPm1hZ2ljWzFdID0gMHhmZjsK
 ICAgICAgbWFwLT5tYWdpY1syXSA9IDB4MDE7CiAgICAgIGZvciAoZGlzayA9IDA7IGRpc2sg
 PCByZHAtPnRvdGFsX2Rpc2tzOyBkaXNrKyspCiAgCW1hcC0+ZGlza19pZHhbZGlza10gPSBk
 aXNrOwotLS0gMjM0NCwyMzUwIC0tLS0KICAgICAgfQogICAgICBtYXAtPnRvdGFsX2Rpc2tz
 ID0gcmRwLT50b3RhbF9kaXNrczsKICAgICAgbWFwLT5tYWdpY1swXSA9IDB4MDI7CiEgICAg
 IG1hcC0+bWFnaWNbMV0gPSByZWJ1aWxkX3RhcmdldDsKICAgICAgbWFwLT5tYWdpY1syXSA9
 IDB4MDE7CiAgICAgIGZvciAoZGlzayA9IDA7IGRpc2sgPCByZHAtPnRvdGFsX2Rpc2tzOyBk
 aXNrKyspCiAgCW1hcC0+ZGlza19pZHhbZGlza10gPSBkaXNrOwoqKioqKioqKioqKioqKioK
 KioqIDQ1MzAsNDUzNSAqKioqCi0tLSA0NTc4LDQ1ODUgLS0tLQogIAlwcmludGYoInRvdGFs
 X3NlY3RvcnMgICAgICAgJWp1XG4iLCBtYXAtPnRvdGFsX3NlY3RvcnMpOwogIAlwcmludGYo
 InN0YXRlICAgICAgICAgICAgICAgJXVcbiIsIG1hcC0+c3RhdGUpOwogIAlwcmludGYoInJl
 c2VydmVkICAgICAgICAgICAgJXVcbiIsIG1hcC0+cmVzZXJ2ZWQpOworIAlwcmludGYoInJl
 YnVpbGRfY291bnQgICAgICAgJXVcbiIsIG1hcC0+cmVidWlsZF9jb3VudCk7CisgCXByaW50
 ZigicmVidWlsZF9mbGFnICAgICAgICAweCUwOHhcbiIsIG1hcC0+cmVidWlsZF9mbGFnKTsK
 ICAJcHJpbnRmKCJvZmZzZXQgICAgICAgICAgICAgICV1XG4iLCBtYXAtPm9mZnNldCk7CiAg
 CXByaW50ZigiZGlza19zZWN0b3JzICAgICAgICAldVxuIiwgbWFwLT5kaXNrX3NlY3RvcnMp
 OwogIAlwcmludGYoInN0cmlwZV9jb3VudCAgICAgICAgJXVcbiIsIG1hcC0+c3RyaXBlX2Nv
 dW50KTsK
 --------------090608030702030508080702--
>Unformatted:
