From: "Mario 'BitKoenig' Holbe" Subject: Re: 2.6.37-rc7: Regression: b43: crashes in hwrng_register() Date: Wed, 5 Jan 2011 14:16:22 +0100 Message-ID: <20110105131621.GA24769@darkside.kls.lan> References: <20101231085103.GA31935@darkside.kls.lan> <20110104043338.GA27604@gondor.apana.org.au> <20110104121957.GA27114@darkside.kls.lan> <20110104123824.GA31557@gondor.apana.org.au> <20110104125722.GC27114@darkside.kls.lan> <20110104224238.GA4978@gondor.apana.org.au> <20110104230644.GJ27114@darkside.kls.lan> <20110105003020.GA5751@gondor.apana.org.au> <20110105035222.GA8762@darkside.kls.lan> <20110105054735.GA7773@gondor.apana.org.au> Mime-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="oLBj+sq0vYjzfsbl" Cc: Larry Finger , Matt Mackall , LKML , Linux Crypto Mailing List , Harald Welte , Michal Ludvig To: Herbert Xu Return-path: Content-Disposition: inline In-Reply-To: <20110105054735.GA7773@gondor.apana.org.au> Sender: linux-kernel-owner@vger.kernel.org List-Id: linux-crypto.vger.kernel.org --oLBj+sq0vYjzfsbl Content-Type: multipart/mixed; boundary="yrj/dFKFPuw6o+aM" Content-Disposition: inline --yrj/dFKFPuw6o+aM Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Wed, Jan 05, 2011 at 04:47:35PM +1100, Herbert Xu wrote: > On Wed, Jan 05, 2011 at 04:52:22AM +0100, Mario 'BitKoenig' Holbe wrote: > > According to the VIA PadLock Programming Guide, XSTORE increments EDI by > > the number of bytes stored. > > This did obviously not matter as long as the buffer was "sufficiently > > distant", but now you have the buffer close on the stack and I believe, > > the optimizer crops up, hence the EDI increment begins to matter. > Interesting. So your compiler was producing incorrect output. Why incorrect? How should the compiler know that EDI gets modified? It's listed as XSTORE input only. > What version of gcc were you using? gcc version 4.4.5 (Debian 4.4.5-10)=20 > Please attach the assembly output of the function in question. attached. I hope I got the gcc call right. However, I prefer the objdump output anyways, so this one is attached as well. As you can see (from both, maybe less from the one, more from the other), it is as I supposed it to be: the optimizer uses EDI to store via_rng_datum - reasonable, since EDI is a required input for the asm() directive anyways. And since it doesn't know EDI gets modified, it just continues using it as via_rng_datum afterwards. Btw: this is also the reason why it did work before: before, &rng->priv was never used again in a close-enough (and static enough) context, so it didn't matter whether EDI (which surely was used as &rng->priv) was clobbered or not. The IMHO best solution would be to tell the compiler that EDI gets clobbered: attached via-rng1-preferred.patch to apply on top of your first patch. However, as I already said, the compiler starts whining with either of both inputs on the clobber-list (don't really know why it cries for edx, but well...). The overkill solution is to preserve EDI manually: attached via-rng1-overkill.patch to apply on top of your first patch. And... yes, this works, really :) As I already said in my mail before: IMHO, for completeness, EDX should be preserved as well: the PadLock Quick Reference states the upper 30 bits of EDX will be zeroed by XSTORE, the VIA PadLock Programming Guide states they may be zeroed. This does currently not really matter, since a) VIA_RNG_CHUNK_1 (0x03) is quite zero in the upper 30 bits, and b) the XSTORE quality factor is only defined with 2 bits. Though it's hard to believe this could ever change, I could imagine future code that, for example, tries to balance quality/speed, and chooses different values for EDX (and overloads the upper 30 bits for some additional internal information) and after xstore() behaves different based on the value chosen before. Then, it would matter. Mario --=20 It is practically impossible to teach good programming style to students that have had prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration. -- Dijkstra --yrj/dFKFPuw6o+aM Content-Type: application/octet-stream Content-Disposition: attachment; filename="via-rng.S.bz2" Content-Transfer-Encoding: base64 QlpoOTFBWSZTWV17c+oAFg9fgEAwXv///3////S////wYLP94gKIqKEIBPPV9sAyAAAAAAAX Fg6AAAAFKqh33hq9G+tdt0fCvQAAAAAAAafJ8AOZHbQvADGvYVhtl0zoa5RUr0we3nXTXO9P eNwAAAAAQ2Z8AAAAAAAAAAACyNb4fX3NbDzZbtwAtlnfQIVKlFKKoQCBW89MItSPNjbMkNhy +7bLlc2O89XBOxX2c+09972+9777urtYu1xb6m6jdzB2d7ttumVdvrq73aNwrAXR25knNTqd 2ve67bb1w59WDQ8b3ZOZvWh2wurPdj3ZjmNRrAN6wXZUbUGZgW9w6tzijY0SIC7ADEKKA6AA AAADee3TB97B0L2wdAAAAPoc8ZtaeqtmVLcHFtTt3VsB7Lc57UUSDhz1ZzkDwAPl8nvppnwz N1wnqtNxnTx7uSr1L3d0ebQoAyDduuuu2BrhIo7bYru1BWjLrCWPezwA3sd4PVPPPPZ2zFp1 onEvhpoQAIQEAQJkjQBJtT1M0TT1NlNo00maganoAQSUkin6RoaoeoPUaAAAAB6gAAabSQgm mkRMmlPJGTNQ0AAAAAAABJ6pUpop5TQaANGgAAAAAGgAaABCkhAmghMmjBAqPxJA0MQYh6j9 U9T1MmTTQEmoiAQRpDQgp5FNpTRoHqaaAAaDQ0Gg99e1Vf4bbWq3tLVt/LW/YixShJ1mIuSJ D/bEQU7KCqvQRVQX+x/vgMQRoAUFCSQEAV2AANhKBSqJEECACAVQiyZSQ1LTNTNTLIms1Uxj SJbSsm2tStFLTItbWK1rRWiNVkq0aorU2gpbTCxVWWSVaVMmrJqo0i2SptssLSm2UqyKMmqV W1U1YoxsUZSixqEibViCCRhFQSgAkWRIUIBms1WiYU1lYtmmtIpTFNsNoiWzU1tm0tsiSC0T bW2myNTWWpRLCkKEIREJAMJAJKQpKQLCEjCwBIUDNKQMLIMsLCwJAkygg0LFJLBRi0Y0rQxi xRsDCysKkASEKSjJSFU0tSxkyRZU2i0TWTI2zSbTGKzVNFjbZWpiImTLKyDGiiktm2CUJIhE gSJKSkmWVWKkpshE1Uols0SRREtK1m2ZmYkkREU20xVQaSsTaRWVlTUpM2pQkUKljQkUEmik hJYmWVWpCRllJBgZSCSEkghZAWEhKWhZhSIGSQgiSVCCUJkIYFiiFCCASSGVSFmW0ptqZtKq U0szSkarYyRrTMzM01CmzNjZTVrGlNSyzZktslphWqbLSTTLNGtNqVNollbQmzSVSbSmVKjb aasRaW2VqslqlqmRqklJlLTSZlMtpmlRJWqZjWmorS1FlGm0kQkwR/65c4zdcdtyjDSxI9ID OmalTYJEdmBd9FFFGD+3b4Hx1933ffxxX4cv+9o9FCf+D3ebQ/xi1wKp0Vu8Nbw1xaibt0hr jCAfDxZ+QHQtczLWlpTnhGFZZKCB67mUGi1Bh2GF9Ydbf/jdmQVEItrpUWwyFZkSeHFVtIaL 8m2z6zc1N08bF5FyCUEAsnNpqYQEjYgbXx1w53xS+IgUe5cNBg4GsYKW0dMN7GalB2bVyyRS dPdNutNGKWqS8Ma4dLaoJcTw1zFejV5fRcedI4ikRGLs6m8/6VPlrObjWzDfJJ5y56YUorKj oEqeVRJVCyhMcP32bVADlWGXAzZaTtRGidMh8jv2R6Q43MYhfabMsjhGIWeB0ZkUlb4jsGiO s3qtqnYpdKzghcTyaKUzF0PlVwQdInOQEd3hQ5VuFPNjRf0brb2E7yMkxiUqb3FuiWgA74Qn VCo7eOg+M4aSAWVda4RoPi/XIuQh0HI2bJO79iI3NaHj7pMef5R1vR/nZ9YpTFq8RTByF44W kDleVC2VTJT4D4g8QUDTIbsKQLQd9vOO+MZhDTJKkrNVpRXVBWQoqikK1O3fo0I8Jstbk23E JA35JQdpZ625ZZiRj0seNqXi6Wp7lMmriyUHFr8dMwjd0IKGr0+LdTxcvCK4gjFyNzvaBLqj tUW6uku/ndbYrCC7tqir3vMzMzMy7u7u7u7zPd/O373ve93x9mWLu7u7bXgapdLTqBVLF0Tz q/Sg2g5fWvEG5mZqq7d3d3d3d3d3d3d3d3d3d3d2jMjNc1l3d3d5eXd/izNz7vR3ve93vfLu 7u7u7u7u6aHp3EfLjPlRmZmZmZl3d3d3d3dpd3bs93gwhiMlIOgHNGTJkyavL9vN5lnNaaFU AggkB0Z7Wb5WtSLd25lCzVUsQgyeUCNrgUhsxd7Tbb3mZkYotG8ynYamcjvnU3UlyK730dir y6J9SPEwkjINVdXVJdXfsd8x6wl8zMvImZmZy5mbtLu7u7uxd3d3d5k7zFxpuylbu7vd1WTj u+ZGZl3d3d3d3dCmmZWTN0tWtU9Ui2jBrm7nYzMzMzKzMzMzMy8zMzMzMy7u7u7u7u7u7u7u 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 0tAQjOte4WEPFtZ9DnaICX8u27fpFJ76vvrMM29nAk7IpxiJwug+7uV5Eu652Ps95of26KvH Z53ko5O7LeHukPx56yXzke+gbr4L8mp2jK/9/w9zvafG40++cvFTvuN3cksiOf3pU76tc++z fx8mL9yMMWJSuRD7P6P2zzbJiPv9afV7Nq4i78OWDn0SfrTy15hBbbK/zBeK3aNdl9tuNyMS Bss+75xpze55M0aa578krX05nvb9G0SnzfVLxNfRviPOm9c+TcTg9xLneJGwTeKnycVM2zM0 K/ZvfHPzfdS4ZOKi678sbKqonyqFpVX0M0RKyrr1j3fW9Ev8n2fdbu89970jcja0UW1Y+18e KlstqnstRadK/SnzIPjO0UGkRfqWJTreX5k+5CjZZKXbno2wWPm8+O1++yTSr1U+IXQ791dO s9kOOP9TO2ZiNjfSkPZdmXaYoidFNyEk0vVCWkldpR7F/N3n0N2lV363n7tJEo5Hio6x0vWC Oye+dmr7irxNkPMhnLSn0rte+72Ur5/h99dCduOfPKpXycdHbpWzzkoqNnyO/qnqNJbdcDWZ hIVeMFvW8SCPQIMOhB4nL2re78jpFVHt7YTM0jvuduX861G4WtyqNVYYjiuvTyGHQju4Z/h9 OyfYqIneKSlOwKSLHRse+rZG7kX6YhK49kH7itiV41WJ4Cu4OAfbG+nfOb3v1j2veYoPM4ny T2O7uvc9nbhm49Y/FbZ7BqzqwjWobphL9P3y31/DmH5VbD80LfcOHHRVT32cHEhZnsnuNIKd 5zs79tdxuEpqc9OL1l7zftzlneKs8397uWg86WdnXvJ4uyD7aXPm9ly9xtoTl778e1L/K+wQ NTa9rebifrRs1vadpt0FOKagbMc+3Q55QnZ78M1yCrvpvhv4la4w2w7zMbv320zOZCx7Wt4g GhgIOZxIGQm9DWFre1Vk+PPk8/fH5tpydTrTJvFXnknd2nfXLMnTm4UqglU2icVONvPn5STI Retz1/ZWnPd/Xt/h8klXmVDCKkLZcqbOWNrs6j5EpOtHytFGNHEiOZzMpJ5nBdbxh9vroHme luBfcyoatru+zBeHmw4UafaaRLXVrxiiCHzjuBxLai4HyWLHjrLnTsHa1eN8JWIWKfs/XNpt bjfzv32tR5pGezuW/og5b7+4enn2DvfHtffRN+qX+NWdmtv96cqUXfstVIIT5xMb7I5zPAWC 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 --yrj/dFKFPuw6o+aM Content-Type: application/octet-stream Content-Disposition: attachment; filename="via-rng.o.objdump.bz2" Content-Transfer-Encoding: base64 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 98UGkS8wVhIIeqkK3F0AsK/8XckU4UJCw5Vc8A== --yrj/dFKFPuw6o+aM Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="via-rng1-preferred.patch" Content-Transfer-Encoding: quoted-printable --- linux-source-2.6.37-rc7/drivers/char/hw_random/via-rng.c.hxu1 2011-01-0= 5 11:32:12.508274625 +0100 +++ linux-source-2.6.37-rc7/drivers/char/hw_random/via-rng.c 2011-01-05 12:= 57:19.712085325 +0100 @@ -82,7 +82,8 @@ static inline u32 xstore(u32 *addr, u32 =20 asm(".byte 0x0F,0xA7,0xC0 /* xstore %%edi (addr=3D%0) */" :"=3Dm"(*addr), "=3Da"(eax_out) - :"D"(addr), "d"(edx_in)); + :"D"(addr), "d"(edx_in) + :"edi", "edx"); =20 irq_ts_restore(ts_state); return eax_out; --yrj/dFKFPuw6o+aM Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="via-rng1-overkill.patch" Content-Transfer-Encoding: quoted-printable --- linux-source-2.6.37-rc7/drivers/char/hw_random/via-rng.c.hxu1 2011-01-0= 5 11:32:12.508274625 +0100 +++ linux-source-2.6.37-rc7/drivers/char/hw_random/via-rng.c 2011-01-05 12:= 45:43.459208713 +0100 @@ -80,7 +80,9 @@ static inline u32 xstore(u32 *addr, u32 =20 ts_state =3D irq_ts_save(); =20 - asm(".byte 0x0F,0xA7,0xC0 /* xstore %%edi (addr=3D%0) */" + asm("pushl %%edi\n" + ".byte 0x0F,0xA7,0xC0 /* xstore %%edi (addr=3D%0) */\n" + "popl %%edi\n" :"=3Dm"(*addr), "=3Da"(eax_out) :"D"(addr), "d"(edx_in)); =20 --yrj/dFKFPuw6o+aM-- --oLBj+sq0vYjzfsbl Content-Type: application/pgp-signature; name="signature.asc" Content-Description: Digital signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.10 (GNU/Linux) iQEVAwUBTSRvJRS+e2HeSPbpAQLqEQgAmRhGQ0bDAwtwaBEQGqFKNxyXYRupTZkL pRCS/zPsdi+Q/yguG/fR86c0wKq77ZwDbj+LQkAWwOIYqLa8K29P0cwKCheVaGFL 0gHXjFZaqyeImB0Cc5hQesGPvP3LZ/uw0Ilr/aqdywUymVuLiHOsjXX9CW/dCBuX Lc12fEoWIZWt7FfsuGirROTq9SHrJmfYuHw/1G8FlwwBUQOk+dwsui3tPAYCsqyw LRKCgQroXfCwEc57lboO24ML/h7elSoaroY606BS0C0EY5FfcrDadFZPpjjbushf ZxJiwPsSc0mBq6AsmMmjOpo0ms6SbS8KHu0c3EfjR8mJjoI7kI8Ngw== =qR3M -----END PGP SIGNATURE----- --oLBj+sq0vYjzfsbl--