From patchwork Mon Jun 27 12:36:35 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Julien Grall X-Patchwork-Id: 12896606 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 9A19DC43334 for ; Mon, 27 Jun 2022 12:37:49 +0000 (UTC) Received: from list by lists.xenproject.org with outflank-mailman.356571.584808 (Exim 4.92) (envelope-from ) id 1o5nzb-0007PN-2U; Mon, 27 Jun 2022 12:37:27 +0000 X-Outflank-Mailman: Message body and most headers restored to incoming version Received: by outflank-mailman (output) from mailman id 356571.584808; Mon, 27 Jun 2022 12:37:27 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1o5nza-0007PG-Vs; Mon, 27 Jun 2022 12:37:26 +0000 Received: by outflank-mailman (input) for mailman id 356571; Mon, 27 Jun 2022 12:37:25 +0000 Received: from mail.xenproject.org ([104.130.215.37]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1o5nzZ-0006ub-Cy for xen-devel@lists.xenproject.org; Mon, 27 Jun 2022 12:37:25 +0000 Received: from xenbits.xenproject.org ([104.239.192.120]) by mail.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1o5nzZ-0002wr-AH; Mon, 27 Jun 2022 12:37:25 +0000 Received: from 54-240-197-224.amazon.com ([54.240.197.224] helo=dev-dsk-jgrall-1b-035652ec.eu-west-1.amazon.com) by xenbits.xenproject.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92) (envelope-from ) id 1o5nzZ-0007Ql-1x; Mon, 27 Jun 2022 12:37:25 +0000 X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org; s=20200302mail; h=Content-Transfer-Encoding:MIME-Version:References: In-Reply-To:Message-Id:Date:Subject:Cc:To:From; bh=XVUKUMHdJRQ1Ho4SEl/UvW5XaMba3R7x8iHBIEdv7MQ=; b=cBxr+PMKesl+cgeA7NVj/ZjhnM yMapaeUAmT1aPLWjPzz/FQXUImz5I+zHRw/LQnFdfmLIQsABQAf9gQ5L4S2e8LvrkVZl2QbpI9xy+ e6nJcdbauKwR4Rio2piVqIpHA0j2R5kFcwrE1m1+eKvmusYp9P1SFwH9VFvCJsvDia10=; From: Julien Grall To: xen-devel@lists.xenproject.org Cc: jbeulich@suse.com, Julien Grall , Juergen Gross Subject: [PATCH v2 2/2] public/io: xs_wire: Allow Xenstore to report EPERM Date: Mon, 27 Jun 2022 13:36:35 +0100 Message-Id: <20220627123635.3416-3-julien@xen.org> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20220627123635.3416-1-julien@xen.org> References: <20220627123635.3416-1-julien@xen.org> MIME-Version: 1.0 From: Julien Grall C Xenstored is using EPERM when the client is not allowed to change the owner (see GET_PERMS). However, the xenstore protocol doesn't describe EPERM so EINVAL will be sent to the client. When writing test, it would be useful to differentiate between EINVAL (e.g. parsing error) and EPERM (i.e. no permission). So extend xsd_errors[] to support return EPERM. Looking at previous time xsd_errors was extended (8b2c441a1b), it was considered to be safe to add a new error because at least Linux driver and libxenstore treat an unknown error code as EINVAL. This statement doesn't cover other possible OSes, however I am not aware of any breakage. Signed-off-by: Julien Grall ---- Changes in v2: - Define EPERM at the end of xsd_errors Reviewed-by: Juergen Gross --- xen/include/public/io/xs_wire.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/xen/include/public/io/xs_wire.h b/xen/include/public/io/xs_wire.h index dd4c9c9b972d..211770911d9b 100644 --- a/xen/include/public/io/xs_wire.h +++ b/xen/include/public/io/xs_wire.h @@ -91,7 +91,8 @@ __attribute__((unused)) XSD_ERROR(EBUSY), XSD_ERROR(EAGAIN), XSD_ERROR(EISCONN), - XSD_ERROR(E2BIG) + XSD_ERROR(E2BIG), + XSD_ERROR(EPERM), }; #endif