From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1163246AbdDUX2n (ORCPT ); Fri, 21 Apr 2017 19:28:43 -0400 Received: from mail-eopbgr10114.outbound.protection.outlook.com ([40.107.1.114]:20110 "EHLO EUR02-HE1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1163226AbdDUX2j (ORCPT ); Fri, 21 Apr 2017 19:28:39 -0400 Authentication-Results: pengutronix.de; dkim=none (message not signed) header.d=none;pengutronix.de; dmarc=none action=none header.from=axentia.se; Subject: Re: [PATCH v13 03/10] mux: minimal mux subsystem and gpio-based mux controller To: Greg Kroah-Hartman References: <1492101794-13444-1-git-send-email-peda@axentia.se> <1492101794-13444-4-git-send-email-peda@axentia.se> <20170418085156.GA4773@kroah.com> <20170418114430.GA1496@kroah.com> <0f605429-afa2-2818-96d5-5da0bad122d6@axentia.se> CC: , Wolfram Sang , Rob Herring , Mark Rutland , Jonathan Cameron , Hartmut Knaack , Lars-Peter Clausen , Peter Meerwald-Stadler , Jonathan Corbet , , , , , Andrew Morton , Colin Ian King , Paul Gortmaker , Philipp Zabel , From: Peter Rosin Organization: Axentia Technologies AB Message-ID: Date: Sat, 22 Apr 2017 01:28:28 +0200 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:45.0) Gecko/20100101 Thunderbird/45.8.0 MIME-Version: 1.0 In-Reply-To: <0f605429-afa2-2818-96d5-5da0bad122d6@axentia.se> Content-Type: text/plain; charset="windows-1252" Content-Transfer-Encoding: 7bit X-Originating-IP: [81.224.171.159] X-ClientProxiedBy: VI1PR09CA0064.eurprd09.prod.outlook.com (10.174.49.32) To AM5PR0202MB2547.eurprd02.prod.outlook.com (10.173.89.8) X-MS-Office365-Filtering-Correlation-Id: ca46988a-7548-4c54-4ecc-08d4890e20b3 X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001)(201703131423075);SRVR:AM5PR0202MB2547; X-Microsoft-Exchange-Diagnostics: 1;AM5PR0202MB2547;3:Hd/z9y5SeGS3f09k/A7hVKhtFuVb0NHPptG9agpg/p9qgvi5jjR6z/BLzWyMOEAMAI4xCpUB5WwAsITbksV/vWCQUqhd6+6BkkwQAzGcL0U/yEmt3Jfd/qNLy+CSsr2iVgNbfGLKPnL+mZmYP4yJuYwdS8UrTClWTlzgiuBM34yq5kge25CRU7KrclHsMV+K7HNjzLNnaSUZeITW0gsDO9/oHADc+LBuVYExB6SPPATAAhTbw6ErTWyuSTo2rxOt04Be7e6VGHRxXOa8Yf/okMOqo2RnxZmRmCXOANIpdbM=;25:9QPYzI+ILWSQl2XR5tGLbg56c1PFZCDYLW288FBrCbSspmmne3Hge/o9K0Lr/v4aWpRbyFbOeg9LLM2ICmuckf+l/cCmxQUoFtLRYvZ3sAtbDbaEbnS+XfepV8GWrDy7nwkX/QQR1Vh8mTZAMisSa3pCekLfvcZekmLn3R9i/Zo3yLvi2w/CexcOfqC+UU/NvI1WO88NdE++SAP0k4gzKtnPHRXJtXd5IfZmIAQIV61QhrKEyh4s3o7h/4zSq2Da++Zgb/uG6UrylE5iEmpl7QDhLiS/u7qSdi9B/SvRePFSUTjxbjd+vltwSrbMDw4CvJxtpUG6cM/MH1DgfHXWwFN81ctu9ZdYzUwgLz7U2kws6qiejB+y6lCm4aHcLtH1TFXtNaev5ZAPfGpk6LBDp2GblLNBg0nZ3xqTWmSS1Vv7MQQbZFge6ta4kdHAdCN0zdAX6b4AQsLBactqH/PdTQ== X-Microsoft-Exchange-Diagnostics: 1;AM5PR0202MB2547;31:B0hulTwh94ZwFW4/bJ4LfdSnLjmXK/IvWnMsqw41thspe5pVYdH5LCbEhHQY3LEntvPmkdgPLGZ2QMDwlGw40ngKCTvN6wssUATi8U/zJ3aNPzARaWWeBsp5kK3vZXq537xK7RCJxQpXesvD5xvw6+TroEde4CMFCHYzoL/NBh1JXpkTAonr4yOhIryLeWE4yUSr95zUnvh0kdjhl63MCdxPD52tGVhHs6WiWRLWk+M0sC9lXm4zGEpjUrxbRwu1m7YbxzNPXn/4lPCT0o7apmTYZwUY0OpIZ9GipEfjiLg= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6040450)(601004)(2401047)(8121501046)(5005006)(93006095)(93001095)(3002001)(10201501046)(6041248)(20161123564025)(20161123560025)(20161123555025)(20161123562025)(201703131423075)(201702281528075)(201703061421075)(2016111802025)(6043046)(6072148);SRVR:AM5PR0202MB2547;BCL:0;PCL:0;RULEID:;SRVR:AM5PR0202MB2547; X-Microsoft-Exchange-Diagnostics: 1;AM5PR0202MB2547;4:mnGKguk0gXmNazQRJWZkJiEbybVziUp07VQ8ZuKGHOTUBhy5AA1cyLepYICSe+yK3OCKRPhN/lT6bFP7EhfBNqcrCRzVA9WJ2HECxbOtyhjpNMYnLh3Vk8yZpV1ORkPGF0tuqWPKWI9DiSTZIHfNLdtV5yuWCMiBDdl7HPiGAs3QyjikYJ9U6Dme1dzrA7YOQqi4assIhtPVWADOe8+uHNqYEscyVi1AQxU3/kvb3hozQL3LReIyjLuXM9XLTHi/JGhCnUmWTrse8c0mH7sIEpglOn0qf8eN+CgtVs490RXWbNFoIHEQvWa2lXojUDC0jOxbfiJxVE3rY1HOPFpECi/QvlN5Gfos3rQwaDmZCgt6eiHYLRz8NDLADwTdMihP+l0lqnT/NhKe3HSxHVMUVV82Ph94sabQl/weo7kVk+qs6RNysIuZ+OzFLF/BwJyS+b45tUDTY3rb9IBhRGaCmr+Gm0zhjv0+Rx7Hf1dFSR5Sre0T8Rqbx4o96zGvh1vH6hqU3RqT6y3BlD2EiZP0p5LosmR4gj5GOUSG1qC3/fZTVBbPqZjKGgcWVB1LY6dFrL91F8g+S7nXAy4BxtXjABOm/C7koc79j61OW1IULsxZisWu1mR/aTnWt3VctjvNHW6VBmyZbKQlSE/opoNuBF97J0fv+UaowZREmGQ8N7a5oEul/omiT6ubzG9fkaqcOsJT9gtd1xkvyiucHOJhLeree2K/2pawsmmOMWDyUGzzKcU4V1kg3QFKRuji6KJa7vlaB6xpQbobw3kCh6i8hA== X-Forefront-PRVS: 02843AA9E0 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10019020)(4630300001)(6049001)(6009001)(39400400002)(39830400002)(39450400003)(39410400002)(24454002)(377424004)(50466002)(74482002)(93886004)(23746002)(2906002)(77096006)(189998001)(64126003)(81166006)(8676002)(6486002)(90366009)(6666003)(83506001)(54906002)(8666007)(110136004)(38730400002)(36756003)(6246003)(53936002)(33646002)(50986999)(47776003)(230700001)(76176999)(54356999)(31686004)(31696002)(42186005)(86362001)(5660300001)(4001350100001)(305945005)(7416002)(25786009)(53546009)(6916009)(2950100002)(4326008)(117156002)(7736002)(65826007)(66066001)(3846002)(6116002)(42262002);DIR:OUT;SFP:1102;SCL:1;SRVR:AM5PR0202MB2547;H:[192.168.0.125];FPR:;SPF:None;MLV:sfv;LANG:en; X-Microsoft-Exchange-Diagnostics: =?Windows-1252?Q?1;AM5PR0202MB2547;23:KpUFWbrU21gqz9uCpePjn/UEi9P8QajX31X?= =?Windows-1252?Q?R9O5zs6/xuL2B17SGJqyfSqbcvKgHCC6yzLVQc05A1YYadg+Q5myGIHS?= =?Windows-1252?Q?WZbjZbK4c+I+tGlboQ8hTaXNCLeppj4XqcVVb/6cb7nrD19d+ICFBiOF?= =?Windows-1252?Q?yAj5kdEAZZhF+Y/1HOFGOWngiaCzryTL3l+7bo1NuIm3u+OcYT+bzhVD?= =?Windows-1252?Q?NcQMrescEG3Z/lmEjXLRCvONyIsGV/AXfiV7Rt+xNWx9QuReiY8F2G5t?= =?Windows-1252?Q?KZVWW1WAFUpZGoxUFwHfdhlZJ4F71mp+17pKc03yiyyaLD+iImvVVglf?= =?Windows-1252?Q?cP/JJyGK20E2uG6RonCXE9aJ4X7xbTdwmCPottQpotncPclz+CPRxigH?= =?Windows-1252?Q?KpMFvHAUXX9T0yiAxHhTOwPeJGuT8vHdq9N4HKoX3zkFOaXuw8vyj7xT?= =?Windows-1252?Q?brxfeS4xo9CRfcIvwhxzBHEXTngZnwvZ3Xb0QUQj3N1hQltlnELU8vG9?= =?Windows-1252?Q?a/iuqEzkq6IDLr30tRdbXBvskwwSJT/FhTWqx6tYQ0DQysy0ySAhDlet?= =?Windows-1252?Q?DnrJJQZCXC/jSwqm7uCtAerujF5BV+fohwGpxxT6nqnGH4X+MgJbl6+K?= =?Windows-1252?Q?KXiOAxI+z/p4Ch6k4nHUVhuMKNk0PZdTJVlqKn4PujEgUzln7e2z0kgX?= =?Windows-1252?Q?55OQfGpglPJBvxwNJfwDtQAMI2DYfWLWVRb9fdR8ZSbOoFJNHM7X3Qn3?= =?Windows-1252?Q?Nv26gppT7Pye14ykWecYqvZfJhHr4pRzITwPTGD7X9QMS+LV5TG8Ztlm?= =?Windows-1252?Q?wthUvOtNUrcPgK5VOI6LkVd6XKTi5g4Z63xHXUpYfgOtX+E3ffZBOig5?= =?Windows-1252?Q?NUwD1mDDS/a/Z8S7vCVkynuwunc0JDlP+Jt8nW1dDSR7/K5+kUybiGef?= =?Windows-1252?Q?MHHdqPneoDLSTHRQW7yiQ/W3s24/JhCH88XzjdXlQNY3J+uHRIh8liKZ?= =?Windows-1252?Q?lBzy3MFRL3q0qWq1uvozHCM5uMNrohM2PKz2zmLXupk12JX6qmOfbnOu?= =?Windows-1252?Q?ovmXiCZxz1HBd4g3vQ9lbJM1jaCg+TMqkHenq/m1z85PAH0XtYgvWWte?= =?Windows-1252?Q?0eDr8OJTSj8JfIhclqAjeQzwIas0LIit8uSaTfukNfztoigfrZhsrExf?= =?Windows-1252?Q?5QdpVaIWqv0SaD1cq6s0Z9+l41aiZnIzGvjEQeqzV2DnjSe4ENe50V6S?= =?Windows-1252?Q?50ROKSld+EmU7VlUAXvgqS/iPUDvUelLPwWdue/h5XvUW8//tJEmMWlr?= =?Windows-1252?Q?KjhQXOThxrZIj/ALAB0Ra+fJbifi27LuvATiHgOx2JAi0lM/sqoSA55H?= =?Windows-1252?Q?D+k0um9qR+JUVxbTlq819lb662RA4Wo2+N99gcwJbE8R4RgFXFEVSPaM?= =?Windows-1252?Q?0sizb+wgeP/EdDR0vWOWJtib/nPrmM3i1/AsbYvPwLg=3D=3D?= X-Microsoft-Exchange-Diagnostics: 1;AM5PR0202MB2547;6:aLPGKxZiGTMQnXDryoJeVP7VHOpWyjMDyAcgN5GfMCtcJAfMQtDtsCJrxuEmdIQGMhANjG7t7nfRkuznY8jxu1Hi6MisBwsqHWTi9L+hmeS+MhPb5LIErrqNkscE97KAE95nv/StuWhydouK2y6EUEa7/rO3Xn0V9By7s8dNnSe3Vu9cR47h6a147yBe60jlPbTAC7Rlh40CSpKcyvtLToyo8VhpuyFdX5GcNdZdgMiojr+wSRsaJ0+J7CxElapQ3tARF90da4rXYpNd+rH7ENhNeAEBHhBFP0vkCkjUc06CTLIJumuMEpBFINmP7243SuoLZ4aOgWooCU4/mHp0hS4+5Kjd/4lXrilcDl/KcdUJIrmQ9/6GreH9Gjcxdgu/e5+wHp0nnKd/CWOBJAPcR7rrjpeZyxNCI/bf1L3g5FD23EfdLTXOqMsBYUg0Wdxa0Kd2N1+x3ntXj1mZkvjx0hmqHGgUiWsGQ4+2cx2ww0XZyi/NrD73GcLTo5uU1yKDCowviVFg30roCNnFfG/9ug==;5:PCROlV54NepBLDH5Qn/mH+stGrdYIu2VRIW4+e38MXUw2Msz4zAKaz9o2R9ZgRJjVuBKWoZCYznDn6tYfv10yiAKRGMfbJdyKVfCLK01A1vVGjiWwm/t3VRodTw0YoBcbDMAnc58IkvvbHdPMigs9Q==;24:PcdLbVoTPVt4mO1sZgvQyZ1WN+UoRdjAzdcz/QkOG56oU9Kq0dTmPKfyOhCxeHRBLhuEEPWmV8SXuywkKb3Deypx0vzbVl94sA7HdIQaLP8= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;AM5PR0202MB2547;7:XVdvMRNh2dwsj7EPczt7AqR4dtH3XWqi5lpeDFzXSXwMXgZ5jfh17WBpklqu5W3cISwu9/uQq1pKXsUmwlIywU7UndxGmNJzmd2RYQr345NS/TjhI03YqmqAFkHdyi9cpoO+jliuIUgoOjBeAKHy9MSqgF23CDCKGbuHCCiX76Kl3xWahPianW7Tqgy1Jjg+Wnst3hYjltCVuH9btz9524PncAdcFgeKwhowGikxmcOSZOwDE7ISsYyWB9VUL3PnDSI63HlIohja0nDURELEzDWJX8cHUYaPVdT9BWJ7ymN/qibUvqaYGq3tXdD0SBqyRAeeIp6DSnJgFSn4CzpP0A== X-OriginatorOrg: axentia.se X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Apr 2017 23:28:31.5804 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM5PR0202MB2547 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 2017-04-20 23:53, Peter Rosin wrote: > On 2017-04-18 23:53, Peter Rosin wrote: >> On 2017-04-18 13:44, Greg Kroah-Hartman wrote: >>> On Tue, Apr 18, 2017 at 12:59:50PM +0200, Peter Rosin wrote: >>>> On 2017-04-18 10:51, Greg Kroah-Hartman wrote: >>>>> On Thu, Apr 13, 2017 at 06:43:07PM +0200, Peter Rosin wrote: > > *snip* > >>>>>> + if (mux->idle_state != MUX_IDLE_AS_IS && >>>>>> + mux->idle_state != mux->cached_state) >>>>>> + ret = mux_control_set(mux, mux->idle_state); >>>>>> + >>>>>> + up_read(&mux->lock); >>>>> >>>>> You require a lock to be held for a "global" function? Without >>>>> documentation? Or even a sparse marking? That's asking for trouble... >>>> >>>> Documentation I can handle, but where should I look to understand how I >>>> should add sparse markings? >>> >>> Run sparse on the code and see what it says :) >> >> Will do. > > I just did, and even went through the trouble of getting the bleeding > edge sparse from the git repo when sparse 0.5.0 came up empty, but it's > all silence for me. So, how do I add sparse markings? I looked some more into this, and the markings I find that seem related are __acquire() and __release(). But neither mutex_lock() nor up_read() has markings like that, so adding them when using those kinds of locks in an imbalanced way seems like a sure way of *getting* sparse messages about context imbalance... So, either that, or you are talking about __must_check markings? I feel like I'm missing something, please advise further. Cheers, peda From mboxrd@z Thu Jan 1 00:00:00 1970 From: Peter Rosin Subject: Re: [PATCH v13 03/10] mux: minimal mux subsystem and gpio-based mux controller Date: Sat, 22 Apr 2017 01:28:28 +0200 Message-ID: References: <1492101794-13444-1-git-send-email-peda@axentia.se> <1492101794-13444-4-git-send-email-peda@axentia.se> <20170418085156.GA4773@kroah.com> <20170418114430.GA1496@kroah.com> <0f605429-afa2-2818-96d5-5da0bad122d6@axentia.se> Mime-Version: 1.0 Content-Type: text/plain; charset="windows-1252" Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <0f605429-afa2-2818-96d5-5da0bad122d6@axentia.se> Sender: linux-doc-owner@vger.kernel.org To: Greg Kroah-Hartman Cc: linux-kernel@vger.kernel.org, Wolfram Sang , Rob Herring , Mark Rutland , Jonathan Cameron , Hartmut Knaack , Lars-Peter Clausen , Peter Meerwald-Stadler , Jonathan Corbet , linux-i2c@vger.kernel.org, devicetree@vger.kernel.org, linux-iio@vger.kernel.org, linux-doc@vger.kernel.org, Andrew Morton , Colin Ian King , Paul Gortmaker , Philipp Zabel , kernel@pengutronix.de List-Id: devicetree@vger.kernel.org On 2017-04-20 23:53, Peter Rosin wrote: > On 2017-04-18 23:53, Peter Rosin wrote: >> On 2017-04-18 13:44, Greg Kroah-Hartman wrote: >>> On Tue, Apr 18, 2017 at 12:59:50PM +0200, Peter Rosin wrote: >>>> On 2017-04-18 10:51, Greg Kroah-Hartman wrote: >>>>> On Thu, Apr 13, 2017 at 06:43:07PM +0200, Peter Rosin wrote: > > *snip* > >>>>>> + if (mux->idle_state != MUX_IDLE_AS_IS && >>>>>> + mux->idle_state != mux->cached_state) >>>>>> + ret = mux_control_set(mux, mux->idle_state); >>>>>> + >>>>>> + up_read(&mux->lock); >>>>> >>>>> You require a lock to be held for a "global" function? Without >>>>> documentation? Or even a sparse marking? That's asking for trouble... >>>> >>>> Documentation I can handle, but where should I look to understand how I >>>> should add sparse markings? >>> >>> Run sparse on the code and see what it says :) >> >> Will do. > > I just did, and even went through the trouble of getting the bleeding > edge sparse from the git repo when sparse 0.5.0 came up empty, but it's > all silence for me. So, how do I add sparse markings? I looked some more into this, and the markings I find that seem related are __acquire() and __release(). But neither mutex_lock() nor up_read() has markings like that, so adding them when using those kinds of locks in an imbalanced way seems like a sure way of *getting* sparse messages about context imbalance... So, either that, or you are talking about __must_check markings? I feel like I'm missing something, please advise further. Cheers, peda