Avoid re-checking argument on restart
diff --git a/library/ecp.c b/library/ecp.c
index 2f6c1e8..4e637d7 100644
--- a/library/ecp.c
+++ b/library/ecp.c
@@ -2115,9 +2115,19 @@
 
 #endif /* MBEDTLS_ECP_INTERNAL_ALT */
 
-    /* Common sanity checks */
-    MBEDTLS_MPI_CHK( mbedtls_ecp_check_privkey( grp, m ) );
-    MBEDTLS_MPI_CHK( mbedtls_ecp_check_pubkey( grp, P ) );
+#if defined(MBEDTLS_ECP_EARLY_RETURN) && defined(ECP_SHORTWEIERSTRASS)
+    /* skip argument check when restarting */
+    if( ecp_get_type( grp ) != ECP_TYPE_SHORT_WEIERSTRASS ||
+        rs_ctx == NULL || rs_ctx->rsm == NULL )
+#endif
+    {
+        /* Common sanity checks */
+        MBEDTLS_MPI_CHK( mbedtls_ecp_check_privkey( grp, m ) );
+        MBEDTLS_MPI_CHK( mbedtls_ecp_check_pubkey( grp, P ) );
+
+        /* check_privkey is 0M and check_pubkey is 3M */
+        ECP_BUDGET( 3 );
+    }
 
     ret = MBEDTLS_ERR_ECP_BAD_INPUT_DATA;
 #if defined(ECP_MONTGOMERY)