Linux interrupt handling fixes for i386 (82489DX, etc.)

Maciej W. Rozycki (macro@sqlab.com.pl)
Tue, 10 Aug 1999 18:37:25 +0200 (EEST)


This message is in MIME format. The first part should be readable text,
while the remaining parts are likely unreadable without MIME-aware tools.
Send mail to mime@docserver.cac.washington.edu for more info.

--1975722489-303737022-934303045=:8776
Content-Type: TEXT/PLAIN; charset=US-ASCII

Hi,

As I promised I am sending a patch that solves problems with Linux
interrupt handling I encountered recently. Changes needed turned out to
be more massive than I expected at the first moment and hence the delay.

The attached patch addresses the following issues:

1. The 82489DX APIC timer is not initialized properly. Additionally the
calibrating routine does not try to use TSC on systems that do not support
it.

2. The fixed MP configuration #2 does not create an ExtINT entry for the
purpose of IRQ0 handling.

3. The 82489DX APIC version is recognized. The Arbitration ID register is
not being read from the I/O unit of 82489DX as it's not present there.

4. Spurious 8259A interrupts are not recognized and are treated as if they
were real interrupts.

5. Interrupt service routines cannot determine whether the IRQ was
delivered by APIC or 8259A PIC (important in the symmetric I/O mode for
the recognition of spurious 8259A IRQs).

6. Local APIC interrupts are not initialized at all, which usually results
in massive spurious 8259A interrupts in the case I/O APIC delivers ExtINT
interrupts (or, to be exact, any interrupts that pass through the 8259A).

7. Some obvious typos I happened to find in the sources related to IRQ
handling on i386 are fixed.

In addition to the above fixes, the patch provides the following
enhancements:

1. Before reverting to ExtINT interrupts, the 8254 timer IRQ is tried to
be set up as a lowest priority I/O APIC IRQ (the through-8259A mode),
which makes its service to be distributed among CPUs and if it fails, it's
being set up as a fixed Local APIC interrupt (the local through-8259A
mode). Either of these solutions should work if IRQ0 is the only
interrupt line that has no direct connection to I/O APIC (most if not all
boards that have any IRQ lines not connected to I/O APIC). They have the
advantage of involving less circuitry (we need not care of ExtINTA trap
working right) and the through-8259A mode prevents from overloading one of
CPUs, too.

2. Spurious 8259A interrupts are counted and logged. This allows
detecting system hw problems resulting in glitches on IRQ lines.

See the sources for details.

Maciej

-- 
+  Maciej W. Rozycki, Technical University of Gdansk, Poland   +
+--------------------------------------------------------------+
+        e-mail: macro@ds2.pg.gda.pl, PGP key available        +

--1975722489-303737022-934303045=:8776 Content-Type: APPLICATION/octet-stream; name="patch-2.3.12-8259A-33.gz" Content-Transfer-Encoding: BASE64 Content-ID: <Pine.LNX.4.10.9908101837250.8776@sting.sqlab.com.pl> Content-Description: Content-Disposition: attachment; filename="patch-2.3.12-8259A-33.gz"

