Skip to contentSkip to conversation

pasemi_mac: mac_to_intf() error not noticed

PATCH In review Roel Kluin 3 participants 5 messages Apr 23, 2009 – Apr 27, 2009

Subsystems (3)
lore
Share & tools
lore

Roel Kluin

author
#0 lore raw

PATCH 1/1 pasemi_mac: mac_to_intf() error not noticed

mac_to_intf() can return -1 when no device or function was found, but when mac->dma_if is unsigned. The error wasn't noticed.

---

drivers/net/pasemi_mac.c +3 -2
index 5eeb5a8..1857974 100644
@@ -1798,12 +1798,13 @@ pasemi_mac_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
 	}
 	memcpy(dev->dev_addr, mac->mac_addr, sizeof(mac->mac_addr));
 
-	mac->dma_if = mac_to_intf(mac);
-	if (mac->dma_if < 0) {
+	err = mac_to_intf(mac);
+	if (err < 0) {
 		dev_err(&mac->pdev->dev, "Can't map DMA interface\n");
 		err = -ENODEV;
 		goto out;
 	}
+	mac->dma_if = err;
 
 	switch (pdev->device) {
 	case 0xa005:
#1 lore raw
Quoted 2 lines · Roel Kluin

mac_to_intf() can return -1 when no device or function was found, but when mac->dma_if is unsigned. The error wasn't noticed.

This can in practice never happen which is likely why it went unnoticed.

I object to the usage of err in the way you use it, it's completely counterintuitive to name a variable that will hold valid data to 'err'.

So, define a new variable with an appropriate name, please.

-Olof

author
#2 lore raw
Quoted 5 lines · Olof Johansson

On Thu, Apr 23, 2009 at 07:44:09PM +0200, Roel Kluin wrote:
This can in practice never happen which is likely why it went unnoticed.

define a new variable with an appropriate name, please.

Ok, how's this? --------------------------->8-------------8<------------------------------ mac_to_intf() can return -1 when no device or function is found, but when mac->dma_if is unsigned. The error wasn't noticed.

---

drivers/net/pasemi_mac.c +4 -3
index 5eeb5a8..1e8f396 100644
@@ -1740,7 +1740,7 @@ pasemi_mac_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
 {
 	struct net_device *dev;
 	struct pasemi_mac *mac;
-	int err;
+	int err, ret;
 
 	err = pci_enable_device(pdev);
 	if (err)
@@ -1798,12 +1798,13 @@ pasemi_mac_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
 	}
 	memcpy(dev->dev_addr, mac->mac_addr, sizeof(mac->mac_addr));
 
-	mac->dma_if = mac_to_intf(mac);
-	if (mac->dma_if < 0) {
+	ret = mac_to_intf(mac);
+	if (ret < 0) {
 		dev_err(&mac->pdev->dev, "Can't map DMA interface\n");
 		err = -ENODEV;
 		goto out;
 	}
+	mac->dma_if = ret;
 
 	switch (pdev->device) {
 	case 0xa005:
#3 lore raw
Quoted 8 lines · Roel Kluin
Quoted 5 lines · Olof Johansson

On Thu, Apr 23, 2009 at 07:44:09PM +0200, Roel Kluin wrote:
This can in practice never happen which is likely why it went unnoticed.

define a new variable with an appropriate name, please.

Ok, how's this?

Good, but you might have to repost without the email trail above the patch description. Normally putting it under the signed-off-by line with three dashes between will make sure it doesn't get picked up by the git tools.

Anyway, that's all up to Dave, if you end up reposting feel free to add:

Quoted 5 lines

--------------------------->8-------------8<------------------------------ mac_to_intf() can return -1 when no device or function is found, but when mac->dma_if is unsigned. The error wasn't noticed.