Просмотр исходного кода

[S390] zcrypt: Do not remove coprocessor for error 8/72

In a case where the number of the input data is bigger than the
modulus of the key, the coprocessor adapters will report an 8/72
error. This case is not caught yet, thus the adapter will be taken
offline. To prevent this, we return an -EINVAL instead.

Signed-off-by: Felix Beck <felix.beck@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Felix Beck 15 лет назад
Родитель
Сommit
19b123ebac
2 измененных файлов с 4 добавлено и 0 удалено
  1. 2 0
      drivers/s390/crypto/zcrypt_pcicc.c
  2. 2 0
      drivers/s390/crypto/zcrypt_pcixcc.c

+ 2 - 0
drivers/s390/crypto/zcrypt_pcicc.c

@@ -373,6 +373,8 @@ static int convert_type86(struct zcrypt_device *zdev,
 			zdev->max_mod_size = PCICC_MAX_MOD_SIZE_OLD;
 			return -EAGAIN;
 		}
+		if (service_rc == 8 && service_rs == 72)
+			return -EINVAL;
 		zdev->online = 0;
 		return -EAGAIN;	/* repeat the request on a different device. */
 	}

+ 2 - 0
drivers/s390/crypto/zcrypt_pcixcc.c

@@ -470,6 +470,8 @@ static int convert_type86_ica(struct zcrypt_device *zdev,
 		}
 		if (service_rc == 12 && service_rs == 769)
 			return -EINVAL;
+		if (service_rc == 8 && service_rs == 72)
+			return -EINVAL;
 		zdev->online = 0;
 		return -EAGAIN;	/* repeat the request on a different device. */
 	}