From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1757485AbbI1RwN (ORCPT ); Mon, 28 Sep 2015 13:52:13 -0400 Received: from mga11.intel.com ([192.55.52.93]:24076 "EHLO mga11.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1757357AbbI1RwL (ORCPT ); Mon, 28 Sep 2015 13:52:11 -0400 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.17,603,1437462000"; d="scan'208";a="799013479" From: "Chen, Yu C" To: Javi Merino CC: "linux-pm@vger.kernel.org" , "edubezval@gmail.com" , "Zhang, Rui" , "linux-kernel@vger.kernel.org" , "stable@vger.kernel.org" Subject: RE: [PATCH 3/3] Thermal: do thermal zone update after a cooling device registered Thread-Topic: [PATCH 3/3] Thermal: do thermal zone update after a cooling device registered Thread-Index: AQHQ+Ofp6qJvX/216USrsPTi1ggjXp5RfCaAgAC6jbA= Date: Mon, 28 Sep 2015 17:52:00 +0000 Message-ID: <36DF59CE26D8EE47B0655C516E9CE64026F22641@SHSMSX101.ccr.corp.intel.com> References: <1443332924-14028-1-git-send-email-yu.c.chen@intel.com> <20150928142902.GA9175@e104805> In-Reply-To: <20150928142902.GA9175@e104805> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.239.127.40] Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Transfer-Encoding: 8bit X-MIME-Autoconverted: from base64 to 8bit by mail.home.local id t8SHqHk9012420 Hi, Javi, > -----Original Message----- > From: Javi Merino [mailto:javi.merino@arm.com] > Sent: Monday, September 28, 2015 10:29 PM > To: Chen, Yu C > Cc: linux-pm@vger.kernel.org; edubezval@gmail.com; Zhang, Rui; linux- > kernel@vger.kernel.org; stable@vger.kernel.org > Subject: Re: [PATCH 3/3] Thermal: do thermal zone update after a cooling > device registered > > On Sun, Sep 27, 2015 at 06:48:44AM +0100, Chen Yu wrote: > > From: Zhang Rui > > > > > > I think you need to hold cdev->lock here, to make sure that no thermal zone > is added or removed from cdev->thermal_instances while you are looping. > Ah right, will add. If I add the cdev ->lock here, will there be a AB-BA lock with thermal_zone_unbind_cooling_device? > > Why list_for_each_entry_safe() ? You are not going to remove any entry, so > you can just use list_for_each_entry() > > > Why is this so complicated? Can't you just do: > > list_for_each_entry(pos, &cdev->thermal_instances, cdev_node) > thermal_zone_device_update(pos->tz); > This is an optimization here: Ignore thermal instance that refers to the same thermal zone in this loop, this works because bind_cdev() always binds the cooling device to one thermal zone first, and then binds to the next thermal zone. Best Regards, Yu ÿôèº{.nÇ+‰·Ÿ®‰­†+%ŠËÿ±éݶ¥Šwÿº{.nÇ+‰·¥Š{±þG«�éÿŠ{ayºʇڙë,j­¢f£¢·hš�ï�êÿ‘êçz_è®(­éšŽŠÝ¢j"�ú¶m§ÿÿ¾«þG«�éÿ¢¸?™¨è­Ú&£ø§~�á¶iO•æ¬z·švØ^¶m§ÿÿà ÿ¶ìÿ¢¸?–I¥