From: "Michael Kelley \(LINUX\) via Virtualization" <virtualization@lists.linux-foundation.org>
To: "Andrea Parri (Microsoft)" <parri.andrea@gmail.com>,
KY Srinivasan <kys@microsoft.com>,
Haiyang Zhang <haiyangz@microsoft.com>,
Stephen Hemminger <sthemmin@microsoft.com>,
Wei Liu <wei.liu@kernel.org>, Dexuan Cui <decui@microsoft.com>,
Stefano Garzarella <sgarzare@redhat.com>,
David Miller <davem@davemloft.net>,
Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>
Cc: "netdev@vger.kernel.org" <netdev@vger.kernel.org>,
"linux-hyperv@vger.kernel.org" <linux-hyperv@vger.kernel.org>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
"virtualization@lists.linux-foundation.org"
<virtualization@lists.linux-foundation.org>
Subject: RE: [RFC PATCH 5/6] Drivers: hv: vmbus: Accept hv_sock offers in isolated guests
Date: Fri, 15 Apr 2022 03:33:51 +0000 [thread overview]
Message-ID: <PH0PR21MB302520562EED77A587340D1DD7EE9@PH0PR21MB3025.namprd21.prod.outlook.com> (raw)
In-Reply-To: <20220413204742.5539-6-parri.andrea@gmail.com>
From: Andrea Parri (Microsoft) <parri.andrea@gmail.com> Sent: Wednesday, April 13, 2022 1:48 PM
>
> So that isolated guests can communicate with the host via hv_sock
> channels.
>
> Signed-off-by: Andrea Parri (Microsoft) <parri.andrea@gmail.com>
> ---
> drivers/hv/channel_mgmt.c | 9 +++++++--
> include/linux/hyperv.h | 8 ++++++--
> 2 files changed, 13 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/hv/channel_mgmt.c b/drivers/hv/channel_mgmt.c
> index 67be81208a2d9..83d7ab90b7305 100644
> --- a/drivers/hv/channel_mgmt.c
> +++ b/drivers/hv/channel_mgmt.c
> @@ -976,17 +976,22 @@ find_primary_channel_by_offer(const struct
> vmbus_channel_offer_channel *offer)
> return channel;
> }
>
> -static bool vmbus_is_valid_device(const guid_t *guid)
> +static bool vmbus_is_valid_offer(const struct vmbus_channel_offer_channel *offer)
> {
> + const guid_t *guid = &offer->offer.if_type;
> u16 i;
>
> if (!hv_is_isolation_supported())
> return true;
>
> + if (is_hvsock_offer(offer))
> + return true;
> +
> for (i = 0; i < ARRAY_SIZE(vmbus_devs); i++) {
> if (guid_equal(guid, &vmbus_devs[i].guid))
> return vmbus_devs[i].allowed_in_isolated;
> }
> +
Spurious newline added?
> return false;
> }
>
> @@ -1004,7 +1009,7 @@ static void vmbus_onoffer(struct
> vmbus_channel_message_header *hdr)
>
> trace_vmbus_onoffer(offer);
>
> - if (!vmbus_is_valid_device(&offer->offer.if_type)) {
> + if (!vmbus_is_valid_offer(offer)) {
> pr_err_ratelimited("Invalid offer %d from the host supporting isolation\n",
> offer->child_relid);
> atomic_dec(&vmbus_connection.offer_in_progress);
> diff --git a/include/linux/hyperv.h b/include/linux/hyperv.h
> index 55478a6810b60..1112c5cf894e6 100644
> --- a/include/linux/hyperv.h
> +++ b/include/linux/hyperv.h
> @@ -1044,10 +1044,14 @@ struct vmbus_channel {
> u64 vmbus_next_request_id(struct vmbus_channel *channel, u64 rqst_addr);
> u64 vmbus_request_addr(struct vmbus_channel *channel, u64 trans_id);
>
> +static inline bool is_hvsock_offer(const struct vmbus_channel_offer_channel *o)
> +{
> + return !!(o->offer.chn_flags & VMBUS_CHANNEL_TLNPI_PROVIDER_OFFER);
> +}
> +
> static inline bool is_hvsock_channel(const struct vmbus_channel *c)
> {
> - return !!(c->offermsg.offer.chn_flags &
> - VMBUS_CHANNEL_TLNPI_PROVIDER_OFFER);
> + return is_hvsock_offer(&c->offermsg);
> }
>
> static inline bool is_sub_channel(const struct vmbus_channel *c)
> --
> 2.25.1
_______________________________________________
Virtualization mailing list
Virtualization@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/virtualization
WARNING: multiple messages have this Message-ID
From: "Michael Kelley (LINUX)" <mikelley@microsoft.com>
To: "Andrea Parri (Microsoft)" <parri.andrea@gmail.com>,
KY Srinivasan <kys@microsoft.com>,
Haiyang Zhang <haiyangz@microsoft.com>,
Stephen Hemminger <sthemmin@microsoft.com>,
Wei Liu <wei.liu@kernel.org>, Dexuan Cui <decui@microsoft.com>,
Stefano Garzarella <sgarzare@redhat.com>,
David Miller <davem@davemloft.net>,
Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>
Cc: "linux-hyperv@vger.kernel.org" <linux-hyperv@vger.kernel.org>,
"virtualization@lists.linux-foundation.org"
<virtualization@lists.linux-foundation.org>,
"netdev@vger.kernel.org" <netdev@vger.kernel.org>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
Subject: RE: [RFC PATCH 5/6] Drivers: hv: vmbus: Accept hv_sock offers in isolated guests
Date: Fri, 15 Apr 2022 03:33:51 +0000 [thread overview]
Message-ID: <PH0PR21MB302520562EED77A587340D1DD7EE9@PH0PR21MB3025.namprd21.prod.outlook.com> (raw)
In-Reply-To: <20220413204742.5539-6-parri.andrea@gmail.com>
From: Andrea Parri (Microsoft) <parri.andrea@gmail.com> Sent: Wednesday, April 13, 2022 1:48 PM
>
> So that isolated guests can communicate with the host via hv_sock
> channels.
>
> Signed-off-by: Andrea Parri (Microsoft) <parri.andrea@gmail.com>
> ---
> drivers/hv/channel_mgmt.c | 9 +++++++--
> include/linux/hyperv.h | 8 ++++++--
> 2 files changed, 13 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/hv/channel_mgmt.c b/drivers/hv/channel_mgmt.c
> index 67be81208a2d9..83d7ab90b7305 100644
> --- a/drivers/hv/channel_mgmt.c
> +++ b/drivers/hv/channel_mgmt.c
> @@ -976,17 +976,22 @@ find_primary_channel_by_offer(const struct
> vmbus_channel_offer_channel *offer)
> return channel;
> }
>
> -static bool vmbus_is_valid_device(const guid_t *guid)
> +static bool vmbus_is_valid_offer(const struct vmbus_channel_offer_channel *offer)
> {
> + const guid_t *guid = &offer->offer.if_type;
> u16 i;
>
> if (!hv_is_isolation_supported())
> return true;
>
> + if (is_hvsock_offer(offer))
> + return true;
> +
> for (i = 0; i < ARRAY_SIZE(vmbus_devs); i++) {
> if (guid_equal(guid, &vmbus_devs[i].guid))
> return vmbus_devs[i].allowed_in_isolated;
> }
> +
Spurious newline added?
> return false;
> }
>
> @@ -1004,7 +1009,7 @@ static void vmbus_onoffer(struct
> vmbus_channel_message_header *hdr)
>
> trace_vmbus_onoffer(offer);
>
> - if (!vmbus_is_valid_device(&offer->offer.if_type)) {
> + if (!vmbus_is_valid_offer(offer)) {
> pr_err_ratelimited("Invalid offer %d from the host supporting isolation\n",
> offer->child_relid);
> atomic_dec(&vmbus_connection.offer_in_progress);
> diff --git a/include/linux/hyperv.h b/include/linux/hyperv.h
> index 55478a6810b60..1112c5cf894e6 100644
> --- a/include/linux/hyperv.h
> +++ b/include/linux/hyperv.h
> @@ -1044,10 +1044,14 @@ struct vmbus_channel {
> u64 vmbus_next_request_id(struct vmbus_channel *channel, u64 rqst_addr);
> u64 vmbus_request_addr(struct vmbus_channel *channel, u64 trans_id);
>
> +static inline bool is_hvsock_offer(const struct vmbus_channel_offer_channel *o)
> +{
> + return !!(o->offer.chn_flags & VMBUS_CHANNEL_TLNPI_PROVIDER_OFFER);
> +}
> +
> static inline bool is_hvsock_channel(const struct vmbus_channel *c)
> {
> - return !!(c->offermsg.offer.chn_flags &
> - VMBUS_CHANNEL_TLNPI_PROVIDER_OFFER);
> + return is_hvsock_offer(&c->offermsg);
> }
>
> static inline bool is_sub_channel(const struct vmbus_channel *c)
> --
> 2.25.1
next prev parent reply other threads:[~2022-04-15 3:33 UTC|newest]
Thread overview: 32+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-04-13 20:47 [RFC PATCH 0/6] hv_sock: Hardening changes Andrea Parri (Microsoft)
2022-04-13 20:47 ` [RFC PATCH 1/6] hv_sock: Check hv_pkt_iter_first_raw()'s return value Andrea Parri (Microsoft)
2022-04-15 3:33 ` Michael Kelley (LINUX) via Virtualization
2022-04-15 3:33 ` Michael Kelley (LINUX)
2022-04-15 6:41 ` Andrea Parri
2022-04-15 14:27 ` Michael Kelley (LINUX) via Virtualization
2022-04-15 14:27 ` Michael Kelley (LINUX)
2022-04-15 16:09 ` Andrea Parri
2022-04-13 20:47 ` [RFC PATCH 2/6] hv_sock: Copy packets sent by Hyper-V out of the ring buffer Andrea Parri (Microsoft)
2022-04-15 3:33 ` Michael Kelley (LINUX) via Virtualization
2022-04-15 3:33 ` Michael Kelley (LINUX)
2022-04-15 6:42 ` Andrea Parri
2022-04-13 20:47 ` [RFC PATCH 3/6] hv_sock: Add validation for untrusted Hyper-V values Andrea Parri (Microsoft)
2022-04-13 20:47 ` [RFC PATCH 4/6] hv_sock: Initialize send_buf in hvs_stream_enqueue() Andrea Parri (Microsoft)
2022-04-15 3:33 ` Michael Kelley (LINUX) via Virtualization
2022-04-15 3:33 ` Michael Kelley (LINUX)
2022-04-15 6:50 ` Andrea Parri
2022-04-15 14:30 ` Michael Kelley (LINUX) via Virtualization
2022-04-15 14:30 ` Michael Kelley (LINUX)
2022-04-15 16:16 ` Andrea Parri
2022-04-13 20:47 ` [RFC PATCH 5/6] Drivers: hv: vmbus: Accept hv_sock offers in isolated guests Andrea Parri (Microsoft)
2022-04-15 3:33 ` Michael Kelley (LINUX) via Virtualization [this message]
2022-04-15 3:33 ` Michael Kelley (LINUX)
2022-04-15 6:58 ` Andrea Parri
2022-04-13 20:47 ` [RFC PATCH 6/6] Drivers: hv: vmbus: Refactor the ring-buffer iterator functions Andrea Parri (Microsoft)
2022-04-15 3:34 ` Michael Kelley (LINUX) via Virtualization
2022-04-15 3:34 ` Michael Kelley (LINUX)
2022-04-15 7:00 ` Andrea Parri
2022-04-15 16:28 ` Andrea Parri
2022-04-15 16:44 ` Michael Kelley (LINUX)
2022-04-15 16:44 ` Michael Kelley (LINUX) via Virtualization
2022-04-15 17:05 ` Andrea Parri
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=PH0PR21MB302520562EED77A587340D1DD7EE9@PH0PR21MB3025.namprd21.prod.outlook.com \
--to=virtualization@lists.linux-foundation.org \
--cc=davem@davemloft.net \
--cc=decui@microsoft.com \
--cc=haiyangz@microsoft.com \
--cc=kuba@kernel.org \
--cc=kys@microsoft.com \
--cc=linux-hyperv@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mikelley@microsoft.com \
--cc=netdev@vger.kernel.org \
--cc=pabeni@redhat.com \
--cc=parri.andrea@gmail.com \
--cc=sgarzare@redhat.com \
--cc=sthemmin@microsoft.com \
--cc=wei.liu@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.