lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Thu, 15 Mar 2007 17:23:42 +0300 From: Evgeniy Polyakov <johnpol@....mipt.ru> To: Joerg Pommnitz <pommnitz@...oo.com> Cc: netdev@...r.kernel.org, info-linux@...de.amd.com Subject: Re: IPsec with aes-cbc and geode-aes driver completely freezes 2.6.20.1 On Thu, Mar 15, 2007 at 05:15:06PM +0300, Evgeniy Polyakov (johnpol@....mipt.ru) wrote: > On Thu, Mar 15, 2007 at 06:45:33AM -0700, Joerg Pommnitz (pommnitz@...oo.com) wrote: > > Hello all, > > the subject line basically says it all. I was trying to offload IPsec encryption to the hardware encryption engine on my Geode LX800. The exact same setkey command works fine with software aes. > > > > In case it matters: this is with a MSEP800/A board from DIGITAL-LOGIC AG (see http://www.digitallogic.com/english/products/catalog07/epic_detail.asp?id=MSEP800_L). > > > > Did anybody ever succeed with Geode hardware accelerated IPsec? Did you have to do anything special? > > Please enable as much kernel debugging options as possible and rerun the > test - our mind readers are currently on vacations, so we fail to > find a problem. > > If there will not be any signs of the problem, try to add several printk > into main geode crypto functions (there are not that many of them) or > press various sysrq combinations to determine where stall happens. As additional debug patch: try this one: diff --git a/drivers/crypto/geode-aes.c b/drivers/crypto/geode-aes.c index 6d3840e..edacc64 100644 --- a/drivers/crypto/geode-aes.c +++ b/drivers/crypto/geode-aes.c @@ -49,7 +49,7 @@ * operation in case of trouble */ -#define AES_OP_TIMEOUT 0x50000 +#define AES_OP_TIMEOUT 0x500 /* Static structures */ @@ -91,6 +91,8 @@ do_crypt(void *src, void *dst, int len, u32 flags) status = ioread32(_iobase + AES_INTR_REG); while(!(status & AES_INTRA_PENDING) && --counter); + BUG_ON(!counter); + /* Clear the event */ iowrite32((status & 0xFF) | AES_INTRA_PENDING, _iobase + AES_INTR_REG); return counter ? 0 : 1; -- Evgeniy Polyakov - To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@...r.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists