Subject: Re: Last remaining insque / remque uses
To: Jason Thorpe <thorpej@shagadelic.org>
From: Iain Hibbert <plunky@rya-online.net>
List: tech-net
Date: 10/28/2007 13:16:29
  This message is in MIME format.  The first part should be readable text,
  while the remaining parts are likely unreadable without MIME-aware tools.

--0-429050770-1193577389=:16586
Content-Type: TEXT/PLAIN; charset=US-ASCII

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On Tue, 23 Oct 2007, Jason Thorpe wrote:

> The last remaining uses of insque / remque in the kernel are:
>
> C symbol: insque
>
>  File             Function       Line
> 0 coda_namecache.c <global>        96 #ifndef insque

Coda is much cleaner than netiso, and its not too difficult to tidy that
away. There are two ways through it and I'm not sure which is better.

a) If we own that code and want to use queue(3) macros, then diff.queue
attached does handle that. There is not an exact match between queue(3)
and the macros that were being used and the original macros were not a
complete abstraction, so I've just removed them and replaced with the
queue(3) macros in plain view.

b) If the coda project owns that code and it would be difficult to
maintain differences, then diff.insque attached removes the dependency by
giving coda_namecache a private copy of insque/remque and changing nothing
else.

I notice that FreeBSD uses the same kernel code as us, and could no doubt
update the same way (they have an open PR to do the second method though
the patch supplied is much more invasive). Linux has different, so maybe
the coda project does not have a great claim on it. I prefer the queue(3)
method, but offer both for comment.

I don't use coda and only have one computer, so testing is needed..

iain

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.7 (NetBSD)

iQEVAwUBRySLrvFJxoMWDXVDAQIAjAgAm1ugd5OU2DH8tRwvCFQrp/HFzeNi9BZy
XBjIV0UWH+TNeruxv+P/SE5AlmdOmzklRflxvaPuE+seRvYlTpeC4xfnDUABu3iL
O6v4xY+PDl906lzVN9bYpdYVxWbqdp1wZPV9wiymatio5h42jKfcbXXCsIooMDmj
7GOq73++PWncfxdXyfpk7AUMrbKEW7sS7gWsPH7tEaGm/yEW5BXHpOnqYc5CVMGD
N9U7Xfc28dYhzSMhMmSrJGEKjJY5cKikWJxni1oaSNIA1J6DCy6+nRXnxsid20ST
3ma9BLGTLhkXLxr/To5pFolE2FNmlfzhuJOPY6jsEi17Ugqe53iG5g==
=IFwZ
-----END PGP SIGNATURE-----
--0-429050770-1193577389=:16586
Content-Type: TEXT/PLAIN; charset=US-ASCII; name=diff.queue
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.NEB.4.64.0710281316290.16586@localhost.>
Content-Description: move coda to queue(3) macros
Content-Disposition: attachment; filename=diff.queue

