From patchwork Mon Jun 27 12:36:34 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Julien Grall X-Patchwork-Id: 12896607 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 CF673CCA47F for ; Mon, 27 Jun 2022 12:37:49 +0000 (UTC) Received: from list by lists.xenproject.org with outflank-mailman.356570.584794 (Exim 4.92) (envelope-from ) id 1o5nzZ-0006yI-SR; Mon, 27 Jun 2022 12:37:25 +0000 X-Outflank-Mailman: Message body and most headers restored to incoming version Received: by outflank-mailman (output) from mailman id 356570.584794; Mon, 27 Jun 2022 12:37:25 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1o5nzZ-0006xi-Lf; Mon, 27 Jun 2022 12:37:25 +0000 Received: by outflank-mailman (input) for mailman id 356570; Mon, 27 Jun 2022 12:37:24 +0000 Received: from mail.xenproject.org ([104.130.215.37]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1o5nzY-0006uV-JV for xen-devel@lists.xenproject.org; Mon, 27 Jun 2022 12:37:24 +0000 Received: from xenbits.xenproject.org ([104.239.192.120]) by mail.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1o5nzY-0002wl-Gr; Mon, 27 Jun 2022 12:37:24 +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 1o5nzY-0007Ql-8U; Mon, 27 Jun 2022 12:37:24 +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=w7gSoXXb34865U21Be1Dz8VUMwYroXFPxp1CGLJXARQ=; b=tEEu3IRfqsl4LeTJgPhUjaaFHy 57AeI0XGFwjlSBXt8yplYdBLiTcvQt0ogJYRrH84tPd+Z2re7iCsbEpQ7zDwjGM/64MS5sy7PcKgj tgSiaZ2uA723Xz2JuutsAm5Br4ztvi9Xt8Ie495kpfqmPtQAYc8FnmeoS8N/QkPQHYow=; From: Julien Grall To: xen-devel@lists.xenproject.org Cc: jbeulich@suse.com, Julien Grall , Juergen Gross Subject: [PATCH v2 1/2] public/io: xs_wire: Document that EINVAL should always be first in xsd_errors Date: Mon, 27 Jun 2022 13:36:34 +0100 Message-Id: <20220627123635.3416-2-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 Some tools (e.g. xenstored) always expect EINVAL to be first in xsd_errors. Document it so, one doesn't add a new entry before hand by mistake. Signed-off-by: Julien Grall ---- I have tried to add a BUILD_BUG_ON() but GCC complained that the value was not a constant. I couldn't figure out a way to make GCC happy. Changes in v2: - New patch --- xen/include/public/io/xs_wire.h | 1 + 1 file changed, 1 insertion(+) diff --git a/xen/include/public/io/xs_wire.h b/xen/include/public/io/xs_wire.h index c1ec7c73e3b1..dd4c9c9b972d 100644 --- a/xen/include/public/io/xs_wire.h +++ b/xen/include/public/io/xs_wire.h @@ -76,6 +76,7 @@ static struct xsd_errors xsd_errors[] __attribute__((unused)) #endif = { + /* /!\ Some users (e.g. xenstored) expect EINVAL to be the first entry. */ XSD_ERROR(EINVAL), XSD_ERROR(EACCES), XSD_ERROR(EEXIST), 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