From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753881AbbBTJhH (ORCPT ); Fri, 20 Feb 2015 04:37:07 -0500 Received: from mail-wi0-f170.google.com ([209.85.212.170]:61210 "EHLO mail-wi0-f170.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752029AbbBTJhE (ORCPT ); Fri, 20 Feb 2015 04:37:04 -0500 Date: Fri, 20 Feb 2015 10:36:59 +0100 From: Ingo Molnar To: Peter Zijlstra Cc: Viresh Kumar , Thomas Gleixner , Ingo Molnar , linaro-kernel@lists.linaro.org, Kevin Hilman , Preeti U Murthy , Daniel Lezcano , linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, Frederic Weisbecker , linaro-networking@linaro.org, Steven Miao , Mark Salter , Michal Simek , Ralf Baechle , Ley Foon Tan , Jonas Bonn , "David S. Miller" , Jeff Dike , Guan Xuetao Subject: Re: [PATCH] clockevents: Add (missing) default case for switch blocks Message-ID: <20150220093659.GA23469@gmail.com> References: <6291e308ab77a480c6b1732e16108c5fe6f66afa.1424412815.git.viresh.kumar@linaro.org> <20150220083842.GA20387@gmail.com> <20150220084807.GJ21418@twins.programming.kicks-ass.net> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20150220084807.GJ21418@twins.programming.kicks-ass.net> User-Agent: Mutt/1.5.23 (2014-03-12) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org * Peter Zijlstra wrote: > > So this whole approach looks fragile for several reasons: > > > > - 'mode setting' callbacks are just bad by design > > because they mix several functions into the same entry > > point, complicating the handler functions > > unnecessarily. We should reduce complexity, not expand > > on it. > > > > - now by adding 'default' you hide from drivers the > > ability to easily discover whether it has been updated > > to some new core clockevents mode setting feature or > > not. > > So this patch was a follow on from bd624d75db21 > ("clockevents: Introduce mode specific callbacks"). > > That patch changes the set_mode() interface; and provides > per mode functions. So why is a 'default' mode needed then? It makes the addition of new modes to the legacy handler easier, which looks backwards. > New (and updated) drivers should not use ->set_mode() > anymore, but it was felt that we do not want to go do > flag day changes. I fully agree that we don't want flag day changes, but make it really apparent that it's an obsolete interface: - rename it to set_mode_obsolete() - try to convert as many of the easy cases as possible - the overwhelming majority of mode setting functions look reasonably simple. - get rid of the mode enum in the core, and rename the mode bits to CLOCK_EVT_MODE_OBSOLETE_XXX. etc. > And it allows for adding optional modes; not every driver > needs to go implement all mode functions if there is a > sane default action. > > But it does mean we need to be able to add values to the > enum. So I'm confused: if we are using proper callbacks (like my example outlined) , why is a 'mode enum' needed at all? Thanks, Ingo