H4sIAAAAAAACA9w8/VPbSLI/m79iQmoTG39gyTYYCLkQQva8lwAL5C719rZU sjS2tciSVyMFvHvs337dPTOyvgxO7va9qkdtwB719PRMf/e01vUmE9ZOWLsd cSeJhPeFw+eA37Unno8f+b3jJy5vT6JwftxR35jvBcl92+z0OobZmdtOFO7a kTPb9XrDvd1bHgXc3/1o33JCkgVeD7bVbre/Cm/tOgnYD4nPDIMZ+4f94WF3 wIyDg4OtZrO54aK1j2HATpIpYyYzzcNu/3DQlzjevGHtvtnaY034bXTZmzdb 7MK6ePvDNWseMzFfdEIWR/Z8EcJKvBNuMR643mSLbTW9icsn7PTi/P3oe+vz cM/6cHF68sE6uRydbjVXOPzQsX3LXngOzG7K2c0tVpo9upBTM8t7oZ6nVnX/ PDbqtZwnjjSF25iR6YyUkyYwcHho7h12jU05mUFix5KV+8zsHQ4Gh4PeipWG gayE30PiJNth9PNXz+Vzj/3NEzNvHsYhe3XrCfr0xhHC6NyOAy46AQf8YeeX xesWTq1Nkiie8YjFXMTcZXbgMsfndgCfkwUbL9n/2M6MvY3Cu4C9+s0ev4m4 O7NjwDF/TQhwxiiYhuxj6Ad2xF7NPfiWA2uyHfxXOw0Xy8ibzmJWP23QfthH 2/H4L+wfHXYV/rZ0bj2Yjyf8xhVmZzHtTF27s/BppV2QR/bcCyS7X9FR7gpn xt3O7DUdjEkHY/ZaRp9OJgO+7UW/dmbbKNLPkwClUomi9e7s7afvQVibz6W0 FsafwxgoRTp8eTU6v/lb/b5RW0ReEN+ye4DhvuCPgCKEVondHeLYl9C3YxRn T7BfEhF7Ew9O3AtYPIMRxxa8BXjaiIdFfOoBcyLmhEHMg1gQhjkdpDOzgyln YgGPgGlhIvxli31/esrELEx8lwUhAAELYaWYDumg3zJ6ID7dPhyWkp+Pl+23 o4trBoeEi0y8aRIBeWBPYnsMRIo4Spw4ibg41Jxo8yCZs/nCgjmWCJPI4Va8 XHDBft9q12Ac9s6OWbclv51/HME3Q327pm+m+nZ2H0vg3lb74WirvaXWA+yO JcmxvBA1A9fDv+KnjyeftTG5/vlod4eNdi8YnRYcUOQBGUglMEiTqIeBpKMa /MCU5yycwNbZ6OpHJneQm1xBBJx95CiMioarH63ri09Xp2dABp3vYGi09llz MOzDHymFSAbS8IU7cRj9dH6F065/Blp+x8W71s3VyaX197PTm4sr1mJdBqcA Jyxi4IFDsy1Y24uZLYQ3DawVrrpCDSK2GRhwh9UyiMHARrBpBQcUFelpwSFN BI/p4GCuN2F1LeASoo6I2WvWbdD+9wZ7LcNkzb3BQasvJaymdKW+LcUxDMAK gbXp/DPYbgDSB1RLRZQ69dkdnjaPomQRk1wxKQEWd6ecdoaDR1vNXTIt7Boo BHtlM4dHsQ16tIB/tgB1isJkOmsPzcHBCXO5D94kIk1TyHH27lbzS+i5+vhg t8nCohkWoKknAR6nnMSQiBbLDQFMi60Y8ftWs6Z2oQ8KaIg5ieCSRGwJhNdo hnt/hLanhjtyuXB+gg8/d0CpXZ8jO16s2TZMwZ3XYOu2C2TEDAw+GPLUaABs G5cFYyyV+JCgYau1OZ/DFusviBIQtxYT3m88nNRpoNGQ6OlLR53Y0pqHYEWP 4QRFbH0I7+DPZeSFRxlAeKCADK1hfjj1IDDQ576U68sJc1vcptqIwDwgW4Pa mAFDvB2FR//FkyKBvJ9MssSmQlyhAMAaddLuPUCAoXZTu7CsS64SI1OD1Fht DgIjO/LiJUys4/xnx+CFG+wvpNX6IT5psENUEz0PjMl0SnzsysWBVyhSVhzi 4khVi6VrawJlFGDdAVKuKOveQ9jWhMBuRxK5U6+TTu80JBcb8LBLnFs33Xhq ukHTHzI+ap1OKXtdpUzSOZSVSU75Bm1S9uortAnsLaoG+yrVIMO1P2zhMe0b Ax1AkMKwrCQuZktBoqg/aFkch2FsOYvE8lwy3huLZBGwm52eETwSq/8N4WVV wstQeOMYAgkS3JG0jhkH0GJaxdhaCW6aO9Xi1yTZXTvRWD+RpBYcCDJw30CX 29wf9FVkDBh3NDwEUVa3y9J8w4q47eolaPE8qFENagBouwBqVoOaUh3BX0qE wGJIZiCmen1MpwGuorY5Jpb60H8GIxXqPP/O7dAP+NHWKjbC3z93MG7BT56b m43gq4jyebd7yL7rDj8ThsJhlebhVPg5ZFr4JRmeizhMiUNO7YzeNWQ4tN8z iSn7PcWUWu3T+dnnS5Ccs3c6hKs3pN5WLAar6e2q88PF+pnF0oMl1uB514on /kydOHvxAowbC31SWmUPhHQ36yd2DT1xaPaHB+8+p5aEJj612iWIqpfMdy+j MLckWzfT+OaZvQaeGMz8zGEsP0VGZ/v9LlYAmvtDE6M0YkhGRC0QO8GjL9y1 DPavf7HysNl4jIXttXJmrpUzk/hWzXo7GnuxTEWKMmZ2Mg9T1qtHlfswC/to r9vHo1rLML77xm0WJn7TPgHH124Upqzd6UNJ8SgCA7fuReCS0hzwUMXqJEVD 8wAz7SEotcxxUo/7LqQQHxw2KFjW6Y45uls+X4AjsmNyl8lCedhmDUsO0UqO 1PesaD3opUGAcenhoLj0Kc4prDkJIw57wdVg+cOvWE8ipoQZ4gFY8WDP0LWz mrjzYmfG6mhjIem3E18mKagbGLDUMIFnJobcMkxH+jCzwnQ/lwIdyodkR2o6 sexK6w2fKfM5Xrl1pLVWG4NvuKWPanHcWEpuj7zgQZp/sp1am4HIUGVhkgSS qS6PgQBMkIAbsTcH6QUCBUgih2cE1sLDDNgdZxPb9wkRY2PbucWAanR9kpkm A7+KjJVAKFa5C6NbUcfQMJ+sVkNQ3JeLC2P0yL94kwnk51oOja5B3sXo7plq t7oII7MJy+dfuK+qB7hIDZBi5qF5jWOrSa4nqmeVp6SbpWDXDVWGJqfAkeTj XAr0VRgLCS1oKVhlVFbRULnnf4KBDktnkBaYHPyLoYQagugePh6tImn4Zksx gBiZPhypyuJwSLVFszdsDQ1dHgK5ESETTsTvlmCxbiA9vRUoBG8jzw7ATUW3 XgCyFcoyImja7gzEhOJrFLoxtwXlBiBIAR4aiNOSwer4ECiCL+NkOoXfoR25 HSlMzVSYsCgtixUz7txaUmAgsU8oCK2rpEFl3jorPrUDVLQE9BBNQr4OQHkq qIQdLIFAIHOcxHIaId8F9XVsl+++v/yEm6eEw9U4GOHopOl0odxX39YRHOoy uQP/nsx5dryRupk/ssPsBTgZdzKxyWhHkDtFgc4dMzYaQl863BDTK8zRpCZC bmYXdgpyJONDnVzCipjGqSSg4MtYfRImgUuJ3ndug+nQUiWnWWMWvxR0sOBn FiEI6tjzMccIJyAqk/gOzUgcKmClVgSPR4oO5g5Nix4IFxz8GxcK3pNPzs8k o+rvz66unjMSJNw2pFKQkHJXQQMT7+xlo5OxpFqPZZaCCQuERtJ1gslRwydn F6N6YVs+n9rOEgzgF8/hQtdQx3xlsMn26fi7m1mzWDXqqpSsK5dQ9mhFUVdy 5Lk3oXI0lZutT9dn1s1frz4RmHb1RQvZkB5dSYdxlBagYfAoU2uG7zm/liFL uf6sWIFuen5ak2tmhY8AH1dH6Z4KuriRxMqZ/z0h1adWKFJChikRgc9cpbEl GOJVrTSu8291ZlkxCsJobvv/dUHKVEwKkjS3byvkaL2olCXs7PMN4P4/ECKW FyJyfBkpyvp+JUkGrWRq93QwaPUN8E89s9sypX+qIZQuisj9I4nyBkKmsICg EiAtlTCtnhkXTwcrk4pn5WMlWVqvnHLfMiPS4mwoecahjDjruxfwgIfoWvpK NXJhohQWimrl0bZrX6ldbDv1OBlairr1bcQ8IiNGmmSsDsJcLZ4/igrNlnot U0RSL/zzLfol5+3S3zUaZkoVQ4gKHWuT8kt5qA5EiFBI3TEygB8F5RfByiA5 E/ooFgUjhWxhB55T39bZTlPxyg25CF7GDOXx2XYjI4TVcpzlQV5/89x5RMre XqpAY7vEqB8wEQR+UkYEEDlGVGnGo6KUmWRuNIkkZy1LU3zrT+aRo9mYAQj8 IAUoo7f0XKT4HrJmNPuIUl+msjvDHMjb/95gTxXUytV2ncfmzCk4LLGc0xVN XbkMCV1VgDs7P3n7YXT+fZpKY5KnyKnlAtZj9geeOF5oHv2prRvRr0+3bSDM 5i0bCF27mSWy8WZAnRbdw/7+xu0ahAD7PahVY8i63cOuCf+tWjWo6cZcJeKy aWEN4QBAQKU2CTBM8HvIPsBswW7C6Ivtu6KVbbvYuL9CrwJZHJYDkC3YVmBj AodBt4MRN2RNLvZ+fLEjL4QlMWCnO0nUf3l1oloBQPspz8PcD7nP8TYZ4V9m jbIbBmkKhquAKdBYZHOSoZuTNmncuPqx3LSxGku7MGAo7cBgbH23RhYu26mR S79lg9N4ZjngoWK8wj+9/IRX/lVgaEZKcDqCoXqFOUxlgtpaCrUEaaa+pgZw lK9HlLKNIh60ABtDKrpKSVUVKFoq3E4EpgVTNpQpYc85uoltuRj4dDFLYhdb irC0oJ+qBbbxTOiwenstA21df9DqyWDvQa1Ad/5/l1dm6OdBPuf2Auz9VJYh bN9f3Uqq5g7RUXf9mSoV/LNM3EvalEGWUV2AnoJiRKGPN/FPY9edMZk6THqp n+v4+KmLfpCpsbYhR8FdvQjC9Iq/xR5or7q/4TyZj4EMTK8XiVTKlAKxuoot bNGOw7mHlOhJUixhwZObi49ots9HN+QKWXrrK+sGaPN1rZBKPbIlgcp+KuhK W4E0P8iiSK2SfJ94ETh/oBm4uDovedMp1EJOesYCzU5HYYo4uAUsGzEUMW/i OTbQPfZgs3OMKMCo/MajkAE3xjaWZog5c3sJhC4WPNAHQUyWEru6Yb03u1k2 E905I4h9UNSfgNweh7Gq+ej+KE1wS52AOu2cOlDPlbyl1Z0O95MJ9iuQaA/2 yQ5QrxAKtiLlHOJslC4qxcKWcZ+F6lOmwN1ifNrBOpq+oK/jzVbUIFRUS5Pb kWHJigPFIjTy1w6WqbOXV/DxS7HVxpqdBEBEp6p448tiKV4Q+EvJsjDwl1nQ 0VVXggH74QDwdkTVzbQDOoEVXxovkalp4xsd1Zzbig+4Vrn+ljkBwianvpx7 9wCE8c3LvMNyQhHTjmWpjzs2VgVxf5Jq9HaSK8MucsXs6tI5Ji4PxVrv0xZz Y9NaUeZWwvJH3WCvXmmjWitK04tjAlTCBFnxAZANvqUnLyjWYTVevZKFYJXY ojy/YkOIoVnhRyXudS8Y11FfICMhJOhoqmFOCKZOK71+DUjTfFOvIpNN4OXY WsCE7kmLMB9h88+1vFEhW36lCiGP0EB1hwKqE0S1BtcGpK4pcnkp+yDCtvBO DWxfFctxc4+defOJ03hbfRrX33Aab9ecxvV/dBok0zbkovJEVI183VHorb5A 8VIbhcX2zOw2F9xB087OLkZIoEJJNpWSHlqykLiV16NA2zyg5h1zv9/qDXLK W8FU3EXqEmVWvmYbAru1IKq7rb+QUZ02/jSYivizajFBPLT7KfZjQ2CXX/RI L5AEjy+RuwgoocE7xDJfdHvRRguoQAGC7vqLfKzQyDcb/oOCeUxu0R/z+5gH lOX54XSqLlLwwpCegp2Wk1QcgDlAiB4NTDGFKrVV50W9rkigtpciDazNsClC udAGOz5msn1G56vXOihSflq7Oog0IZDYXUShs7uKl54VypNGoTz57WF4rl+t 6pZts3s6dSgVYppKVFphfFpE1Z10bg+400RI/2Hu0QV3r9dvDaX/eMhEdRCS 8EP2LiHm6TZaxAR89iIXYj3y1RG1sttMzDF+ufMCCO9pvj2JKfjwYs/2vd9k W7kLmwJpuZt5YJrScJpiWbw5kne0KpyFNDcNdPHhGLeFryrEaUxC97UaKQ7K CyVYiRCIECQVbE2M9K2RFHUdiOEKIpDr0+yI/5pwjCCmHClwHL6IZXoM8RnF SxiwwFZ83sl2E5fvCNTld85T+CFmz749FaomY3/hFn2v02+SU8f3dM1G2VHD aDFpSItjJ5mxfJtet0FzjHXPh/T8xMjihFCoMAfGzAo4owLOKMKpMMYsAasH J5kZpJ4CIvbScTyo2F31fVMfJ7DtJAEBRU8CJglfVZAcFiCLIF+2f2cvBVvY QrRVHEnzM0kUyFAgpYCNzm8gM1k6kPBsg17aCy62ddPDGGTHTeTtJiCY3bFx FN7ygBShDvnCIkR5pmzGbWGCcjezY0AeQdbX0O/CKLW6jDiEb8OBptWRt9Yq 2cIbSsyMhQ9CIejm3RNSoqm0gnZ4lkR4y41gc4hzwWj4/l8a7PrjJRNLCLvn RIjCT3M5ZJKuq9824cyZeQss6OKLPLrhA6fIfhUdmENYncb568ScblT/Pwt5 T8Nh9JLKGzmxHMifK/NXfMoDujBHQWXYNpLjCLhQuiHPBE0ZpmwQ0fyeCdje v8/QnR88yQ5WbXPtPile3SQweSim6ePE8yGrxcsHlR/qdyVEnIxR1tEaiHAO MjyF3I5qv1grYVRHzFQ/sQipnjpwYrFsT/DDu7b0JniG8zGgoHY4Va2U7VIo vtJzDqmc1++tSrxkI9ApgOIDsjSnVt3UoAx1tC5taV0ACJ82MnZIllXrskpK zlAk1C+DJSiZX+sKCupGu3vf6zZU/9XbT6MP7yxjjypLKI3A8+IYNnBifXXt q5nqpqHXpXdFm/3+QPe9qbNbTxvsQmb/SFQbozVFK4vwNTVNJiv/FKmEcK9M eGmo1yjvuV8GG5SH9spD+xXIhmWwg/KQXR4aVyBzymColBucRq88s3KbZW5X 7pNttM0yssp9sg23WRzjZbAJCMhz/eoxU+X+HJCUTJTIHkjmcIh/KdfDIP2+ 5YBxl5/c9BNPP00axVJ7fSfVu7RG25DGEouyW23E+2F0fQPrkzq1sN8rO2TC 0KPq1K6VuJtDYEjychjzA71Gq0hIvwgzKA7sFQf2y1iGRZiD4oBdHBiXsThF GGT2E5vuFedUbah41FVbYk9uqIilakvsqQ2VsPAiTFZ0H/RtT++A2qQHeLGV vqv9PfpufKtj5e7akC3xBczGu7O06p7W15u5AszqJRzM46R5Lb5+mLnTqm+v ZhwqcGoxv6c3duRH6p9KUWGKqV6pUpcjyoi32fvRFez47PPN2dX5yQcVU/0s U1jtrrPUZnqtVtRWEbkCzBOZoezriWqniT0uDukb1Wd8T8R1Z2ZHbGecTDLt Rl6L/SIz4n6vT4wj905dxVK/LQviasvCi3L6PydQ+WFSX7TY9tnVFVBsdP1E 9nouvLR+ogSjVsMb/uK868sRzZPTHiuCUCavKhYL2DYQn+mL3z/Yoy71gdky B6Uk/iQNk/BGo3wXM6E0BZPxNJUP6FqNZgfy8km+wgZZOVPhE0YAc9vDGrrM pjU6T+bdaADbYxsvk3UugvUh2xfqjmA3fbOHWEkNxDO6ZKL5pXuLiX730MuX BDDVAqo+CT5JfJqKuRBeSITq2qHy2ox6UOUrMogFmy4gelR5oSwDpHcKhZs1 XSJKAo/Ult7fz5eJtD4VK0Wq61sXSdXeXx+zYiKDbwGpp6+KT42B7mcslqZA 7lPNKGJM3x55rLKUlpao11DcWiA5VlpfTOuKGMLDAQRhwOt6q+oqOhe2A8wq TBdU7JHlEHWPqJoF6nRRjAVh25dvn0IGi9G5aGOFJ8O1GUTfyBwvYniDLFQR mSYpKReNjnxZxDDxZuRg+O/2rr2pjSPb/z35FG188ZWsBzN6ABbGWQxyrArY FFKc7DoulQDZ6FqvkoQhm2U/++3z6Of0SMLBublVm9pao5nTPf083ef1OzvF pK4iOkWsLBdfekMpyCtzE+qT5MKHMQRV1hB24W/kc0wFqXZU/aCEMUHkDNm8 Mgr+YP0kEzZ43bCTk5kVGJzyRIoB3X7vlpWZe2gtvz5fDPukqkQphdWiuqQU jzTXiz+IgrId5987dX7Iro0Y3MX0WiDeSxcUov35fDLrDi7J98c2TpBuVfuy voPIbSmoDT73h/gHaDqubtAhG1Uftuu10nQ7GwNaS6Ghn2H/lDHKRbbmA4a7 Fwq2XtSJgC+9oD8oUvoJry8VhESxCnH8TF8DsRPnV11Qt8pV8kTIv9FIgnEz slnnk4Vksd2r3vAjRf7caTWwUq6nWt6w9N9skbweK2aIHA3WLm86+fLzWK5L o95OcYnQQrA6d6cgI8g961ZeJkN2D81YbDXzuH+T58iYOkdy1JSfmD7meLqD Lsx41I29u+y7VvvnNkuHVE5yaHT/ytHxBg419NWdCn1Vx+NEkeGFcvEFz2rQ e++p2WPSR/ui/ff24cGxIsoLnMM5nOLy4tT9JEX2nHX94Wv84ANxOeuepIl4 woV/nkfceDL/JpUdZZWPBGnBlMvBpwHoCHviIx4LtARGcGkD3ZlWcfcvsSRH n9F4AUzIyWkZwoyBK7i9SGNumP7EH9hAY5zWU9Rx3g1771BcBqhdrod91/Df A35VWkyQqxqi0lV/OO3P2EmpAsG6haSa1JToby+eCE7V3AB94sVA8gtmR0L+ KhTyytvURwlhjJBSahJThKH5zK6R3fqRfcnGJNt0ijl+/m64unLztwc10IY8 e/zDjuS7felbuzhereFzeHUvF8er6Ge5VhGRaldUkkZ9txHfy8XxykajSqqN 2k4j3jUujlW0HSkObCM09eYjquCF5b1HUQhHrbbkL2/kYMPKidNvD14eN7vH 7zreGy8+JvVORTakXhBs2bKiRKEq0B452vhkyWtgALuYDaaSq5RJLTmgi81N X3Jg2P5weZ0wmeQbvfMJnxJGvygFkEsIk6KbSh2HcTtmXs0ff+cq+iof9W0X b7agajQXIxU3B0ZZeblJeT7tWT6PKfiGKOd6SRUEXwiNY1ibLmd4BKqLvnIU ha7BhQ0W0AACS69njKrxTMojeEonxXpd60j1oCKMw1b/drAgz1MMDV5ciUNk qVoHi0Om5WF5yyF3YPjJ3cUL+XjSpaMwR9edYZGeP5VXTXnTybiL731XsivB O2+Ge6NDyJGkWZ6QNulavpMFu8RaHpxusz+v8s1MrwyEAAHWNv608gNBQ082 jW3z9KiyDBQe2QpVh0cdVjWwnx+CHKbXC0g1Ot6Hm+AQvDpod+AOkpvLQeq2 TlvdeV/eHK0P+M1QhEgDMBNFEWjOl8H8Zq6wCP1W4SCaOxddtNQA0eqfZJUN BAC4E68OOtCGnB62fJCw8+s5NXg+nHDTP47TO2TVUivdZ0hKqc5DdAEGKoTm BJUnfhfdpfD1sdR7Dv/MBlJz6YIx7GqyLGzMC5tBW/OV2RMLp8B7bQIwUwFG qyg5iMhpJImyfuvCk6Gnw7Xv2mEhNhWq2rrzhfxZFN0+/Iuv1WHkweiJpLJr Tip4eWK/rQC8aCbyYMFBHiw4yIMFB3mw4CEPFkBr63z1tPvyp3ZbfrJaAWhS +qbcH4jJAPdhogBZqMixOQhNkdSVc/+du/WouDyHAP4La3nvfOjDEvLpxQB+ pUsUnBIuHIU9C2BtBasqu6V7tlYdn7AN0mKhEtcVWs/G9Hp+NRSb/YvbX8e/ LjbEr/bDc/vhaPJlKP5rQ7Q7Z7lu90cp4TWPu0ftvNgobvYvNWWJKTcvb4ub l/Pg4z49lrPED/susftcUVuLCpbMm4OTZiU3nuXFePb4scETVHFRPi2SmoLy r8eP5aNveeV3eMPyq7hNurYAYBeiUKfeWIgEI5Xgf/IavxOvIQc49dgRT0kj lhLBthEH4mIst0Cxto1yI7ssRHDhG4rjicaMml9Pp5PZovwQ2LCkmIVYIFvy wMZK0cN7LEX3UW8aeDGYBB4iX/GeUwwXsMbgCxqx4Cu4hMBz/ysgCrCg5L1R uzZcncK+LaSipQpawAli3IYAbtdFt82EtiW+rI4AxMUbjNEJz2LPCBP5CtUn zKLxCTHpmv6tGfMOMmb0RcbjOgUACJV2u9fVSkQndBQ15MIsIgqEg10JMEui WgTPnRhQz161fmkekaYAdCYJPJPNsJ4kSYPtDfohqjhtzCX4WuJ+jVwrzQsF sUdP4Puv0CqBUGINkgMHM/LsiPkTgxl1hGpg35HI1CDbCjecopBNJHGSyoFA 4pGhHHGJlEo7ne5HRZZJ6nuhwQYvHdCxU8T7eAHh9GyIiy6m18EyeDKrMsHK 1B97HkEI25Hq5yNxlALztZB8kU1l4PkWgni+VILrJUjfExfTt8DwpKuqV3CW JFMNxmR/xKIgHR/Dep6yWYm1yAZBU059qg7S1tt1gMpuWXGzSYdwRYYoaIB1 jKKc7qD8TeBSsM3gU0CZ9wrKL6uCaCjNZxf3izp4krJ4uqT8BV5t4omooiN3 VXwvD6QGGh2cqnjVU02xFY/gSNQ63ju4zJ6qv+CiGwjiuUdphdPE31XTlBk4 sGzVo3MJsIbBuOEsGtzucvgbzjIAa5vrhv9yNuldXkB4nI7ORtUQOI/y0ao8 7MXRBMxu49/A//5CEn0vROuj+K0/Z3wvjHyDjdEvy7sMnrCOa767qGFFAtCc u0wpEl+bf+wxkncu1D0Ba/fn7Ik7wI4hJlVHwwTIw92y2zw70zGjejoaekBU iBuCmfcvlc//nZ5JXgL/NxP5dQNrN9kaV38x+8OqVs0Z610EmdAJk2GwwJA4 iMElo5n2Zmd46TmFysF5U9JejMa8FVDmWLEVe3QxWGcqvflYbybZv8G6Weq9 wC7f0G7b+5Ltl2DAlTsCS3MgJD2kKEGShxdX8rpM/gPs2HgxmF1cDxZ5UE9S eMPMxDdrf4bJ2EQba2w5Fo9l+9AS6WkoDCEHT+uBiLyBsSg5itqQ+tvB4pqZ wOp6wTHY4O/GJXEDxxUdWDeK5rHfQvuV3yTrnTUC1lOvdzZ9qjPqpmH4OClI 4IN69bPGt7foLdvBT60tDLTrXEQMfg6WLL2ALfooZFEH140UGe9ka2OsA8Xu wqWDR1Pkws0h7iWs2eN3nc0BhAPLe8LjzYECxeJGKKaUbix9xoAOY/WyMkAc zzkVQEhqLU/u75fXoxEDuluYzavKIoazA+HsRxt6eq91TmfjTOOO+X5waiSP TZHx1ARWUwYr/bnPCTgAcqg3hEs1SP+CIGGQPRj3kDmVucHAuXMdnURuLGM3 EO5RDkDEJ+hD15WSqrwncSxwaOJSC2rd9blkEKAKKAHd6ipvxFx6aMziksIF IGOT3ZVBcYCqoeJZIGhK8txZfzRZ4DV2njqNfU3nmoevwDNWnpx3ATQ9x46o YwWPkK3AhhmaU8Myo9lIdGq6X49GRcc1joLfhXLbvAA/ocVNnzANqcxYQzbI 72tRgaNs7LdyH7feUBlwI4LfdkBAWYgmhybd9NG5BCvo38rz2v5SEQON8EAi IJcZYTNeMm8ANHz5ZN6ff6/W8H8DOstigdETA8J1haInp+0S6xHF4mYi2zK9 BvuiWqdqAsok5sR7DqJu+griF0hWFXCxAwE9Rs2J0jbcZckD/2+PAp8vQs6A e7DkNQ4Ks/Af4KR4UHZ/X2HuwRh+cNV4K/GbsdTQxx+MqQaE3f9sjcyt0Rz/ RXfGPfUUD7YxQkvmz9oXgW8/2LZgefHVALxLSClHq1cexOTdB1JQACmKAfYQ RBTVU5R7Ba2/iPxe+F357NLw+E5ynu6SfeV4EIyazIN+31e1G6zWga0rMTEO 2V1zbwIElxWLnLwc5Vd1lAzGoa4qIc30WD1Zq+O2lGlXNQQj577wx2M+u5Av ILVOIVAO8CNSxtX3UNUHGEFjp5VrMRhvJ8Tq4k0YL8TlDJVfOYPrl+S+guc3 Zh+J8/mMRhsMHpgB9ejOHqPUKrGZiwMaqbeb8oXJPB20dv+p/kufDsaP3DA8 uvplMgiOFpNnQXapwKHgMnCFA3A99Vk4xhNxwBPOyOagCDH6+C/ohfAPPBqI 35P9JdUS5ELp1nvkdjKnovCfOxapYEmlP0+XZRVWsBS6uC+T4sP9uac4v6yS IiUzUidazmthPny6OQtQL77la83FFwqtl/0lq0weRtmleJUF9oP++B9a4ut8 PHwkpptkFsgDXhTT86FA3W3nO1i8y9iC+iOV5FBpuxRBOaX2ct9wxJ/Jeeac R26uM5wSoLRwrelkdX1iDHaQFjEd0Gs4NlPgeEZRoJHNDfSQ4TxQ9iNL8DHc KF62T0WO2FAeFMRT9B0mwdrJs1pWjAdsBl2V5nDUm2pMej0yIeE78Jash+na XPJwljn/vZvGMLoT4BHAQ5zRLMcAubSJjsVxRevSJsblzU3ZEVXgmr2By4Gd 6OKio7kEg53I6MaIiUNaEvJGc3E1mSDwBM3118zmsvm64wShVh/9vJzwz16a TMfdaBdwxd+NlTo4hXs2HbUt2GYfSBq55RObXWYxGUv/o70R11D6sXbIXW12 jxx9E7Xc7sg6lsg75W+gmrrEz5Ka/FdKAEPMankamMwEKaH8KHZ62thJTuuY jvbchQCTmvafBXge4wPEsnk4M8o9ElqkojvCiS3cvBbeAvT0jqvSoWQtD9u5 1hGU7gek7yZDycplsjqVSWYmE8rbkZHHxJvGmOfMHLdabArmIrEFs/tMoAq+ yRBy7juX/sjfL8NNxoXozUkri1f9GRcgo3kg1+YHvfuAF97X3n2grLr7JH/S 3Sf5z93nm999YF7/4ncf5UG6t+ImEvKEwe49kCcMg6PtfgSgs52Yz1N4tJMw GK8lZSvAuLWo1+dPJljIzcHVAjovlYc9Iqez/hS9ZsZK6SyvEjA6NOZCAFT7 aCpbQJneOBxeKxnlGplSFZdi2EPIz48YDCl/M2YgD5PHTF0zcKpDDrP1uklF v6F7PkWNLXeNR5q1HfKR2o7ITXYbtXqj+mzdiFyqwIvIfdaoxVZELoahVFUs qXgaRQfD3lgcTm6jRnSA2I/Nl0cHYg4KAkS3ABorm4gkU6k/4GQdX0/JcD3r o1poTgU6g08zgEAdfOn9c9Aby0IUF78Rl2NEjiTc3esp3AFAIdc+Od2Akwa1 zlHKvV9W8BIA/uEY+dQfX8MqVxmX8RoxL2JB+M8y3Uv+81kFvzrxx+QlT2cN uMlTTokKYocl1ZpKNqICZNLuweicpfNqU+wNX6gCwTq2jntZrePFfHbBBVSl jsdxaWlIjxvw46rW9cuv9HVeO+4IXS9KSRFDnLiQ3HuQ/AWLDC45bbwbIiap higzgCsCU2Cw4efBVPnC4SYnz25yvE6Ak2yM8e0GJg4WkyniXQCaK3mzi+9K 4AbOfnEA6oB3S3LAo0AI/dDCf7Ce2WUDURCI9pgkmB4g0ekBEFd5Yzeu7W4f /bJRNH+Z523r+VYFAB/hx84G4KgpkmNJghEy9V8qucUoTweo9ZJr2qpwzT+N EWNEvtF/2S3Zqm0A0AVhWVV3E8j0Xaju1ooVlYI9ijIX5tPRPlFEuWya/Gi6 4MRiOm2xeO9uAlgkT0ecKgsuHYWCS4DGFXf1KzAHZRRbTU1N1dfZ3i1i5nBO FrkLL/AIevRIJa+yqdty2U0xpVEfYKwIOZRSxVhZvqJSyd/dFA7CaZjxxx39 s2IokMZaYXAsLxpslrhks8SlMkvIP2Drwb/gBQv/0gF+ZP0tD+DNS33nki0o vbDMT0U5ivqBdrtXtDn/5YsXAnLPGQp+TyaponB+krOmTXZJMQGaTv5WYHK8 4TLQH9SMB6x4Kie2N6CWpSxk48NonbBd734VGqufXeWKCizb3fpFlcHw0T4E RvA20EuVgP4hcugClilacAF+mNI7asHMSiIe+gZNiKCmrVPApCCv8ua5M3K3 KawKIZIT0UkGUdhnofbpSG09RLJznxNQIoLX1ZJ6MXmmWNTvSxgVHWWrWBVT EbMqOIxlFOAsJyFG5LAWqnAZgyncj8F4vGOkmcdoLe5xPPiD7OP4z+QfAMCx ioP0fRZihympAfPGB1Zd4Z6rTlgMHPFXYkRyrtc09JMzkZIL2AeIKkm/UHis NPi0MDkUgRndDBZXDKW4C5HwuAjspZJJHut8RyqsYEULthv2ryrBr1TiSgwX XQjprkA2NQWCZ0Ch4GKvxXsQgkGLPEbZjyV9MBkWIYuCbNlUdqHM6HYiWsip IBS9kEtWB4/Q4ZfFItFU6l230zppnnVPm2ett0dyJf5LsBIXH5O6EkoHjNEd URRWpTiU7kfazQ6JiVTby4N2M+f9lofQO1KFyU/fr1FBC3nHb5MNyHU0+DKQ EokkPf4R4HKS7XVGsHN0eJYPjQG8kGOQM2WfiH/zmzPoWDcR+UAzoZxdjE8m 8DD3SvOQqAedExiyPKHoRf7bZJu7u6wvJ63DDnP7SgxXUcxYlewWazW1JmE4 LBGfUkInsfqPM9lialkGOSO9OSQwELjH5wKTCsplC8nhyuK4D/qam95gQWUw eZ+4mfWmvRlmGgYVPASzkDc1KHwgdQRAujWoBMJSsmQj0Eea3P4RhPIc/L0V TiRACmKiyzyWVP78oNUC35j3aa+AD2XA9ruQjSGVipwIQNt71Tzo/HTW7Hba h3wKaSTGe/aZCt2r01Tkq3rNGJAwR/B1MAvUutZnOUV65jt7cn/uY4MBU54p /gcg+KSoozqIPWjwUJei2eVifjEc5haUJVhuxP3UCjw87HhZ2tf+jMG3dD4E sdnZX7LgKI7fvj1ti9zrf2wlCIGn+mkmi0mgOdiSuekbOdTtgzvdc6QyvoO6 J0srMq1fUtWSSaN+VpaMqB6VSt7XkusmtjlKrnc+gVUEiaLkaQfAaHKlGwhR 4DFL18iSlpT8hixdCN9wQO5SeIx43TpHhdpE7ifcun2EC61WKK8laEkh7aLS Nexi8tNKsr2j0MMxEeBwcE52E4jeB2PKvtyui6Qk25N/SsAOrXet9tuzLeoP jplza/x1XIb/xObwEkPKsUWYIyOxuQvs+zLpKSKRcxQ5eTm+JbkD6BPGlP3H mB2M6h9pKJ1mq1oKo5j5FXeWsj8F56BIzwXXL4dM3epU5br5gFcMMcZz+F55 M67Jr568/ieZTUpwpw40e0sdg1uv/5HPJtu0yYR4wGn5uu4UovX6k0mX7pCd pJyaQsji1tZa1iIRBXaQ15qHsyewJnqrNx+VUIdPmDSuhj+DKMuikEGOoDxo UqiDSaGy3YiTDJNCVg0deW9Dm0IV4YG2HVgfzBBXN1luDidjeTSOWVuv84Qj zA8aBssiZ3T0UgJ9ywlrFxflvEkBy2YJ8Rz+Ksu//oZNLU9mn15g0vM6pYBb EwoIizxTtgA+fCP2znn99zbe/KP49mO/jxMOeNmtAzHfugEwcvFOys/Vomj3 CU55p1zDeggaa7sCyFjbVYUkrmuPflDSxlGz3em+ajWPj3IIfiH//8WLSi3/ BDIm5e0i7awit/nnz2UJv/EgYMh2Vyvxd6XUmxje1GMdFx6ZV7bAc3LQ/jGC 5BvPnye7eZv6h4C4ROgf2ANJ/QRz7RQCHQgVwQ845JEvfUlBqPVGtjteSkVy hyRLlpLJA0/SVOwBzpDoZAMT2bodu3GK9PQQxrEWB16pEQ59AIa1eRRxzdv5 INFx811TipFnrR9+aJ4xaT1MetY8edtpdltniq6W5wQPsAV3d1RGCqeNKF5B I3fj9KtDevUs/UrKg/CmmV47ruSHDamk26slwEhW8zLzdSXCmc56XYtwhr8h 30XgrRVcEGnW5rpI7SMrbzcqz9ZluqYC5Lk1ET9rVCXPrRuem9QJjxz/YUvu UciDZq4YapREFUrS3T5QplPI4R1V+HnTesF6JrELRil1xyEFFZpZl5WJA2Xg +9VAGXxR4xcnh+7zumlw4fSw9d3/Ang96o3EpwAA --1975722489-303737022-934303045=:8776--

- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/