[PATCH v2 3/9] powerpc/powernv: opal_put_chars partial write fix

Benjamin Herrenschmidt benh at kernel.crashing.org
Mon Apr 9 15:50:32 AEST 2018


On Mon, 2018-04-09 at 15:24 +1000, Nicholas Piggin wrote:
> The intention here is to consume and discard the remaining buffer
> upon error. This works if there has not been a previous partial write.
> If there has been, then total_len is no longer total number of bytes
> to copy. total_len is always "bytes left to copy", so it should be
> added to written bytes.
> 
> This code may not be exercised any more if partial writes will not be
> hit, but this is a small bugfix before a larger change.
> 

Reviewed-by: Benjamin Herrenschmidt <benh at kernel.crashing.org>

> Signed-off-by: Nicholas Piggin <npiggin at gmail.com>
> ---
>  arch/powerpc/platforms/powernv/opal.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/arch/powerpc/platforms/powernv/opal.c b/arch/powerpc/platforms/powernv/opal.c
> index 516e23de5a3d..87d4c0aa7f64 100644
> --- a/arch/powerpc/platforms/powernv/opal.c
> +++ b/arch/powerpc/platforms/powernv/opal.c
> @@ -388,7 +388,7 @@ int opal_put_chars(uint32_t vtermno, const char *data, int total_len)
>  		/* Closed or other error drop */
>  		if (rc != OPAL_SUCCESS && rc != OPAL_BUSY &&
>  		    rc != OPAL_BUSY_EVENT) {
> -			written = total_len;
> +			written += total_len;
>  			break;
>  		}
>  		if (rc == OPAL_SUCCESS) {


More information about the Linuxppc-dev mailing list