From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id ECA961FD9 for ; Wed, 19 Apr 2023 05:45:20 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id DA0E0C433EF; Wed, 19 Apr 2023 05:45:18 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1681883120; bh=rHIVwcWlnAi6I7EkL3r3k1a15viUoZ98G0Ds8/Yst4M=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=H/BGdcSYEk2ZQ32pQ/0W1uRry9lv83+rgnE4uGpjyOtQqRFDNUni+12kavXJZm2No NRSeFPNyOaiol6RH221aAeH0iJ7QLpGF282uUoj1w6ZESa0iGmg61OKWt37WA6h2/P 3uAY8LG6/vzl6VbVkSGZTHmZkTIsOffKc3D4w/e9jysM530tYnCBj/EMyo4p1rc2Kx eCpBKX7SsQ+yDJE3ON1iwcBGWo30qaD7n1lfrZPW85hzpGUH7meWLVGjQH2KdlOdF3 /UiVSEa2frokvmHdbWV+y0PTiQ89/vjtpefaqFOl+dxdb7BIrFF4QqPynZlk3oHO0u iP8KnCri24PZA== Date: Wed, 19 Apr 2023 07:45:16 +0200 From: Simon Horman To: Nick Desaulniers Cc: Nishanth Menon , Santosh Shilimkar , Nathan Chancellor , Tom Rix , linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, llvm@lists.linux.dev Subject: Re: [PATCH] soc: ti: pruss: Avoid cast to incompatible function type Message-ID: References: <20230418-pruss-clk-cb-v1-1-549a7e7febe4@kernel.org> Precedence: bulk X-Mailing-List: llvm@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: On Tue, Apr 18, 2023 at 11:44:28AM -0700, Nick Desaulniers wrote: > On Tue, Apr 18, 2023 at 4:41 AM Simon Horman wrote: > > > > Rather than casting clk_unregister_mux to an incompatible function > > type provide a trivial wrapper with the correct signature for the > > use-case. > > > > Reported by clang-16 with W=1: > > > > drivers/soc/ti/pruss.c:158:38: error: cast from 'void (*)(struct clk *)' to 'void (*)(void *)' converts to incompatible function type [-Werror,-Wcast-function-type-strict] > > ret = devm_add_action_or_reset(dev, (void(*)(void *))clk_unregister_mux, > > > > No functional change intended. > > Compile tested only. > > Thanks for the patch! > Reviewed-by: Nick Desaulniers > > Here's some more suspects to look at, if you have cycles: > drivers/base/devres.c:734:int __devm_add_action(struct device *dev, > void (*action)(void *), void *data, const char *name) > drivers/i2c/busses/i2c-mchp-pci1xxxx.c:1159: ret = > devm_add_action(dev, (void (*)(void *))pci1xxxx_i2c_shutdown, i2c); > drivers/soc/ti/pruss.c:96: ret = devm_add_action_or_reset(dev, > (void(*)(void *))clk_unregister_mux, > drivers/mmc/host/meson-mx-sdhc-mmc.c:791: ret = > devm_add_action_or_reset(dev, (void(*)(void *))mmc_free_host, > drivers/pci/controller/pcie-microchip-host.c:866: > devm_add_action_or_reset(dev, (void (*) (void > *))clk_disable_unprepare, Thanks, I will take a look as a background task. Let me know if there is any urgency on your side. ...