[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH] tools/libs/ctrl: Save errno only once in *PRINTF() and *ERROR()


  • To: Juergen Gross <jgross@xxxxxxxx>
  • From: Jan Beulich <jbeulich@xxxxxxxx>
  • Date: Thu, 9 Dec 2021 14:31:19 +0100
  • Arc-authentication-results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com; dkim=pass header.d=suse.com; arc=none
  • Arc-message-signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=bU1IOlukx2Li3M948d4Bb8tPyrGgtbqzjTe+77Ph5Uc=; b=Qz9B0VTebjQ4wYWqRAleQ3H+4CeN5e5L+QwAMl2HxRRcwr5oxsqR5CbLU1O1+yTvQMe+H4LBjSkQflE+/H4z2ngKFGZfXsqAjBClLsu4NGJTFTEPrT70NVOkFTXDQTX9IElel3t+F7Kmo80/BwCddcQ17mLoeO7N/TI8dTh1aaATUB87r6fO+O2kybc5GgfL4CwP8lXMmaweg+0So4YcJHvcfUs+QRTSejAjenWYV8cqRQcsZokT6Ey2asN5lPZA1VE4U3Huoqtt2M+WrvuERlqhjrj73Db02ODslsqlMnG1nFUVwjG75R4ynZl9VXwAApT4VkGP8HV95HfZV5dDvw==
  • Arc-seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=FDvPk8e5Jm5YNOEk70+8xJoYbJKpRddShD+hLmPTi0cjlXEXLfRKTNhcp93ql2Bh/EfeUlMWRf0an5/KMy8VGsU8c4oMve/AxntPVcTK9WS11RYBKy34LY3OHvhfm5bAFYbxatUJOyPoHBj90NJGZjm3i+RF/4v15NLjV0foZLdSixXvU8nMealDjY+KH+DeWA3jH7twK6EmmWPrlWMOroX44nAK90l9XYlyyr026oDX8QwrUqyfLJnNE5UExPictjpYlBwGg7rAZ98xAcb7yqYwIL55qSBpCHDGpzz96K/O5KFVXcz959kmS2WofsBZzVbcMuBq7XV2arBdPbIM2Q==
  • Authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=suse.com;
  • Cc: anthony.perard@xxxxxxxxxx, Wei Liu <wl@xxxxxxx>, xen-devel@xxxxxxxxxxxxxxxxxxxx
  • Delivery-date: Thu, 09 Dec 2021 13:31:36 +0000
  • List-id: Xen developer discussion <xen-devel.lists.xenproject.org>

On 09.12.2021 13:09, Juergen Gross wrote:
> All *PRINTF() and *ERROR() macros are based on xc_reportv() which is
> saving and restoring errno in order to not modify it. There is no need
> to save and restore in those macros, too.
> 
> Signed-off-by: Juergen Gross <jgross@xxxxxxxx>

Reviewed-by: Jan Beulich <jbeulich@xxxxxxxx>
Albeit ...

> --- a/tools/libs/ctrl/xc_private.h
> +++ b/tools/libs/ctrl/xc_private.h
> @@ -122,28 +122,18 @@ void xc_report_progress_step(xc_interface *xch,
>  
>  /* anamorphic macros:  struct xc_interface *xch  must be in scope */
>  
> -#define IPRINTF(_f, _a...)  do { int IPRINTF_errno = errno; \
> -        xc_report(xch, xch->error_handler, XTL_INFO,0, _f , ## _a); \
> -        errno = IPRINTF_errno; \
> -        } while (0)
> -#define DPRINTF(_f, _a...) do { int DPRINTF_errno = errno; \
> -        xc_report(xch, xch->error_handler, XTL_DETAIL,0, _f , ## _a); \
> -        errno = DPRINTF_errno; \
> -        } while (0)
> -#define DBGPRINTF(_f, _a...)  do { int DBGPRINTF_errno = errno; \
> -        xc_report(xch, xch->error_handler, XTL_DEBUG,0, _f , ## _a); \
> -        errno = DBGPRINTF_errno; \
> -        } while (0)
> -
> -#define ERROR(_m, _a...)  do { int ERROR_errno = errno; \
> -        xc_report_error(xch,XC_INTERNAL_ERROR,_m , ## _a ); \
> -        errno = ERROR_errno; \
> -        } while (0)
> -#define PERROR(_m, _a...) do { int PERROR_errno = errno; \
> +#define IPRINTF(_f, _a...) \
> +        xc_report(xch, xch->error_handler, XTL_INFO,0, _f , ## _a)
> +#define DPRINTF(_f, _a...) \
> +        xc_report(xch, xch->error_handler, XTL_DETAIL,0, _f , ## _a)
> +#define DBGPRINTF(_f, _a...) \
> +        xc_report(xch, xch->error_handler, XTL_DEBUG,0, _f , ## _a)
> +
> +#define ERROR(_m, _a...) \
> +        xc_report_error(xch,XC_INTERNAL_ERROR,_m , ## _a )
> +#define PERROR(_m, _a...) \
>          xc_report_error(xch,XC_INTERNAL_ERROR,_m " (%d = %s)", \
> -        ## _a , errno, xc_strerror(xch, errno)); \
> -        errno = PERROR_errno; \
> -        } while (0)
> +                        ## _a , errno, xc_strerror(xch, errno))

... while I realize you only stripped only semicolons and line
continuations, but I would find it quite desirable to also get the
use of blanks straightened at this occasion: In a number of cases
commas aren't followed by blanks and (instead?) sometimes are
preceded by ones. It doesn't seem very likely to me that this
would be intentional.

Jan




 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.