Fix lnx_pci.c's xf86GetOSOffsetFromPCI return value. Clears up the resource
ranges awkwardness and the "INVALID MEM ALLOCATION" warning.
This commit is contained in:
		
							parent
							
								
									da989e988c
								
							
						
					
					
						commit
						9f3ad65251
					
				| 
						 | 
					@ -166,7 +166,7 @@ xf86GetOSOffsetFromPCI(PCITAG tag, int space, unsigned long base)
 | 
				
			||||||
    unsigned int ndx;
 | 
					    unsigned int ndx;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if (!(file = fopen("/proc/bus/pci/devices","r")))
 | 
					    if (!(file = fopen("/proc/bus/pci/devices","r")))
 | 
				
			||||||
        return NULL;
 | 
					        return 0;
 | 
				
			||||||
    do {
 | 
					    do {
 | 
				
			||||||
        res = fgets(c,0x1ff,file);
 | 
					        res = fgets(c,0x1ff,file);
 | 
				
			||||||
        if (res) {
 | 
					        if (res) {
 | 
				
			||||||
| 
						 | 
					@ -194,7 +194,7 @@ xf86GetOSOffsetFromPCI(PCITAG tag, int space, unsigned long base)
 | 
				
			||||||
		         &size[3], &size[4], &size[5], &size[6]);
 | 
							         &size[3], &size[4], &size[5], &size[6]);
 | 
				
			||||||
            if (num != 16) {  /* apparantly not 2.3 style */
 | 
					            if (num != 16) {  /* apparantly not 2.3 style */
 | 
				
			||||||
                fclose(file);
 | 
					                fclose(file);
 | 
				
			||||||
                return NULL;
 | 
					                return 0;
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            dev = devfn >> 3;
 | 
					            dev = devfn >> 3;
 | 
				
			||||||
| 
						 | 
					@ -213,10 +213,11 @@ xf86GetOSOffsetFromPCI(PCITAG tag, int space, unsigned long base)
 | 
				
			||||||
		    else /* this the ROM bar */
 | 
							    else /* this the ROM bar */
 | 
				
			||||||
			savePtr = (0xFFFFFFF0) & 
 | 
								savePtr = (0xFFFFFFF0) & 
 | 
				
			||||||
			    pciReadLong(tag, PCI_CMD_BASE_REG + (0x4 * ndx));
 | 
								    pciReadLong(tag, PCI_CMD_BASE_REG + (0x4 * ndx));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                    /* find the index of the incoming base */
 | 
					                    /* find the index of the incoming base */
 | 
				
			||||||
                    if (base >= savePtr && base <= (savePtr + size[ndx])) {
 | 
					                    if (base >= savePtr && base <= (savePtr + size[ndx])) {
 | 
				
			||||||
                        fclose(file);
 | 
					                        fclose(file);
 | 
				
			||||||
                        return ( ~(0xFUL) & (offset[ndx] + (base - savePtr)));
 | 
					                        return (offset[ndx] & ~(0xFUL)) + (base - savePtr);
 | 
				
			||||||
                    }
 | 
					                    }
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
| 
						 | 
					@ -224,6 +225,6 @@ xf86GetOSOffsetFromPCI(PCITAG tag, int space, unsigned long base)
 | 
				
			||||||
    } while (res);
 | 
					    } while (res);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    fclose(file);
 | 
					    fclose(file);
 | 
				
			||||||
    return NULL;
 | 
					    return 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue