backend.c (c58310bf4933986513020fa90b4190c7492995ae) | backend.c (da503fa60b84d5945deb3ab74efdd0bec61df4a1) |
---|---|
1/* 2 * AGPGART driver backend routines. 3 * Copyright (C) 2004 Silicon Graphics, Inc. 4 * Copyright (C) 2002-2003 Dave Jones. 5 * Copyright (C) 1999 Jeff Hartmann. 6 * Copyright (C) 1999 Precision Insight, Inc. 7 * Copyright (C) 1999 Xi Graphics, Inc. 8 * --- 174 unchanged lines hidden (view full) --- 183 rc = -EINVAL; 184 goto err_out; 185 } 186 187 return 0; 188 189err_out: 190 if (bridge->driver->needs_scratch_page) { | 1/* 2 * AGPGART driver backend routines. 3 * Copyright (C) 2004 Silicon Graphics, Inc. 4 * Copyright (C) 2002-2003 Dave Jones. 5 * Copyright (C) 1999 Jeff Hartmann. 6 * Copyright (C) 1999 Precision Insight, Inc. 7 * Copyright (C) 1999 Xi Graphics, Inc. 8 * --- 174 unchanged lines hidden (view full) --- 183 rc = -EINVAL; 184 goto err_out; 185 } 186 187 return 0; 188 189err_out: 190 if (bridge->driver->needs_scratch_page) { |
191 bridge->driver->agp_destroy_page(gart_to_virt(bridge->scratch_page_real), 192 AGP_PAGE_DESTROY_UNMAP); 193 bridge->driver->agp_destroy_page(gart_to_virt(bridge->scratch_page_real), 194 AGP_PAGE_DESTROY_FREE); | 191 void *va = gart_to_virt(bridge->scratch_page_real); 192 193 bridge->driver->agp_destroy_page(va, AGP_PAGE_DESTROY_UNMAP); 194 bridge->driver->agp_destroy_page(va, AGP_PAGE_DESTROY_FREE); |
195 } 196 if (got_gatt) 197 bridge->driver->free_gatt_table(bridge); 198 if (got_keylist) { 199 vfree(bridge->key_list); 200 bridge->key_list = NULL; 201 } 202 return rc; --- 7 unchanged lines hidden (view full) --- 210 if (bridge->driver->free_gatt_table) 211 bridge->driver->free_gatt_table(bridge); 212 213 vfree(bridge->key_list); 214 bridge->key_list = NULL; 215 216 if (bridge->driver->agp_destroy_page && 217 bridge->driver->needs_scratch_page) { | 195 } 196 if (got_gatt) 197 bridge->driver->free_gatt_table(bridge); 198 if (got_keylist) { 199 vfree(bridge->key_list); 200 bridge->key_list = NULL; 201 } 202 return rc; --- 7 unchanged lines hidden (view full) --- 210 if (bridge->driver->free_gatt_table) 211 bridge->driver->free_gatt_table(bridge); 212 213 vfree(bridge->key_list); 214 bridge->key_list = NULL; 215 216 if (bridge->driver->agp_destroy_page && 217 bridge->driver->needs_scratch_page) { |
218 bridge->driver->agp_destroy_page(gart_to_virt(bridge->scratch_page_real), 219 AGP_PAGE_DESTROY_UNMAP); 220 bridge->driver->agp_destroy_page(gart_to_virt(bridge->scratch_page_real), 221 AGP_PAGE_DESTROY_FREE); | 218 void *va = gart_to_virt(bridge->scratch_page_real); 219 220 bridge->driver->agp_destroy_page(va, AGP_PAGE_DESTROY_UNMAP); 221 bridge->driver->agp_destroy_page(va, AGP_PAGE_DESTROY_FREE); |
222 } 223} 224 225/* When we remove the global variable agp_bridge from all drivers 226 * then agp_alloc_bridge and agp_generic_find_bridge need to be updated 227 */ 228 229struct agp_bridge_data *agp_alloc_bridge(void) --- 124 unchanged lines hidden --- | 222 } 223} 224 225/* When we remove the global variable agp_bridge from all drivers 226 * then agp_alloc_bridge and agp_generic_find_bridge need to be updated 227 */ 228 229struct agp_bridge_data *agp_alloc_bridge(void) --- 124 unchanged lines hidden --- |