LS0tIC91c3Ivc3JjL3N5cy9jb2RhL2NvZGFfbmFtZWNhY2hlLmMJMjAwNy0x
MC0yNCAyMDoxNzoyOS4wMDAwMDAwMDAgKzAxMDANCisrKyBjb2RhX25hbWVj
YWNoZS5jCTIwMDctMTAtMjggMTI6NDE6MDcuMDAwMDAwMDAwICswMDAwDQpA
QCAtOTMsMTAgKzkzLDYgQEANCiAjaW5jbHVkZSA8Y29kYS9jb2RhX3Zub3Bz
Lmg+DQogI2VuZGlmDQogDQotI2lmbmRlZiBpbnNxdWUNCi0jaW5jbHVkZSA8
c3lzL3N5c3RtLmg+DQotI2VuZGlmIC8qIGluc3F1ZSAqLw0KLQ0KIC8qDQog
ICogRGVjbGFyYXRpb24gb2YgdGhlIG5hbWUgY2FjaGUgZGF0YSBzdHJ1Y3R1
cmUuDQogICovDQpAQCAtMTUwLDE4ICsxNDYsMTUgQEANCiAgICAgQ09EQV9B
TExPQyhjb2RhX25jX2hlYXAsIHN0cnVjdCBjb2RhX2NhY2hlICosIFRPVEFM
X0NBQ0hFX1NJWkUpOw0KICAgICBDT0RBX0FMTE9DKGNvZGFfbmNfaGFzaCwg
c3RydWN0IGNvZGFfaGFzaCAqLCBUT1RBTF9IQVNIX1NJWkUpOw0KIA0KLSAg
ICBjb2RhX25jX2xydS5scnVfbmV4dCA9DQotCWNvZGFfbmNfbHJ1LmxydV9w
cmV2ID0gKHN0cnVjdCBjb2RhX2NhY2hlICopTFJVX1BBUlQoJmNvZGFfbmNf
bHJ1KTsNCi0NCisgICAgbWVtc2V0KGNvZGFfbmNfaGVhcCwgMCwgVE9UQUxf
Q0FDSEVfU0laRSk7DQorICAgIFRBSUxRX0lOSVQoJmNvZGFfbmNfbHJ1Lmhl
YWQpOw0KIA0KICAgICBmb3IgKGk9MDsgaSA8IGNvZGFfbmNfc2l6ZTsgaSsr
KSB7CS8qIGluaXRpYWxpemUgdGhlIGhlYXAgKi8NCi0JQ09EQV9OQ19MUlVJ
TlMoJmNvZGFfbmNfaGVhcFtpXSwgJmNvZGFfbmNfbHJ1KTsNCi0JQ09EQV9O
Q19IU0hOVUwoJmNvZGFfbmNfaGVhcFtpXSk7DQotCWNvZGFfbmNfaGVhcFtp
XS5jcCA9IGNvZGFfbmNfaGVhcFtpXS5kY3AgPSAoc3RydWN0IGNub2RlICop
MDsNCisJVEFJTFFfSU5TRVJUX0hFQUQoJmNvZGFfbmNfbHJ1LmhlYWQsICZj
b2RhX25jX2hlYXBbaV0sIGxydSk7DQogICAgIH0NCiANCiAgICAgZm9yIChp
PTA7IGkgPCBjb2RhX25jX2hhc2hzaXplOyBpKyspIHsJLyogaW5pdGlhbGl6
ZSB0aGUgaGFzaHRhYmxlICovDQotCUNPREFfTkNfSFNITlVMKChzdHJ1Y3Qg
Y29kYV9jYWNoZSAqKSZjb2RhX25jX2hhc2hbaV0pOw0KKwlMSVNUX0lOSVQo
JmNvZGFfbmNfaGFzaFtpXS5oZWFkKTsNCiAgICAgfQ0KIA0KICAgICBjb2Rh
X25jX2luaXRpYWxpemVkKys7DQpAQCAtMTg2LDkgKzE3OSw3IEBADQogCQlt
eXByaW50ZigoImNvZGFfbmNfZmluZChkY3AgJXAsIG5hbWUgJXMsIGxlbiAl
ZCwgY3JlZCAlcCwgaGFzaCAlZFxuIiwNCiAJCQlkY3AsIG5hbWUsIG5hbWVs
ZW4sIGNyZWQsIGhhc2gpKTspDQogDQotCWZvciAoY25jcCA9IGNvZGFfbmNf
aGFzaFtoYXNoXS5oYXNoX25leHQ7DQotCSAgICAgY25jcCAhPSAoc3RydWN0
IGNvZGFfY2FjaGUgKikmY29kYV9uY19oYXNoW2hhc2hdOw0KLQkgICAgIGNu
Y3AgPSBjbmNwLT5oYXNoX25leHQsIGNvdW50KyspDQorCUxJU1RfRk9SRUFD
SChjbmNwLCAmY29kYV9uY19oYXNoW2hhc2hdLmhlYWQsIGhhc2gpDQogCXsN
CiANCiAJICAgIGlmICgoQ09EQV9OQU1FTUFUQ0goY25jcCwgbmFtZSwgbmFt
ZWxlbiwgZGNwKSkgJiYNCkBAIC0yMTMsNiArMjA0LDcgQEANCiAJCXByaW50
X2NyZWQoY25jcC0+Y3JlZCk7DQogCSAgICB9DQogI2VuZGlmDQorCSAgICBj
b3VudCsrOw0KIAl9DQogDQogCXJldHVybigoc3RydWN0IGNvZGFfY2FjaGUg
KikwKTsNCkBAIC0yNTMsOSArMjQ1LDggQEANCiAgICAgY29kYV9uY19zdGF0
LmVudGVycysrOwkJLyogcmVjb3JkIHRoZSBlbnRlcnMgc3RhdGlzdGljICov
DQogDQogICAgIC8qIEdyYWIgdGhlIG5leHQgZWxlbWVudCBpbiB0aGUgbHJ1
IGNoYWluICovDQotICAgIGNuY3AgPSBDT0RBX05DX0xSVUdFVChjb2RhX25j
X2xydSk7DQotDQotICAgIENPREFfTkNfTFJVUkVNKGNuY3ApOwkvKiByZW1v
dmUgaXQgZnJvbSB0aGUgbGlzdHMgKi8NCisgICAgY25jcCA9IFRBSUxRX0ZJ
UlNUKCZjb2RhX25jX2xydS5oZWFkKTsNCisgICAgVEFJTFFfUkVNT1ZFKCZj
b2RhX25jX2xydS5oZWFkLCBjbmNwLCBscnUpOw0KIA0KICAgICBpZiAoQ09E
QV9OQ19WQUxJRChjbmNwKSkgew0KIAkvKiBTZWVtcyByZWFsbHkgdWdseSwg
YnV0IHdlIGhhdmUgdG8gZGVjcmVtZW50IHRoZSBhcHByb3ByaWF0ZQ0KQEAg
LTI2NCw3ICsyNTUsNyBAQA0KIAljb2RhX25jX2hhc2hbQ09EQV9OQ19IQVNI
KGNuY3AtPm5hbWUsIGNuY3AtPm5hbWVsZW4sIGNuY3AtPmRjcCldLmxlbmd0
aC0tOw0KIA0KIAljb2RhX25jX3N0YXQubHJ1X3JtKys7CS8qIHphcHBlZCBh
IHZhbGlkIGVudHJ5ICovDQotCUNPREFfTkNfSFNIUkVNKGNuY3ApOw0KKwlM
SVNUX1JFTU9WRShjbmNwLCBoYXNoKTsNCiAJdnJlbGUoQ1RPVihjbmNwLT5k
Y3ApKTsNCiAJdnJlbGUoQ1RPVihjbmNwLT5jcCkpOw0KIAlrYXV0aF9jcmVk
X2ZyZWUoY25jcC0+Y3JlZCk7DQpAQCAtMjg0LDkgKzI3NSw4IEBADQogICAg
IGJjb3B5KG5hbWUsIGNuY3AtPm5hbWUsICh1bnNpZ25lZCluYW1lbGVuKTsN
CiANCiAgICAgLyogSW5zZXJ0IGludG8gdGhlIGxydSBhbmQgaGFzaCBjaGFp
bnMuICovDQotDQotICAgIENPREFfTkNfTFJVSU5TKGNuY3AsICZjb2RhX25j
X2xydSk7DQotICAgIENPREFfTkNfSFNISU5TKGNuY3AsICZjb2RhX25jX2hh
c2hbaGFzaF0pOw0KKyAgICBUQUlMUV9JTlNFUlRfVEFJTCgmY29kYV9uY19s
cnUuaGVhZCwgY25jcCwgbHJ1KTsNCisgICAgTElTVF9JTlNFUlRfSEVBRCgm
Y29kYV9uY19oYXNoW2hhc2hdLmhlYWQsIGNuY3AsIGhhc2gpOw0KICAgICBj
b2RhX25jX2hhc2hbaGFzaF0ubGVuZ3RoKys7ICAgICAgICAgICAgICAgICAg
ICAgIC8qIFVzZWQgZm9yIHR1bmluZyAqLw0KIA0KICAgICBDT0RBX05DX0RF
QlVHKENPREFfTkNfUFJJTlRDT0RBX05DLCBwcmludF9jb2RhX25jKCk7ICkN
CkBAIC0zMjgsMTMgKzMxOCwxMyBAQA0KIAljb2RhX25jX3N0YXQuaGl0cysr
Ow0KIA0KIAkvKiBwdXQgdGhpcyBlbnRyeSBhdCB0aGUgZW5kIG9mIHRoZSBM
UlUgKi8NCi0JQ09EQV9OQ19MUlVSRU0oY25jcCk7DQotCUNPREFfTkNfTFJV
SU5TKGNuY3AsICZjb2RhX25jX2xydSk7DQorCVRBSUxRX1JFTU9WRSgmY29k
YV9uY19scnUuaGVhZCwgY25jcCwgbHJ1KTsNCisJVEFJTFFfSU5TRVJUX1RB
SUwoJmNvZGFfbmNfbHJ1LmhlYWQsIGNuY3AsIGxydSk7DQogDQogCS8qIG1v
dmUgaXQgdG8gdGhlIGZyb250IG9mIHRoZSBoYXNoIGNoYWluICovDQogCS8q
IGRvbid0IG5lZWQgdG8gY2hhbmdlIHRoZSBoYXNoIGJ1Y2tldCBsZW5ndGgg
Ki8NCi0JQ09EQV9OQ19IU0hSRU0oY25jcCk7DQotCUNPREFfTkNfSFNISU5T
KGNuY3AsICZjb2RhX25jX2hhc2hbaGFzaF0pOw0KKwlMSVNUX1JFTU9WRShj
bmNwLCBoYXNoKTsNCisJTElTVF9JTlNFUlRfSEVBRCgmY29kYV9uY19oYXNo
W2hhc2hdLmhlYWQsIGNuY3AsIGhhc2gpOw0KIA0KIAlDT0RBX05DX0RFQlVH
KENPREFfTkNfTE9PS1VQLA0KIAkJcHJpbnRmKCJsb29rdXA6IGRjcCAlcCwg
bmFtZSAlcywgY3JlZCAlcCA9IGNwICVwXG4iLA0KQEAgLTM1Niw5ICszNDYs
OSBAQA0KIAkJCSAgICAgIGNuY3AtPm5hbWUsIGNvZGFfZjJzKCZjbmNwLT5k
Y3AtPmNfZmlkKSkpOyApDQogDQogDQotICAJQ09EQV9OQ19IU0hSRU0oY25j
cCk7DQorCUxJU1RfUkVNT1ZFKGNuY3AsIGhhc2gpOw0KKwltZW1zZXQoJmNu
Y3AtPmhhc2gsIDAsIHNpemVvZihjbmNwLT5oYXNoKSk7DQogDQotCUNPREFf
TkNfSFNITlVMKGNuY3ApOwkJLyogaGF2ZSBpdCBiZSBhIG51bGwgY2hhaW4g
Ki8NCiAJaWYgKChkY3N0YXQgPT0gSVNfRE9XTkNBTEwpICYmIChDVE9WKGNu
Y3AtPmRjcCktPnZfdXNlY291bnQgPT0gMSkpIHsNCiAJCWNuY3AtPmRjcC0+
Y19mbGFncyB8PSBDX1BVUkdJTkc7DQogCX0NCkBAIC0zNzIsMTAgKzM2Miw5
IEBADQogCWthdXRoX2NyZWRfZnJlZShjbmNwLT5jcmVkKTsNCiAJbWVtc2V0
KERBVEFfUEFSVChjbmNwKSwgMCwgREFUQV9TSVpFKTsNCiANCi0JLyogUHV0
IHRoZSBudWxsIGVudHJ5IGp1c3QgYWZ0ZXIgdGhlIGxlYXN0LXJlY2VudGx5
LXVzZWQgZW50cnkgKi8NCi0JLyogTFJVX1RPUCBhZGp1c3RzIHRoZSBwb2lu
dGVyIHRvIHBvaW50IHRvIHRoZSB0b3Agb2YgdGhlIHN0cnVjdHVyZS4gKi8N
Ci0JQ09EQV9OQ19MUlVSRU0oY25jcCk7DQotCUNPREFfTkNfTFJVSU5TKGNu
Y3AsIExSVV9UT1AoY29kYV9uY19scnUubHJ1X3ByZXYpKTsNCisJLyogbW92
ZSB0aGUgbnVsbCBlbnRyeSB0byB0aGUgZnJvbnQgZm9yIHJldXNlICovDQor
CVRBSUxRX1JFTU9WRSgmY29kYV9uY19scnUuaGVhZCwgY25jcCwgbHJ1KTsN
CisJVEFJTFFfSU5TRVJUX0hFQUQoJmNvZGFfbmNfbHJ1LmhlYWQsIGNuY3As
IGxydSk7DQogfQ0KIA0KIC8qDQpAQCAtNDA3LDEwICszOTYsMTAgQEANCiAJ
CSAqIGVudHJ5LiByZW1vdmUgY2F1c2VzIGhhc2hfbmV4dCB0byBwb2ludCB0
byBpdHNlbGYuDQogCQkgKi8NCiANCi0JCWZvciAoY25jcCA9IGNvZGFfbmNf
aGFzaFtpXS5oYXNoX25leHQ7DQotCQkgICAgIGNuY3AgIT0gKHN0cnVjdCBj
b2RhX2NhY2hlICopJmNvZGFfbmNfaGFzaFtpXTsNCi0JCSAgICAgY25jcCA9
IG5jbmNwKSB7DQotCQkJbmNuY3AgPSBjbmNwLT5oYXNoX25leHQ7DQorCQlu
Y25jcCA9IExJU1RfRklSU1QoJmNvZGFfbmNfaGFzaFtpXS5oZWFkKTsNCisJ
CXdoaWxlICgoY25jcCA9IG5jbmNwKSAhPSBOVUxMKSB7DQorCQkJbmNuY3Ag
PSBMSVNUX05FWFQoY25jcCwgaGFzaCk7DQorDQogCQkJaWYgKGNvZGFfZmlk
X2VxKCYoY25jcC0+ZGNwLT5jX2ZpZCksIGZpZCkpIHsNCiAJCQkgICAgICAg
IGNvZGFfbmNfaGFzaFtpXS5sZW5ndGgtLTsgICAgICAvKiBVc2VkIGZvciB0
dW5pbmcgKi8NCiAJCQkJY29kYV9uY19yZW1vdmUoY25jcCwgZGNzdGF0KTsN
CkBAIC00NDAsMTAgKzQyOSwxMSBAQA0KIAljb2RhX25jX3N0YXQuemFwRmlk
cysrOw0KIA0KIAlmb3IgKGkgPSAwOyBpIDwgY29kYV9uY19oYXNoc2l6ZTsg
aSsrKSB7DQotCQlmb3IgKGNuY3AgPSBjb2RhX25jX2hhc2hbaV0uaGFzaF9u
ZXh0Ow0KLQkJICAgICBjbmNwICE9IChzdHJ1Y3QgY29kYV9jYWNoZSAqKSZj
b2RhX25jX2hhc2hbaV07DQotCQkgICAgIGNuY3AgPSBuY25jcCkgew0KLQkJ
CW5jbmNwID0gY25jcC0+aGFzaF9uZXh0Ow0KKw0KKwkJbmNuY3AgPSBMSVNU
X0ZJUlNUKCZjb2RhX25jX2hhc2hbaV0uaGVhZCk7DQorCQl3aGlsZSAoKGNu
Y3AgPSBuY25jcCkgIT0gTlVMTCkgew0KKwkJCW5jbmNwID0gTElTVF9ORVhU
KGNuY3AsIGhhc2gpOw0KKw0KIAkJCWlmIChjb2RhX2ZpZF9lcSgmY25jcC0+
Y3AtPmNfZmlkLCBmaWQpKSB7DQogCQkJICAgICAgICBjb2RhX25jX2hhc2hb
aV0ubGVuZ3RoLS07ICAgICAvKiBVc2VkIGZvciB0dW5pbmcgKi8NCiAJCQkJ
Y29kYV9uY19yZW1vdmUoY25jcCwgZGNzdGF0KTsNCkBAIC01MzMsMTAgKzUy
Myw5IEBADQogCQlteXByaW50ZigoIlphcER1ZGU6IHVpZCAleFxuIiwgdWlk
KSk7ICkNCiAJY29kYV9uY19zdGF0LnphcFVzZXJzKys7DQogDQotCWZvciAo
Y25jcCA9IENPREFfTkNfTFJVR0VUKGNvZGFfbmNfbHJ1KTsNCi0JICAgICBj
bmNwICE9IChzdHJ1Y3QgY29kYV9jYWNoZSAqKSgmY29kYV9uY19scnUpOw0K
LQkgICAgIGNuY3AgPSBuY25jcCkgew0KLQkJbmNuY3AgPSBDT0RBX05DX0xS
VUdFVCgqY25jcCk7DQorCW5jbmNwID0gVEFJTFFfRklSU1QoJmNvZGFfbmNf
bHJ1LmhlYWQpOw0KKwl3aGlsZSAoKGNuY3AgPSBuY25jcCkgIT0gTlVMTCkg
ew0KKwkJbmNuY3AgPSBUQUlMUV9ORVhUKGNuY3AsIGxydSk7DQogDQogCQlp
ZiAoKENPREFfTkNfVkFMSUQoY25jcCkpICYmDQogCQkgICAoa2F1dGhfY3Jl
ZF9nZXRldWlkKGNuY3AtPmNyZWQpID09IHVpZCkpIHsNCkBAIC01NzYsMTMg
KzU2NSwxMSBAQA0KIA0KIAljb2RhX25jX3N0YXQuRmx1c2hlcysrOw0KIA0K
LQlmb3IgKGNuY3AgPSBDT0RBX05DX0xSVUdFVChjb2RhX25jX2xydSk7DQot
CSAgICAgY25jcCAhPSAoc3RydWN0IGNvZGFfY2FjaGUgKikmY29kYV9uY19s
cnU7DQotCSAgICAgY25jcCA9IENPREFfTkNfTFJVR0VUKCpjbmNwKSkgew0K
LQkJaWYgKENPREFfTkNfVkFMSUQoY25jcCkpIHsNCisJVEFJTFFfRk9SRUFD
SChjbmNwLCAmY29kYV9uY19scnUuaGVhZCwgbHJ1KSB7DQorCQlpZiAoQ09E
QV9OQ19WQUxJRChjbmNwKSkgewkvKiBvbmx5IHplcm8gdmFsaWQgbm9kZXMg
Ki8NCisJCQlMSVNUX1JFTU9WRShjbmNwLCBoYXNoKTsNCisJCQltZW1zZXQo
JmNuY3AtPmhhc2gsIDAsIHNpemVvZihjbmNwLT5oYXNoKSk7DQogDQotCQkJ
Q09EQV9OQ19IU0hSRU0oY25jcCk7CS8qIG9ubHkgemVybyB2YWxpZCBub2Rl
cyAqLw0KLQkJCUNPREFfTkNfSFNITlVMKGNuY3ApOw0KIAkJCWlmICgoZGNz
dGF0ID09IElTX0RPV05DQUxMKQ0KIAkJCSAgICAmJiAoQ1RPVihjbmNwLT5k
Y3ApLT52X3VzZWNvdW50ID09IDEpKQ0KIAkJCXsNCkBAIC02MjksOSArNjE2
LDcgQEANCiAJZm9yIChoYXNoID0gMDsgaGFzaCA8IGNvZGFfbmNfaGFzaHNp
emU7IGhhc2grKykgew0KIAkJbXlwcmludGYoKCJcbmhhc2ggJWRcbiIsaGFz
aCkpOw0KIA0KLQkJZm9yIChjbmNwID0gY29kYV9uY19oYXNoW2hhc2hdLmhh
c2hfbmV4dDsNCi0JCSAgICAgY25jcCAhPSAoc3RydWN0IGNvZGFfY2FjaGUg
KikmY29kYV9uY19oYXNoW2hhc2hdOw0KLQkJICAgICBjbmNwID0gY25jcC0+
aGFzaF9uZXh0KSB7DQorCQlMSVNUX0ZPUkVBQ0goY25jcCwgJmNvZGFfbmNf
aGFzaFtoYXNoXS5oZWFkLCBoYXNoKSB7DQogCQkJbXlwcmludGYoKCJjcCAl
cCBkY3AgJXAgY3JlZCAlcCBuYW1lICVzXG4iLA0KIAkJCQkgIGNuY3AtPmNw
LCBjbmNwLT5kY3AsDQogCQkJCSAgY25jcC0+Y3JlZCwgY25jcC0+bmFtZSkp
Ow0KQEAgLTcxMywxNyArNjk4LDE1IEBADQogdm9pZA0KIGNvZGFfbmNfbmFt
ZShzdHJ1Y3QgY25vZGUgKmNwKQ0KIHsNCi0Jc3RydWN0IGNvZGFfY2FjaGUg
KmNuY3AsICpuY25jcDsNCisJc3RydWN0IGNvZGFfY2FjaGUgKmNuY3A7DQog
CWludCBpOw0KIA0KIAlpZiAoY29kYV9uY191c2UgPT0gMCkJCQkvKiBDYWNo
ZSBpcyBvZmYgKi8NCiAJCXJldHVybjsNCiANCiAJZm9yIChpID0gMDsgaSA8
IGNvZGFfbmNfaGFzaHNpemU7IGkrKykgew0KLQkJZm9yIChjbmNwID0gY29k
YV9uY19oYXNoW2ldLmhhc2hfbmV4dDsNCi0JCSAgICAgY25jcCAhPSAoc3Ry
dWN0IGNvZGFfY2FjaGUgKikmY29kYV9uY19oYXNoW2ldOw0KLQkJICAgICBj
bmNwID0gbmNuY3ApIHsNCi0JCQluY25jcCA9IGNuY3AtPmhhc2hfbmV4dDsN
CisNCisJCUxJU1RfRk9SRUFDSChjbmNwLCAmY29kYV9uY19oYXNoW2ldLmhl
YWQsIGhhc2gpIHsNCiAJCQlpZiAoY25jcC0+Y3AgPT0gY3ApIHsNCiAJCQkJ
YmNvcHkoY25jcC0+bmFtZSwgY29kYV9uY19uYW1lX2J1ZiwgY25jcC0+bmFt
ZWxlbik7DQogCQkJCWNvZGFfbmNfbmFtZV9idWZbY25jcC0+bmFtZWxlbl0g
PSAwOw0KLS0tIC91c3Ivc3JjL3N5cy9jb2RhL2NvZGFfbmFtZWNhY2hlLmgJ
MjAwNi0wNS0xNiAyMjoxMzoyMi4wMDAwMDAwMDAgKzAxMDANCisrKyBjb2Rh
X25hbWVjYWNoZS5oCTIwMDctMTAtMjggMTI6NDM6NDguMDAwMDAwMDAwICsw
MDAwDQpAQCAtNzcsNDEgKzc3LDE4IEBADQogCSgobmFtZWxlbiA9PSBjcC0+
bmFtZWxlbikgJiYgKGRjcCA9PSBjcC0+ZGNwKSAmJiBcDQogCQkgKGJjbXAo
Y3AtPm5hbWUsbmFtZSxuYW1lbGVuKSA9PSAwKSkNCiANCi0vKg0KLSAqIEZ1
bmN0aW9ucyB0byBtb2RpZnkgdGhlIGhhc2ggYW5kIGxydSBjaGFpbnMuDQot
ICogaW5zcXVlIGFuZCByZW1xdWUgYXNzdW1lIHRoYXQgdGhlIHBvaW50ZXJz
IGFyZSB0aGUgZmlyc3QgdGhpbmcNCi0gKiBpbiB0aGUgbGlzdCBub2RlLCB0
aHVzIHRoZSB0cmlja2VyeSBmb3IgbHJ1Lg0KLSAqLw0KLQ0KLSNkZWZpbmUg
Q09EQV9OQ19IU0hJTlMoZWxlbSwgcHJlZCkJaW5zcXVlKGVsZW0scHJlZCkN
Ci0jZGVmaW5lIENPREFfTkNfSFNIUkVNKGVsZW0pCQlyZW1xdWUoZWxlbSkN
Ci0jZGVmaW5lIENPREFfTkNfSFNITlVMKGVsZW0pCQkoZWxlbSktPmhhc2hf
bmV4dCA9IFwNCi0JCQkJCShlbGVtKS0+aGFzaF9wcmV2ID0gKGVsZW0pDQot
DQotI2RlZmluZSBDT0RBX05DX0xSVUlOUyhlbGVtLCBwcmVkKQlpbnNxdWUo
TFJVX1BBUlQoZWxlbSksIExSVV9QQVJUKHByZWQpKQ0KLSNkZWZpbmUgQ09E
QV9OQ19MUlVSRU0oZWxlbSkJCXJlbXF1ZShMUlVfUEFSVChlbGVtKSk7DQot
I2RlZmluZSBDT0RBX05DX0xSVUdFVChscnVoZWFkKQkJTFJVX1RPUCgobHJ1
aGVhZCkubHJ1X3ByZXYpDQotDQogI2RlZmluZSBDT0RBX05DX1ZBTElEKGNu
Y3ApCShjbmNwLT5kY3AgIT0gKHN0cnVjdCBjbm9kZSAqKTApDQogDQotI2Rl
ZmluZSBMUlVfUEFSVChjbmNwKQkJCShzdHJ1Y3QgY29kYV9jYWNoZSAqKSBc
DQotCQkJCSgoY2hhciAqKWNuY3AgKyAoMipzaXplb2Yoc3RydWN0IGNvZGFf
Y2FjaGUgKikpKQ0KLSNkZWZpbmUgTFJVX1RPUChjbmNwKQkJCQkoc3RydWN0
IGNvZGFfY2FjaGUgKikgXA0KLQkJCSgoY2hhciAqKWNuY3AgLSAoMipzaXpl
b2Yoc3RydWN0IGNvZGFfY2FjaGUgKikpKQ0KLSNkZWZpbmUgREFUQV9QQVJU
KGNuY3ApCQkJCShzdHJ1Y3QgY29kYV9jYWNoZSAqKSBcDQotCQkJKChjaGFy
ICopY25jcCArICg0KnNpemVvZihzdHJ1Y3QgY29kYV9jYWNoZSAqKSkpDQot
I2RlZmluZSBEQVRBX1NJWkUJKHNpemVvZihzdHJ1Y3QgY29kYV9jYWNoZSkt
KDQqc2l6ZW9mKHN0cnVjdCBjb2RhX2NhY2hlICopKSkNCisjZGVmaW5lIERB
VEFfUEFSVChjbmNwKQkoKHZvaWQgKikoKGNuY3ApLT5jcCkpDQorI2RlZmlu
ZSBEQVRBX1NJWkUJKHNpemVvZihzdHJ1Y3QgY29kYV9jYWNoZSkgLSBvZmZz
ZXRvZihzdHJ1Y3QgY29kYV9jYWNoZSwgY3ApKQ0KIA0KIC8qDQogICogU3Ry
dWN0dXJlIGZvciBhbiBlbGVtZW50IGluIHRoZSBDT0RBIE5hbWUgQ2FjaGUu
DQotICogTk9URTogSSB1c2UgdGhlIHBvc2l0aW9uIG9mIGFyZ3VtZW50cyBh
bmQgdGhlaXIgc2l6ZSBpbiB0aGUNCi0gKiBpbXBsZW1lbnRhdGlvbiBvZiB0
aGUgZnVuY3Rpb25zIENPREFfTkNfTFJVSU5TLCBDT0RBX05DX0xSVVJFTSwg
YW5kDQotICogREFUQV9QQVJULg0KICAqLw0KIA0KIHN0cnVjdCBjb2RhX2Nh
Y2hlIHsNCi0Jc3RydWN0IGNvZGFfY2FjaGUJKmhhc2hfbmV4dCwqaGFzaF9w
cmV2OwkvKiBIYXNoIGxpc3QgKi8NCi0Jc3RydWN0IGNvZGFfY2FjaGUJKmxy
dV9uZXh0LCAqbHJ1X3ByZXY7CS8qIExSVSBsaXN0ICovDQorCUxJU1RfRU5U
UlkoY29kYV9jYWNoZSkJaGFzaDsJCS8qIEhhc2ggbGlzdCAqLw0KKwlUQUlM
UV9FTlRSWShjb2RhX2NhY2hlKQlscnU7CQkvKiBMUlUgbGlzdCAqLw0KIAlz
dHJ1Y3QgY25vZGUJKmNwOwkJCS8qIHZub2RlIG9mIHRoZSBmaWxlICovDQog
CXN0cnVjdCBjbm9kZQkqZGNwOwkJCS8qIHBhcmVudCdzIGNub2RlICovDQog
CWthdXRoX2NyZWRfdCAgICBjcmVkOwkJCS8qIHVzZXIgY3JlZGVudGlhbHMg
Ki8NCkBAIC0xMjAsMTQgKzk3LDEzIEBADQogfTsNCiANCiBzdHJ1Y3QJY29k
YV9scnUgewkJLyogU3RhcnQgb2YgTFJVIGNoYWluICovDQotCWNoYXIgKmR1
bW15MSwgKmR1bW15MjsJCQkvKiBwbGFjZSBob2xkZXJzICovDQotCXN0cnVj
dCBjb2RhX2NhY2hlICpscnVfbmV4dCwgKmxydV9wcmV2OyAgIC8qIHBvc2l0
aW9uIG9mIHBvaW50ZXJzIGlzIGltcG9ydGFudCAqLw0KKwlUQUlMUV9IRUFE
KCxjb2RhX2NhY2hlKQloZWFkOw0KIH07DQogDQogDQogc3RydWN0IGNvZGFf
aGFzaCB7CQkvKiBTdGFydCBvZiBIYXNoIGNoYWluICovDQotCXN0cnVjdCBj
b2RhX2NhY2hlICpoYXNoX25leHQsICpoYXNoX3ByZXY7IC8qIE5PVEU6IGNo
YWluIHBvaW50ZXJzIG11c3QgYmUgZmlyc3QgKi8NCi0gICAgICAgIGludCBs
ZW5ndGg7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB1c2VkIGZv
ciB0dW5pbmcgcHVycG9zZXMgKi8NCisJTElTVF9IRUFEKCxjb2RhX2NhY2hl
KQloZWFkOw0KKyAgICAgICAgaW50CQkJbGVuZ3RoOwkvKiB1c2VkIGZvciB0
dW5pbmcgcHVycG9zZXMgKi8NCiB9Ow0KIA0KIA0K

