RE: [PATCH v2] Drivers: vmbus: Check for channel allocation before looking up relids

From: Vitaly Kuznetsov
Date: Fri Feb 17 2023 - 04:52:30 EST


Dexuan Cui <decui@xxxxxxxxxxxxx> writes:

>> From: Mohammed Gamal <mgamal@xxxxxxxxxx>
>> Sent: Tuesday, February 14, 2023 3:28 AM
>> ...
>> So Make relid2channel() check if vmbus channels is allocated first, and if not
>> print a warning and return NULL to the caller.
> Can we change the above to:
>
> Print a warning and error out in relid2channel() for a channel id that's invalid
> in the second kernel.
>
>> --- a/drivers/hv/connection.c
>> +++ b/drivers/hv/connection.c
>> @@ -409,6 +409,10 @@ void vmbus_disconnect(void)
>> */
>> struct vmbus_channel *relid2channel(u32 relid)
>> {
>> + if (vmbus_connection.channels == NULL) {
>> + WARN(1, "Requested relid=%u, but channel mapping not
>> allocated!\n", relid);
>
> WARN() may be too noisy. I suggest we use pr_warn() instead.
>
> Can we make the line a little shorter:
> pr_warn("relid2channel: invalid channel id %u\n", relid);
>

I'd even suggest to make it pr_warn_once() to be
safe. In theory, vmbus_chan_sched() call site looks like it can create a
lot of noise.

--
Vitaly