On Mon, 26 Mar 2012, ron minnich wrote:
This file:static unsigned long i915_stolen_to_phys(struct drm_device *dev, u32 offset) { struct drm_i915_private *dev_priv = dev->dev_private; struct pci_dev *pdev = dev_priv->bridge_dev; u32 base; #if 0 /* On the machines I have tested the Graphics Base of Stolen Memory * is unreliable, so compute the base by subtracting the stolen memory * from the Top of Low Usable DRAM which is where the BIOS places * the graphics stolen memory. */ if (INTEL_INFO(dev)->gen > 3 || IS_G33(dev)) { /* top 32bits are reserved = 0 */ pci_read_config_dword(pdev, 0xA4, &base); } else { /* XXX presume 8xx is the same as i915 */ pci_bus_read_config_dword(pdev->bus, 2, 0x5C, &base); } #else if (INTEL_INFO(dev)->gen > 3 || IS_G33(dev)) { u16 val; pci_read_config_word(pdev, 0xb0, &val); base = val >> 4 << 20; } else { u8 val; pci_read_config_byte(pdev, 0x9c, &val); base = val >> 3 << 27; } base -= dev_priv->mm.gtt->stolen_size; #endif return base + offset; } Wit this patch: @@ @@ -i915_stolen_to_phys(...){...} yields this: --- x.c +++ /tmp/cocci-output-12465-bccf72-x.c @@ -1,8 +1,4 @@ -static unsigned long i915_stolen_to_phys(struct drm_device *dev, u32 offset) -{ - struct drm_i915_private *dev_priv = dev->dev_private; - struct pci_dev *pdev = dev_priv->bridge_dev; - u32 base; + #if 0 /* On the machines I have tested the Graphics Base of Stolen Memory @@ -18,17 +14,4 @@ static unsigned long i915_stolen_to_phys pci_bus_read_config_dword(pdev->bus, 2, 0x5C, &base); } #else - if (INTEL_INFO(dev)->gen > 3 || IS_G33(dev)) { - u16 val; - pci_read_config_word(pdev, 0xb0, &val); - base = val >> 4 << 20; - } else { - u8 val; - pci_read_config_byte(pdev, 0x9c, &val); - base = val >> 3 << 27; - } - base -= dev_priv->mm.gtt->stolen_size; -#endif - return base + offset; -} which is unexpected :-)
Indeed. In the short term, try the argument --noif0-passing. The skipping of if0s does not seem to take into account that there might be an else.
julia _______________________________________________ Cocci mailing list [email protected] http://lists.diku.dk/mailman/listinfo/cocci (Web access from inside DIKUs LAN only)
