Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 24 Jul 2013 00:29:39 +0200
From:      Ulrich =?utf-8?B?U3DDtnJsZWlu?= <uqs@FreeBSD.org>
To:        "Justin T. Gibbs" <gibbs@FreeBSD.org>
Cc:        scsi@freebsd.org
Subject:   Re: Please review patch for aic7xxx_pci.c
Message-ID:  <20130723222939.GH9030@acme.spoerlein.net>
In-Reply-To: <DB1AD5E3-8108-46EF-AEC0-195AEEF7FCEC@FreeBSD.org>
References:  <20130716094927.GA9030@acme.spoerlein.net> <20130723071129.GD9030@acme.spoerlein.net> <FBF11F26-4083-4F7C-AEC6-054E369A1A25@FreeBSD.org> <20130723204530.GE9030@acme.spoerlein.net> <86E509ED-694D-49B0-A3D9-C9C7B71F67CE@FreeBSD.org> <20130723214126.GG9030@acme.spoerlein.net> <DB1AD5E3-8108-46EF-AEC0-195AEEF7FCEC@FreeBSD.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Tue, 2013-07-23 at 16:04:04 -0600, Justin T. Gibbs wrote:
> On Jul 23, 2013, at 3:41 PM, Ulrich Spörlein <uqs@freebsd.org> wrote:
> 
> > On Tue, 2013-07-23 at 15:15:53 -0600, Justin T. Gibbs wrote:
> >> On Jul 23, 2013, at 2:45 PM, Ulrich Spörlein <uqs@freebsd.org> wrote:
> >> 
> >>> Thanks, but maybe it's better to have the discussion here.
> >>> 
> >>> You wrote:
> >>> The difference in the argument order between the declaration and definition is
> >>> likely what led to this programming error. Your patch should also correct the
> >>> argument reversal in the declaration of ahc_9005_subdevinfo_valid().
> >>> 
> >>> The argument order you've used seems the best choice since it matches what is
> >>> used in ahc_compose_id().
> >>> 
> >>> 
> >>> 
> >>> I'm not sure that reversing the arguments in the function definition is
> >>> the right way. This would make the patch a no-op.
> >> 
> >> Read the quote again.  I said change the "declaration", not the
> >> "definition".  To be extremely clear, the code currently looks like
> >> this:
> > 
> > D'oh, that's what I get for reading too fast. I've opted to change the
> > function definition, in the end, so that declaration, definition and
> > call-site are in sync, see
> > https://github.com/uqs/freebsd-head/commit/e699b2fde01f235a22e1125e9f3aef16623b512f
> > 
> > Thanks!
> > Uli
> 
> But now the order of the arguments does not match ahc_compose_id().
> 
> It seems to me that we want to only have a single convention in how this
> data is passed to functions.

Ok, back to the first variant then.


commit 1afbac36d5a735b91dfb673abad9635b882d9b4d
Author: Ulrich Spörlein <uqs@FreeBSD.org>
Date:   Tue Jul 16 11:37:17 2013 +0200

    Match function definition to declaration and call-site.
    
    SVN r95378 refactored ahc_9005_subdevinfo_valid out into a separate
    function but swapped the vendor/subvendor and device/subdevice pairs of
    the parameters.
    
    Found by:	Coverity Prevent, CID 744931
    Reviewed by:	gibbs

diff --git a/sys/dev/aic7xxx/aic7xxx_pci.c b/sys/dev/aic7xxx/aic7xxx_pci.c
index 2bf4927..73df372 100644
--- a/sys/dev/aic7xxx/aic7xxx_pci.c
+++ b/sys/dev/aic7xxx/aic7xxx_pci.c
@@ -673,8 +673,8 @@ const u_int ahc_num_pci_devs = NUM_ELEMENTS(ahc_pci_ident_table);
 #define STA	0x08
 #define DPR	0x01
 
-static int ahc_9005_subdevinfo_valid(uint16_t vendor, uint16_t device,
-				     uint16_t subvendor, uint16_t subdevice);
+static int ahc_9005_subdevinfo_valid(uint16_t device, uint16_t vendor,
+				     uint16_t subdevice, uint16_t subvendor);
 static int ahc_ext_scbram_present(struct ahc_softc *ahc);
 static void ahc_scbram_config(struct ahc_softc *ahc, int enable,
 				  int pcheck, int fast, int large);
@@ -766,7 +766,7 @@ ahc_find_pci_device(aic_dev_softc_t pci)
 	 * ID as valid.
 	 */
 	if (aic_get_pci_function(pci) > 0
-	 && ahc_9005_subdevinfo_valid(vendor, device, subvendor, subdevice)
+	 && ahc_9005_subdevinfo_valid(device, vendor, subdevice, subvendor)
 	 && SUBID_9005_MFUNCENB(subdevice) == 0)
 		return (NULL);
 



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20130723222939.GH9030>