diff options
author | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-10-15 11:18:44 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-10-15 11:18:44 -0400 |
commit | 3d06f7a5f74a813cee817c4b30b5e6f0398da0be (patch) | |
tree | 2bba8ab48e9a3d70ee3161306ea47962543df855 /drivers/char/agp/agp.h | |
parent | 13626cb91f41df803c54047172bfc7a716e36c2b (diff) | |
parent | bdc3e603cda3433c2ccc2069d28f7f3cd319cfc6 (diff) |
Merge branch 'agp-patches' of master.kernel.org:/pub/scm/linux/kernel/git/airlied/agp-2.6
* 'agp-patches' of master.kernel.org:/pub/scm/linux/kernel/git/airlied/agp-2.6:
fix use after free in amd create gatt pages
AGP fix race condition between unmapping and freeing pages
Diffstat (limited to 'drivers/char/agp/agp.h')
-rw-r--r-- | drivers/char/agp/agp.h | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/drivers/char/agp/agp.h b/drivers/char/agp/agp.h index 8955e7ff759a..b83824c41329 100644 --- a/drivers/char/agp/agp.h +++ b/drivers/char/agp/agp.h | |||
@@ -58,6 +58,9 @@ struct gatt_mask { | |||
58 | * devices this will probably be ignored */ | 58 | * devices this will probably be ignored */ |
59 | }; | 59 | }; |
60 | 60 | ||
61 | #define AGP_PAGE_DESTROY_UNMAP 1 | ||
62 | #define AGP_PAGE_DESTROY_FREE 2 | ||
63 | |||
61 | struct aper_size_info_8 { | 64 | struct aper_size_info_8 { |
62 | int size; | 65 | int size; |
63 | int num_entries; | 66 | int num_entries; |
@@ -113,7 +116,7 @@ struct agp_bridge_driver { | |||
113 | struct agp_memory *(*alloc_by_type) (size_t, int); | 116 | struct agp_memory *(*alloc_by_type) (size_t, int); |
114 | void (*free_by_type)(struct agp_memory *); | 117 | void (*free_by_type)(struct agp_memory *); |
115 | void *(*agp_alloc_page)(struct agp_bridge_data *); | 118 | void *(*agp_alloc_page)(struct agp_bridge_data *); |
116 | void (*agp_destroy_page)(void *); | 119 | void (*agp_destroy_page)(void *, int flags); |
117 | int (*agp_type_to_mask_type) (struct agp_bridge_data *, int); | 120 | int (*agp_type_to_mask_type) (struct agp_bridge_data *, int); |
118 | }; | 121 | }; |
119 | 122 | ||
@@ -267,7 +270,7 @@ int agp_generic_remove_memory(struct agp_memory *mem, off_t pg_start, int type); | |||
267 | struct agp_memory *agp_generic_alloc_by_type(size_t page_count, int type); | 270 | struct agp_memory *agp_generic_alloc_by_type(size_t page_count, int type); |
268 | void agp_generic_free_by_type(struct agp_memory *curr); | 271 | void agp_generic_free_by_type(struct agp_memory *curr); |
269 | void *agp_generic_alloc_page(struct agp_bridge_data *bridge); | 272 | void *agp_generic_alloc_page(struct agp_bridge_data *bridge); |
270 | void agp_generic_destroy_page(void *addr); | 273 | void agp_generic_destroy_page(void *addr, int flags); |
271 | void agp_free_key(int key); | 274 | void agp_free_key(int key); |
272 | int agp_num_entries(void); | 275 | int agp_num_entries(void); |
273 | u32 agp_collect_device_status(struct agp_bridge_data *bridge, u32 mode, u32 command); | 276 | u32 agp_collect_device_status(struct agp_bridge_data *bridge, u32 mode, u32 command); |