Received: by 2002:a05:6a10:17d3:0:0:0:0 with SMTP id hz19csp2227602pxb; Mon, 12 Apr 2021 18:39:48 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwW39K/drXvGGiSpvyi/FkJPNCf4KFX7we3dgPq7y3DwkIBxlLk63tPwJeXHRZ3q7PnhPDd X-Received: by 2002:a62:b606:0:b029:222:7cab:5b1 with SMTP id j6-20020a62b6060000b02902227cab05b1mr26651890pff.32.1618277987946; Mon, 12 Apr 2021 18:39:47 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1618277987; cv=none; d=google.com; s=arc-20160816; b=Nh9Pu4Poq6l3zuGRxRGPAfJ2L0hNVUt49WjJsNFv6k3K6jtB6pGuFcC9tliL6WuExJ QHRMmnpQtuHWccw7Dv5s78eetfhvh8JEv4XUiCJnZ/gMKbVd7DqR1samnEfTHnUO990H OLhC6/y0erqoMmFGYAt/kscWFc8zjnEI2V21pMT5o0/p8c4Ivg5JmlKQRKT5PYRzNJdV yKkV31NeCLVsWFJLEKPmn79Bz1Xp0p0acjl1UBz9fQEBrlwE0Yjwym2EoTX4GyngoCRJ gnb2wsZejO376GMrrkicqz4yD6O8OVOPgS7dkmuUjWubixRFWfux+1/v9Z0i5GaRTFpg VthQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:in-reply-to:content-disposition:mime-version :references:message-id:subject:cc:to:from:date; bh=iy+REnnzgLar4p71XWqGhl/EkCpUwmdtU8+blxq9iFE=; b=ZAy6uVyy18O6CsWWUgcZK3Clly9Y8ywq4odiGyqrI3DaOlTtX6MMm6cEt9NoLqkYWo YE+9uNBp19REO5XVo3Imr/GUoTnARqwikpe+nym+3ea1K+xvWQ/7fWufO9m9f7hZuEL3 wT4wnO2jaBiuwYSB2j0U6dRrTMrolcCm1K4uWB8DxrpL+at2GSjOBpcve1lcys6G0n1d vodqRsR1M5aHW8Q58NjqsgzqzYa8Fe2XBCTgq+MZTTjt15ZhFjWoEHiTeiXxN9wQhYU7 Me2s0kbI+fYUFE/bYmnDMsFzc3LhGgDDWu1ny2r+Wbqku9Wpn8pWsjlzngAPwbdsRX6q KZgQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id j1si16304251plt.143.2021.04.12.18.39.35; Mon, 12 Apr 2021 18:39:47 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S240800AbhDLMc2 (ORCPT + 99 others); Mon, 12 Apr 2021 08:32:28 -0400 Received: from vps0.lunn.ch ([185.16.172.187]:45340 "EHLO vps0.lunn.ch" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S239061AbhDLMc0 (ORCPT ); Mon, 12 Apr 2021 08:32:26 -0400 Received: from andrew by vps0.lunn.ch with local (Exim 4.94) (envelope-from ) id 1lVvjU-00GGID-7f; Mon, 12 Apr 2021 14:32:00 +0200 Date: Mon, 12 Apr 2021 14:32:00 +0200 From: Andrew Lunn To: Dexuan Cui Cc: davem@davemloft.net, kuba@kernel.org, kys@microsoft.com, haiyangz@microsoft.com, sthemmin@microsoft.com, wei.liu@kernel.org, liuwe@microsoft.com, netdev@vger.kernel.org, leon@kernel.org, bernd@petrovitsch.priv.at, rdunlap@infradead.org, shacharr@microsoft.com, linux-kernel@vger.kernel.org, linux-hyperv@vger.kernel.org Subject: Re: [PATCH v4 net-next] net: mana: Add a driver for Microsoft Azure Network Adapter (MANA) Message-ID: References: <20210412023455.45594-1-decui@microsoft.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20210412023455.45594-1-decui@microsoft.com> Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org > +static void mana_gd_deregiser_irq(struct gdma_queue *queue) > +{ > + struct gdma_dev *gd = queue->gdma_dev; > + struct gdma_irq_context *gic; > + struct gdma_context *gc; > + struct gdma_resource *r; > + unsigned int msix_index; > + unsigned long flags; > + > + /* At most num_online_cpus() + 1 interrupts are used. */ > + msix_index = queue->eq.msix_index; > + if (WARN_ON(msix_index > num_online_cpus())) > + return; Do you handle hot{un}plug of CPUs? > +static void mana_hwc_init_event_handler(void *ctx, struct gdma_queue *q_self, > + struct gdma_event *event) > +{ > + struct hw_channel_context *hwc = ctx; > + struct gdma_dev *gd = hwc->gdma_dev; > + union hwc_init_type_data type_data; > + union hwc_init_eq_id_db eq_db; > + u32 type, val; > + > + switch (event->type) { > + case GDMA_EQE_HWC_INIT_EQ_ID_DB: > + eq_db.as_uint32 = event->details[0]; > + hwc->cq->gdma_eq->id = eq_db.eq_id; > + gd->doorbell = eq_db.doorbell; > + break; > + > + case GDMA_EQE_HWC_INIT_DATA: > + > + type_data.as_uint32 = event->details[0]; > + > + case GDMA_EQE_HWC_INIT_DONE: > + complete(&hwc->hwc_init_eqe_comp); > + break; ... > + default: > + WARN_ON(1); > + break; > + } Are these events from the firmware? If you have newer firmware with an older driver, are you going to spam the kernel log with WARN_ON dumps? > +static int mana_move_wq_tail(struct gdma_queue *wq, u32 num_units) > +{ > + u32 used_space_old; > + u32 used_space_new; > + > + used_space_old = wq->head - wq->tail; > + used_space_new = wq->head - (wq->tail + num_units); > + > + if (used_space_new > used_space_old) { > + WARN_ON(1); > + return -ERANGE; > + } You could replace the 1 by the condition. There are a couple of these. Andrew