lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:	Thu, 5 Nov 2009 11:11:56 +0530
From:	"Kumar Gopalpet-B05799" <B05799@...escale.com>
To:	"Kumar Gopalpet-B05799" <B05799@...escale.com>,
	"Anton Vorontsov" <avorontsov@...mvista.com>
Cc:	"Fleming Andy-AFLEMING" <afleming@...escale.com>,
	<netdev@...r.kernel.org>, <linuxppc-dev@...abs.org>,
	"David Miller" <davem@...emloft.net>
Subject: RE: [PATCH 1/3] fsl_pq_mdio: Fix compiler/sparse warnings (part 1)

 

>-----Original Message-----
>From: Kumar Gopalpet-B05799 
>Sent: Thursday, November 05, 2009 10:31 AM
>To: 'Anton Vorontsov'
>Cc: Fleming Andy-AFLEMING; netdev@...r.kernel.org; 
>linuxppc-dev@...abs.org; David Miller
>Subject: RE: [PATCH 1/3] fsl_pq_mdio: Fix compiler/sparse 
>warnings (part 1)
>
> 
>
>>-----Original Message-----
>>From: Anton Vorontsov [mailto:avorontsov@...mvista.com]
>>Sent: Thursday, November 05, 2009 4:23 AM
>>To: David Miller
>>Cc: Fleming Andy-AFLEMING; Kumar Gopalpet-B05799; 
>>netdev@...r.kernel.org; linuxppc-dev@...abs.org
>>Subject: [PATCH 1/3] fsl_pq_mdio: Fix compiler/sparse 
>warnings (part 1)
>>
>>commit 1d2397d742b7a2b39b2f09dd9da3b9d1463f55e9 ("fsl_pq_mdio: 
>>Add Suport for etsec2.0 devices") introduced the following warnings:
>>
>>  CHECK   fsl_pq_mdio.c
>>fsl_pq_mdio.c:287:22: warning: incorrect type in initializer 
>(different 
>>base types)
>>fsl_pq_mdio.c:287:22:    expected unknown type 11 const *__mptr
>>fsl_pq_mdio.c:287:22:    got unsigned long long [unsigned] 
>>[assigned] [usertype] addr
>>fsl_pq_mdio.c:287:19: warning: incorrect type in assignment 
>(different 
>>base types)
>>fsl_pq_mdio.c:287:19:    expected unsigned long long 
>>[unsigned] [usertype] ioremap_miimcfg
>>fsl_pq_mdio.c:287:19:    got struct fsl_pq_mdio *<noident>
>>  CC      fsl_pq_mdio.o
>>fsl_pq_mdio.c: In function 'fsl_pq_mdio_probe':
>>fsl_pq_mdio.c:287: warning: initialization makes pointer from integer 
>>without a cast
>>fsl_pq_mdio.c:287: warning: assignment makes integer from pointer 
>>without a cast
>>
>>These warnings are not easy to fix without ugly __force casts. 
>>So, instead of introducing the casts, rework the code to 
>substitute an 
>>offset from an already mapped area. This makes the code a lot simpler 
>>and less duplicated.
>>
>>Plus, from now on we don't actually map reserved registers on 
>>non-etsec2.0 devices, so we have more chances to catch programming 
>>errors.
>>
>>Signed-off-by: Anton Vorontsov <avorontsov@...mvista.com>
>>---
>> drivers/net/fsl_pq_mdio.c |   31 ++++++++++++-------------------
>> 1 files changed, 12 insertions(+), 19 deletions(-)
>>
>>diff --git a/drivers/net/fsl_pq_mdio.c b/drivers/net/fsl_pq_mdio.c 
>>index 4065b7c..fb8c8d9 100644
>>--- a/drivers/net/fsl_pq_mdio.c
>>+++ b/drivers/net/fsl_pq_mdio.c
>>@@ -262,10 +262,11 @@ static int fsl_pq_mdio_probe(struct of_device 
>>*ofdev,
>> 	struct device_node *np = ofdev->node;
>> 	struct device_node *tbi;
>> 	struct fsl_pq_mdio __iomem *regs = NULL;
>>+	void __iomem *map;
>> 	u32 __iomem *tbipa;
>> 	struct mii_bus *new_bus;
>> 	int tbiaddr = -1;
>>-	u64 addr = 0, size = 0, ioremap_miimcfg = 0;
>>+	u64 addr = 0, size = 0;
>> 	int err = 0;
>> 
>> 	new_bus = mdiobus_alloc();
>>@@ -279,28 +280,20 @@ static int fsl_pq_mdio_probe(struct of_device 
>>*ofdev,
>> 	fsl_pq_mdio_bus_name(new_bus->id, np);
>> 
>> 	/* Set the PHY base address */
>>-	if (of_device_is_compatible(np,"fsl,gianfar-mdio") ||
>>-		of_device_is_compatible(np, "fsl,gianfar-tbi") ||
>>-		of_device_is_compatible(np, "fsl,ucc-mdio") ||
>>-		of_device_is_compatible(np,"ucc_geth_phy" )) {
>>-		addr = of_translate_address(np, 
>>of_get_address(np, 0, &size, NULL));
>>-		ioremap_miimcfg =  container_of(addr, struct 
>>fsl_pq_mdio, miimcfg);
>>-		regs = ioremap(ioremap_miimcfg, size +
>>-				offsetof(struct fsl_pq_mdio, miimcfg));
>>-	} else if (of_device_is_compatible(np,"fsl,etsec2-mdio") ||
>>-			of_device_is_compatible(np, "fsl,etsec2-tbi")) {
>>-		addr = of_translate_address(np, 
>>of_get_address(np, 0, &size, NULL));
>>-		regs = ioremap(addr, size);
>>-	} else {
>>-		err = -EINVAL;
>>-		goto err_free_bus;
>>-	}
>>-
>>-	if (NULL == regs) {
>>+	addr = of_translate_address(np, of_get_address(np, 0,
>>&size, NULL));
>>+	map = ioremap(addr, size);
>>+	if (!map) {
>> 		err = -ENOMEM;
>> 		goto err_free_bus;
>> 	}
>> 
>>+	if (of_device_is_compatible(np, "fsl,gianfar-mdio") ||
>>+			of_device_is_compatible(np,
>>"fsl,gianfar-tbi") ||
>>+			of_device_is_compatible(np, "fsl,ucc-mdio") ||
>>+			of_device_is_compatible(np, "ucc_geth_phy"))
>>+		map -= offsetof(struct fsl_pq_mdio, miimcfg);
>>+	regs = map;
>>+
>> 	new_bus->priv = (void __force *)regs;
>> 
>> 	new_bus->irq = kcalloc(PHY_MAX_ADDR, sizeof(int), GFP_KERNEL);
>>--
>
>HI Anton, thanks for the changes. I have only one concern, has 
>this code been tried for ucc_geth ? I remember I had some 
>issues with getting the ucc_geth mdio also working. I will 
>take in these changes and try at my end for ucc_geth.

Sorry, if my earlier statement was confusing. What I meant was with
similar changes as Anton's changes
I had some issues with ucc_geth mdio ( may be Anton's changes don't have
that issue).


--

Thanks
Sandeep
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