Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1031193AbbEEUXk (ORCPT ); Tue, 5 May 2015 16:23:40 -0400 Received: from mail-by2on0137.outbound.protection.outlook.com ([207.46.100.137]:21088 "EHLO na01-by2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1031176AbbEEUXi (ORCPT ); Tue, 5 May 2015 16:23:38 -0400 From: Jose Rivera To: Scott Wood , Dan Carpenter CC: "devel@driverdev.osuosl.org" , Stuart Yoder , "bhamciu1@freescale.com" , "arnd@arndb.de" , "bhupesh.sharma@freescale.com" , "gregkh@linuxfoundation.org" , "linux-kernel@vger.kernel.org" , "agraf@suse.de" , "nir.erez@freescale.com" , "itai.katz@freescale.com" , "R89243@freescale.com" , Richard Schmitt Subject: RE: [PATCH 1/7] staging: fsl-mc: MC bus IRQ support Thread-Topic: [PATCH 1/7] staging: fsl-mc: MC bus IRQ support Thread-Index: AQHQgdtcWmwch7II+U+VbnIIkniD+51lc9iAgAbl/LCAAML6AIAAYJLAgAAjN4CAADbngIAABPqg Date: Tue, 5 May 2015 20:22:49 +0000 Message-ID: References: <1430242750-17745-1-git-send-email-German.Rivera@freescale.com> <1430242750-17745-2-git-send-email-German.Rivera@freescale.com> <20150430114957.GW14154@mwanda> <20150505084830.GL16501@mwanda> <20150505164011.GT14154@mwanda> <1430855801.16357.251.camel@freescale.com> In-Reply-To: <1430855801.16357.251.camel@freescale.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: freescale.com; dkim=none (message not signed) header.d=none; x-originating-ip: [192.88.168.49] x-microsoft-antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:DM2PR0301MB1247; x-microsoft-antispam-prvs: x-exchange-antispam-report-test: UriScan:; x-exchange-antispam-report-cfa-test: BCL:0;PCL:0;RULEID:(601004)(5005006)(3002001);SRVR:DM2PR0301MB1247;BCL:0;PCL:0;RULEID:;SRVR:DM2PR0301MB1247; x-forefront-prvs: 0567A15835 x-forefront-antispam-report: SFV:NSPM;SFS:(10019020)(6009001)(164054003)(52314003)(24454002)(51704005)(377454003)(377424004)(13464003)(2656002)(87936001)(77156002)(62966003)(92566002)(40100003)(2950100001)(99286002)(19580395003)(19580405001)(86362001)(122556002)(46102003)(2900100001)(76176999)(54356999)(50986999)(74316001)(5001770100001)(106116001)(33656002)(76576001)(66066001)(93886004)(102836002)(5001960100002)(107886002)(4001430100001);DIR:OUT;SFP:1102;SCL:1;SRVR:DM2PR0301MB1247;H:DM2PR0301MB1309.namprd03.prod.outlook.com;FPR:;SPF:None;MLV:sfv;LANG:en; Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 X-OriginatorOrg: freescale.com X-MS-Exchange-CrossTenant-originalarrivaltime: 05 May 2015 20:22:49.8767 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 710a03f5-10f6-4d38-9ff4-a80b81da590d X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM2PR0301MB1247 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 nfs id t45KNjSQ006688 Content-Length: 3180 Lines: 74 > -----Original Message----- > From: Wood Scott-B07421 > Sent: Tuesday, May 05, 2015 2:57 PM > To: Dan Carpenter > Cc: Rivera Jose-B46482; devel@driverdev.osuosl.org; Yoder Stuart-B08248; > Hamciuc Bogdan-BHAMCIU1; arnd@arndb.de; Sharma Bhupesh-B45370; > gregkh@linuxfoundation.org; linux-kernel@vger.kernel.org; agraf@suse.de; > Erez Nir-RM30794; katz Itai-RM05202; Marginean Alexandru-R89243; Schmitt > Richard-B43082 > Subject: Re: [PATCH 1/7] staging: fsl-mc: MC bus IRQ support > > On Tue, 2015-05-05 at 19:40 +0300, Dan Carpenter wrote: > > On Tue, May 05, 2015 at 04:08:49PM +0000, Jose Rivera wrote: > > > > Subject: Re: [PATCH 1/7] staging: fsl-mc: MC bus IRQ support > > > > > > > > On Mon, May 04, 2015 at 10:09:08PM +0000, Jose Rivera wrote: > > > > > > > + WARN_ON((int16_t)irq_count < 0); > > > > > > > > > > > > This code is doing "WARN_ON(test_bit(15, (unsigned long > > > > *)&irq_count));". > > > > > > That seems like nonsense. Anyway, just delete the WARN_ON(). > > > > > > > > > > > I disagree. This WARN_ON is checking that irq_count is in the > > > > > expected range (it fits in int16_t as a positive number). The > > > > > dprc_scan_objects() function expects irq_count to be of type > > > > > "unsigned int" (which is 32-bit unsigned) > > > > > > > > > > > > > You're not allowed to disagree because it's a testable thing and > > > > not an opinion about style or something. :P What you want is: > > > > > > > > WARN_ON(irq_count > SHRT_MAX); > > > > > > > I see your point now. The check "(int16_t)irq_count < 0)" will not > > > be able to catch 0x10000 > 0x7fff, but "irq_count > SHRT_MAX) will. > > > So I'll make the suggested change, but I would prefer to use S16_MAX > > > rather than SHRT_MAX. > > > > > > > Huh? I didn't even know about the S16_MAX definition. There are > > literally no users of it in the kernel. It's not very fair because > > there are few users of SHRT_MAX. But there are literally no users of > > S32_MAX in the kernel and 358 users of INT_MAX. > > > > Don't insist that you must be special and different from everyone else. > > There are some users of U16_MAX, U32_MAX, and U64_MAX. Why use a limit > for a different type than is being used? Why have s16/s32 at all if > you're going to conflate it with short/int elsewhere? > > That said, I don't see where this code is actually using s16 (or > int16_t) for irq_count except in these weird error checks. German, why > do you need to check against 0x7fff (whatever you call it) at all? > Won't comparing to a promoted-to-unsigned-int .max_count (as you do > immediately after the WARN_ON) suffice? > mc_bus->resource_pools[FSL_MC_POOL_IRQ].max_count is of type int16_t (and is so, because its value comes from an MC API that returns an int16_t). The reason for checking irq_count against 0x7ffff is to catch the case in which irq_count is out of range (irq_count originates from values coming from the MC device, so we should do some validation before using it) Thanks, German > -Scott > ????{.n?+???????+%?????ݶ??w??{.n?+????{??G?????{ay?ʇڙ?,j??f???h?????????z_??(?階?ݢj"???m??????G????????????&???~???iO???z??v?^?m???? ????????I?