--0-429050770-1193577389=:16586
Content-Type: TEXT/PLAIN; charset=US-ASCII; name=diff.insque
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.NEB.4.64.0710281316291.16586@localhost.>
Content-Description: remove reliance on libkern/insque
Content-Disposition: attachment; filename=diff.insque

LS0tIC91c3Ivc3JjL3N5cy9jb2RhL2NvZGFfbmFtZWNhY2hlLmMJMjAwNy0x
MC0yNCAyMDoxNzoyOS4wMDAwMDAwMDAgKzAxMDANCisrKyBjb2RhX25hbWVj
YWNoZS5jCTIwMDctMTAtMjggMTA6NTM6MDguMDAwMDAwMDAwICswMDAwDQpA
QCAtOTMsMTAgKzkzLDYgQEANCiAjaW5jbHVkZSA8Y29kYS9jb2RhX3Zub3Bz
Lmg+DQogI2VuZGlmDQogDQotI2lmbmRlZiBpbnNxdWUNCi0jaW5jbHVkZSA8
c3lzL3N5c3RtLmg+DQotI2VuZGlmIC8qIGluc3F1ZSAqLw0KLQ0KIC8qDQog
ICogRGVjbGFyYXRpb24gb2YgdGhlIG5hbWUgY2FjaGUgZGF0YSBzdHJ1Y3R1
cmUuDQogICovDQpAQCAtMTM1LDYgKzEzMSwzNiBAQA0KIA0KIGludCBjb2Rh
X25jX2luaXRpYWxpemVkID0gMDsgICAgICAvKiBJbml0aWFsbHkgdGhlIGNh
Y2hlIGhhcyBub3QgYmVlbiBpbml0aWFsaXplZCAqLw0KIA0KK3N0cnVjdCBj
b2RhX25jX3F1ZXVlIHsNCisJc3RydWN0IGNvZGFfbmNfcXVldWUgKnFfbmV4
dCwgKnFfcHJldjsNCit9Ow0KKw0KK3N0YXRpYyB2b2lkDQorY29kYV9uY19p
bnNxdWUodm9pZCAqdjEsIHZvaWQgKnYyKQ0KK3sNCisJc3RydWN0IGNvZGFf
bmNfcXVldWUgKmVsZW0gPSB2MSwgKmhlYWQgPSB2MjsNCisJc3RydWN0IGNv
ZGFfbmNfcXVldWUgKm5leHQ7DQorDQorCW5leHQgPSBoZWFkLT5xX25leHQ7
DQorCWVsZW0tPnFfbmV4dCA9IG5leHQ7DQorCWhlYWQtPnFfbmV4dCA9IGVs
ZW07DQorCWVsZW0tPnFfcHJldiA9IGhlYWQ7DQorCW5leHQtPnFfcHJldiA9
IGVsZW07DQorfQ0KKw0KK3N0YXRpYyB2b2lkDQorY29kYV9uY19yZW1xdWUo
dm9pZCAqdikNCit7DQorCXN0cnVjdCBjb2RhX25jX3F1ZXVlICplbGVtID0g
djsNCisJc3RydWN0IGNvZGFfbmNfcXVldWUgKm5leHQsICpwcmV2Ow0KKw0K
KwluZXh0ID0gZWxlbS0+cV9uZXh0Ow0KKwlwcmV2ID0gZWxlbS0+cV9wcmV2
Ow0KKwluZXh0LT5xX3ByZXYgPSBwcmV2Ow0KKwlwcmV2LT5xX25leHQgPSBu
ZXh0Ow0KKwllbGVtLT5xX3ByZXYgPSAwOw0KK30NCisNCiB2b2lkDQogY29k
YV9uY19pbml0KHZvaWQpDQogew0KLS0tIC91c3Ivc3JjL3N5cy9jb2RhL2Nv
ZGFfbmFtZWNhY2hlLmgJMjAwNi0wNS0xNiAyMjoxMzoyMi4wMDAwMDAwMDAg
KzAxMDANCisrKyBjb2RhX25hbWVjYWNoZS5oCTIwMDctMTAtMjggMTA6NTI6
NTQuMDAwMDAwMDAwICswMDAwDQpAQCAtODMsMTMgKzgzLDEzIEBADQogICog
aW4gdGhlIGxpc3Qgbm9kZSwgdGh1cyB0aGUgdHJpY2tlcnkgZm9yIGxydS4N
CiAgKi8NCiANCi0jZGVmaW5lIENPREFfTkNfSFNISU5TKGVsZW0sIHByZWQp
CWluc3F1ZShlbGVtLHByZWQpDQotI2RlZmluZSBDT0RBX05DX0hTSFJFTShl
bGVtKQkJcmVtcXVlKGVsZW0pDQorI2RlZmluZSBDT0RBX05DX0hTSElOUyhl
bGVtLCBwcmVkKQljb2RhX25jX2luc3F1ZShlbGVtLCBwcmVkKQ0KKyNkZWZp
bmUgQ09EQV9OQ19IU0hSRU0oZWxlbSkJCWNvZGFfbmNfcmVtcXVlKGVsZW0p
DQogI2RlZmluZSBDT0RBX05DX0hTSE5VTChlbGVtKQkJKGVsZW0pLT5oYXNo
X25leHQgPSBcDQogCQkJCQkoZWxlbSktPmhhc2hfcHJldiA9IChlbGVtKQ0K
IA0KLSNkZWZpbmUgQ09EQV9OQ19MUlVJTlMoZWxlbSwgcHJlZCkJaW5zcXVl
KExSVV9QQVJUKGVsZW0pLCBMUlVfUEFSVChwcmVkKSkNCi0jZGVmaW5lIENP
REFfTkNfTFJVUkVNKGVsZW0pCQlyZW1xdWUoTFJVX1BBUlQoZWxlbSkpOw0K
KyNkZWZpbmUgQ09EQV9OQ19MUlVJTlMoZWxlbSwgcHJlZCkJY29kYV9uY19p
bnNxdWUoTFJVX1BBUlQoZWxlbSksIExSVV9QQVJUKHByZWQpKQ0KKyNkZWZp
bmUgQ09EQV9OQ19MUlVSRU0oZWxlbSkJCWNvZGFfbmNfcmVtcXVlKExSVV9Q
QVJUKGVsZW0pKQ0KICNkZWZpbmUgQ09EQV9OQ19MUlVHRVQobHJ1aGVhZCkJ
CUxSVV9UT1AoKGxydWhlYWQpLmxydV9wcmV2KQ0KIA0KICNkZWZpbmUgQ09E
QV9OQ19WQUxJRChjbmNwKQkoY25jcC0+ZGNwICE9IChzdHJ1Y3QgY25vZGUg
KikwKQ0K

--0-429050770-1193577389=:16586--