I've become seriously tired of seeing these messages on every machine
running an i386 Fedora kernel...
padlock: VIA PadLock not detected.
padlock: VIA PadLock Hash Engine not detected.
So let's eliminate them!
Signed-off-by: Kyle McMartin <[email protected]>
---
diff --git a/drivers/crypto/padlock-aes.c b/drivers/crypto/padlock-aes.c
index bb30eb9..c11f456 100644
--- a/drivers/crypto/padlock-aes.c
+++ b/drivers/crypto/padlock-aes.c
@@ -384,6 +384,9 @@ static int __init padlock_init(void)
{
int ret;
+ if (!(boot_cpu_data.x86_vendor == X86_VENDOR_CENTAUR))
+ return -ENODEV;
+
if (!cpu_has_xcrypt) {
printk(KERN_ERR PFX "VIA PadLock not detected.\n");
return -ENODEV;
diff --git a/drivers/crypto/padlock-sha.c b/drivers/crypto/padlock-sha.c
index c666b4e..9b360fb 100644
--- a/drivers/crypto/padlock-sha.c
+++ b/drivers/crypto/padlock-sha.c
@@ -253,6 +253,9 @@ static int __init padlock_init(void)
{
int rc = -ENODEV;
+ if (!(boot_cpu_data.x86_vendor == X86_VENDOR_CENTAUR))
+ return -ENODEV;
+
if (!cpu_has_phe) {
printk(KERN_ERR PFX "VIA PadLock Hash Engine not detected.\n");
return -ENODEV;
On Tue, 8 Jul 2008 15:04:27 -0400
Kyle McMartin <[email protected]> wrote:
> I've become seriously tired of seeing these messages on every machine
> running an i386 Fedora kernel...
>
> padlock: VIA PadLock not detected.
> padlock: VIA PadLock Hash Engine not detected.
>
> So let's eliminate them!
Silly question - but why are they being printed even for older VIA
processors. We don't see the following on boot
i386: no CMOV instruction detected
i386: no SSE3 instruction detected
So I think your patch should be a bit more brutal ;)
Alan
On Tue, Jul 08, 2008 at 07:52:11PM +0100, Alan Cox wrote:
> On Tue, 8 Jul 2008 15:04:27 -0400
> Kyle McMartin <[email protected]> wrote:
>
> > I've become seriously tired of seeing these messages on every machine
> > running an i386 Fedora kernel...
> >
> > padlock: VIA PadLock not detected.
> > padlock: VIA PadLock Hash Engine not detected.
> >
> > So let's eliminate them!
>
> Silly question - but why are they being printed even for older VIA
> processors. We don't see the following on boot
>
> i386: no CMOV instruction detected
> i386: no SSE3 instruction detected
>
> So I think your patch should be a bit more brutal ;)
>
I completely agree, but I don't know anything about Centaur cpuids...
Something like this might suffice:
diff --git a/drivers/crypto/padlock-aes.c b/drivers/crypto/padlock-aes.c
index bb30eb9..0192de4 100644
--- a/drivers/crypto/padlock-aes.c
+++ b/drivers/crypto/padlock-aes.c
@@ -384,6 +384,10 @@ static int __init padlock_init(void)
{
int ret;
+ if (!((boot_cpu_data.x86_vendor == X86_VENDOR_CENTAUR) &&
+ (boot_cpu_data.x86 >= 6))) /* only on VIA C3 and above */
+ return -ENODEV;
+
if (!cpu_has_xcrypt) {
printk(KERN_ERR PFX "VIA PadLock not detected.\n");
return -ENODEV;
diff --git a/drivers/crypto/padlock-sha.c b/drivers/crypto/padlock-sha.c
index c666b4e..70ec14b 100644
--- a/drivers/crypto/padlock-sha.c
+++ b/drivers/crypto/padlock-sha.c
@@ -253,6 +253,10 @@ static int __init padlock_init(void)
{
int rc = -ENODEV;
+ if (!((boot_cpu_data.x86_vendor == X86_VENDOR_CENTAUR) &&
+ (boot_cpu_data.x86 >= 6))) /* only on VIA C3 and above */
+ return -ENODEV;
+
if (!cpu_has_phe) {
printk(KERN_ERR PFX "VIA PadLock Hash Engine not detected.\n");
return -ENODEV;
Kyle McMartin <[email protected]> writes:
> --- a/drivers/crypto/padlock-aes.c
> +++ b/drivers/crypto/padlock-aes.c
> @@ -384,6 +384,9 @@ static int __init padlock_init(void)
> {
> int ret;
>
> + if (!(boot_cpu_data.x86_vendor == X86_VENDOR_CENTAUR))
> + return -ENODEV;
> +
BTW C has "!=" operator, may be useful.
--
Krzysztof Halasa
On Tue, 2008-07-08 at 15:37 -0400, Kyle McMartin wrote:
> diff --git a/drivers/crypto/padlock-sha.c b/drivers/crypto/padlock-sha.c
> index c666b4e..70ec14b 100644
> --- a/drivers/crypto/padlock-sha.c
> +++ b/drivers/crypto/padlock-sha.c
> @@ -253,6 +253,10 @@ static int __init padlock_init(void)
> {
> int rc = -ENODEV;
>
> + if (!((boot_cpu_data.x86_vendor == X86_VENDOR_CENTAUR) &&
> + (boot_cpu_data.x86 >= 6))) /* only on VIA C3 and above */
> + return -ENODEV;
> +
> if (!cpu_has_phe) {
> printk(KERN_ERR PFX "VIA PadLock Hash Engine not detected.\n");
> return -ENODEV;
int rc doesn't need to be initialized to -ENODEV either.
diff --git a/drivers/crypto/padlock-sha.c b/drivers/crypto/padlock-sha.c
--- a/drivers/crypto/padlock-sha.c
+++ b/drivers/crypto/padlock-sha.c
@@ -251,7 +251,7 @@ static struct crypto_alg sha256_alg = {
static int __init padlock_init(void)
{
- int rc = -ENODEV;
+ int rc;
if (!cpu_has_phe) {
printk(KERN_ERR PFX "VIA PadLock Hash Engine not detected.\n");
On Tue, 8 Jul 2008 15:37:41 -0400
Kyle McMartin <[email protected]> wrote:
> + if (!((boot_cpu_data.x86_vendor == X86_VENDOR_CENTAUR) &&
> + (boot_cpu_data.x86 >= 6))) /* only on VIA C3 and above */
> + return -ENODEV;
Why add this?
> if (!cpu_has_xcrypt) {
> printk(KERN_ERR PFX "VIA PadLock not detected.\n");
> return -ENODEV;
When you could simply delete the printk lines?
--
All rights reversed.
Kyle McMartin <[email protected]> wrote:
>
> I completely agree, but I don't know anything about Centaur cpuids...
>
> Something like this might suffice:
Please base your patch on top of cryptodev-2.6 which already has
a fix on this from Jeremy Katz. Also I suggest you either remove
the printk completely or invert it so that it prints something
when the hardware is detected.
Cheers,
--
Visit Openswan at http://www.openswan.org/
Email: Herbert Xu ~{PmV>HI~} <[email protected]>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt