Received: by 2002:a25:31c3:0:0:0:0:0 with SMTP id x186csp671697ybx; Fri, 1 Nov 2019 09:23:32 -0700 (PDT) X-Google-Smtp-Source: APXvYqzlsgcu1Ytmx3tCNmzRws2cIqPt2GBB1AHs4aap6E/VhXPnCguqSGYHYmkWUWpuZH6f5J7b X-Received: by 2002:a50:9713:: with SMTP id c19mr13631453edb.206.1572625412534; Fri, 01 Nov 2019 09:23:32 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1572625412; cv=none; d=google.com; s=arc-20160816; b=V7PqwWv34ak/UDwz6fIv/uTAqjge4gJYvETYsTiMN6rogL2r3TDK7OwLkVGVJ2OPIw 6HQTnKdtnFBt8tFpAHrY+jR8+t/qE6LBnlzyvbdmTZc9/E9XK9147x6jqJ/U8vApq9v2 +OeKgje/WDJ5B4M8W7oyrWNfUP2ROjuZLwFOoutvl71rebEdV/rKLW4uUfdcJSG4Bvc4 jKM3SU1uF+3lt/+EyEfv7hzNRVBqMWtz9zn2HwDa6JhesQQFU2ffzqvMr8DF9OhfSj+M F1TTmW/nSc1IpB7vK2lyMKFJPAbXz5uRWMPIw36wXUmlpf5xB11KiyGXIm+TaPRzY20M +6oQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:cc:to:subject :message-id:date:from:in-reply-to:references:mime-version :dkim-signature; bh=dAGwFFDGn7AorxgIz/AEpdCiGhCVLv3rIV9fz6SUeP8=; b=PYLJUvPz8LshDCCJoeCftNQ+Nyjq4dSX/bVzuXmOpuvDPOT3DJ9IY4YoFE4CfKnCEw l/Dzll2eYIhNGDxaRzwh30HewYVSR7gU5rIi5MlXofjEVv+UEt7xufCICpDOw14t7pkp IHl3Qqw6UKf5PPuFBrM+FWoJ22cNP/eduRzIkTAVGGfThR5hpJgFGsiUQ/V9l8O7pTiD wD3KZEqDfxF1lZgVmrtLCY3uOFQR970OHzjvIqPakhQjI2Os/M682uoV+ZS2eaa9tx/T 8BTfnLcrikoLDzNYgcSf3V7XK68In21+BwfZ1YZABtxBknlmlMY/8Bf0ol8UgWAx/zby pruA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=UMeh5Qej; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id l20si6700557ejz.355.2019.11.01.09.23.08; Fri, 01 Nov 2019 09:23:32 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=UMeh5Qej; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728040AbfKAQTP (ORCPT + 99 others); Fri, 1 Nov 2019 12:19:15 -0400 Received: from mail-pf1-f194.google.com ([209.85.210.194]:43414 "EHLO mail-pf1-f194.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726229AbfKAQTP (ORCPT ); Fri, 1 Nov 2019 12:19:15 -0400 Received: by mail-pf1-f194.google.com with SMTP id 3so7385964pfb.10; Fri, 01 Nov 2019 09:19:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=dAGwFFDGn7AorxgIz/AEpdCiGhCVLv3rIV9fz6SUeP8=; b=UMeh5QejuPBHRPk70ICMaxUtljVz04aSCgfhYqis0E+f/qX9YksRLO7gylTYEKYdZS mY9BheeLRGuXG96psRHLn7eGWKCfiXCVooi3Nr0pcj3xbx2JxEuIzoA5NikKE+TwNcac Czof0g0/HS6tjeFTLI3/C15xuzNymXh4xk/+5dl1tK0aCNXvDpZM/Cboof8NnyTLUGaJ 5IbU+Tod3smBHkiY8bEnMCuwChwcxbDBZSc18TTgQc9rUsf3QZtbQyYcd/PmHgY81sNi Q7R5vkOLrftO5A+Hp7WcOYjnqVl2MANl57fpvIWa6ly2F/Bn0aiAELMZOR+mvVP8pXR6 QbWA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=dAGwFFDGn7AorxgIz/AEpdCiGhCVLv3rIV9fz6SUeP8=; b=OZAIRAoZlKPAUAXoSyW/akRSX+BfpC1Opf9pizKBvlLRUoRfJDzwO0ldeoeBxiloqU ApLFaomjStQracM8Jo9mM9Ea7v/yGFe/hrpPruKYWpgfs9tf+8BhX/TnS4lt/lE1IpMN DR6NzP9p65KVdUrlyfN/J662YAWLZL/G7ds69aVK5o/FP9CmZ2PDk/TV/qvG7HgPZM1V 3uYd2+LjY4SKl35/BHoQI1vMquhXcqvAxlNa0RVgm6Jn4pht7xhDZ4jMHX40tas4v3eD CAk6PtL3emrL3YSKmHgBG14kCluTcsFUrgj0H1keV561UHbZuZ55kX36nh5ofLPSjlDG B+Yg== X-Gm-Message-State: APjAAAV3Tov7xdDJv2QT4tNqwUH3AmzXXFKstYvw1kP8QTtpYLqDazcs soPugdjLSvCllpXl+2lez8G5uHE7OxuJixOGp8A= X-Received: by 2002:a62:fb06:: with SMTP id x6mr6778318pfm.231.1572625154324; Fri, 01 Nov 2019 09:19:14 -0700 (PDT) MIME-Version: 1.0 References: <20191101035646.25644-1-linux@roeck-us.net> In-Reply-To: <20191101035646.25644-1-linux@roeck-us.net> From: Akinobu Mita Date: Sat, 2 Nov 2019 01:19:03 +0900 Message-ID: Subject: Re: [PATCH v3] nvme: Add hardware monitoring support To: Guenter Roeck Cc: Keith Busch , Chris Healy , Jens Axboe , Christoph Hellwig , Sagi Grimberg , LKML , linux-nvme@lists.infradead.org, Linux PM Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 2019=E5=B9=B411=E6=9C=881=E6=97=A5(=E9=87=91) 12:56 Guenter Roeck : > +void nvme_hwmon_init(struct nvme_ctrl *ctrl) > +{ > + struct device *dev =3D ctrl->device; Should we use 'ctrl->dev' instead of 'ctrl->device'? The 'ctrl->device' is a pointer to char device and the '->of_node' member is NULL. So if devm_hwmon_device_register_with_info() (i.e. __hwmon_device_register) is called with 'ctrl->device', it doesn't attempt to register a sensor to a DT thermal zone (i.e. hwmon_thermal_add_sensor() is not called at all). This change was required, when I tried this nvme hwmon patch with the following DT thermal setup. https://lore.kernel.org/linux-devicetree/1561990354-4084-3-git-send-email-a= kinobu.mita@gmail.com/ > + struct nvme_hwmon_data *data; > + struct device *hwmon; > + int err; > + > + data =3D devm_kzalloc(dev, sizeof(*data), GFP_KERNEL); > + if (!data) > + return; > + > + data->ctrl =3D ctrl; > + mutex_init(&data->read_lock); > + > + err =3D nvme_hwmon_get_smart_log(data); > + if (err) { > + dev_warn(dev, "Failed to read smart log (error %d)\n", er= r); > + devm_kfree(dev, data); > + return; > + } > + > + hwmon =3D devm_hwmon_device_register_with_info(dev, dev_name(dev)= , data, > + &nvme_hwmon_chip_inf= o, > + NULL); If the above change is applied, the second 'name' argument is changed from 'nvme0' to '0000:01:00.0' as a side effect. So we may want to change the second argument, too. > + if (IS_ERR(hwmon)) { > + dev_warn(dev, "Failed to instantiate hwmon device\n"); > + devm_kfree(dev, data); > + } > +}