|
Lines 112-118
Link Here
|
| 112 |
int nvidia_p2p_get_pages( |
112 |
int nvidia_p2p_get_pages( |
| 113 |
uint64_t p2p_token, |
113 |
uint64_t p2p_token, |
| 114 |
uint32_t va_space, |
114 |
uint32_t va_space, |
| 115 |
uint64_t virtual_address, |
115 |
uint64_t address, |
| 116 |
uint64_t length, |
116 |
uint64_t length, |
| 117 |
struct nvidia_p2p_page_table **page_table, |
117 |
struct nvidia_p2p_page_table **page_table, |
| 118 |
void (*free_callback)(void * data), |
118 |
void (*free_callback)(void * data), |
|
Lines 136-142
Link Here
|
| 136 |
return -ENOMEM; |
136 |
return -ENOMEM; |
| 137 |
|
137 |
|
| 138 |
status = rm_p2p_get_pages(sp, p2p_token, va_space, |
138 |
status = rm_p2p_get_pages(sp, p2p_token, va_space, |
| 139 |
virtual_address, length, &physical_addresses, &wreqmb_h, |
139 |
address, length, &physical_addresses, &wreqmb_h, |
| 140 |
&rreqmb_h, &entries, *page_table, |
140 |
&rreqmb_h, &entries, *page_table, |
| 141 |
free_callback, data); |
141 |
free_callback, data); |
| 142 |
if (status != RM_OK) |
142 |
if (status != RM_OK) |
|
Lines 195-201
Link Here
|
| 195 |
nvidia_p2p_page_t_cache); |
195 |
nvidia_p2p_page_t_cache); |
| 196 |
} |
196 |
} |
| 197 |
|
197 |
|
| 198 |
rm_p2p_put_pages(sp, p2p_token, va_space, virtual_address, |
198 |
rm_p2p_put_pages(sp, p2p_token, va_space, address, |
| 199 |
*page_table); |
199 |
*page_table); |
| 200 |
|
200 |
|
| 201 |
os_free_mem((*page_table)->pages); |
201 |
os_free_mem((*page_table)->pages); |
|
Lines 232-238
Link Here
|
| 232 |
int nvidia_p2p_put_pages( |
232 |
int nvidia_p2p_put_pages( |
| 233 |
uint64_t p2p_token, |
233 |
uint64_t p2p_token, |
| 234 |
uint32_t va_space, |
234 |
uint32_t va_space, |
| 235 |
uint64_t virtual_address, |
235 |
uint64_t address, |
| 236 |
struct nvidia_p2p_page_table *page_table |
236 |
struct nvidia_p2p_page_table *page_table |
| 237 |
) |
237 |
) |
| 238 |
{ |
238 |
{ |
|
Lines 243-249
Link Here
|
| 243 |
if (sp == NULL) |
243 |
if (sp == NULL) |
| 244 |
return -ENOMEM; |
244 |
return -ENOMEM; |
| 245 |
|
245 |
|
| 246 |
status = rm_p2p_put_pages(sp, p2p_token, va_space, virtual_address, |
246 |
status = rm_p2p_put_pages(sp, p2p_token, va_space, address, |
| 247 |
page_table); |
247 |
page_table); |
| 248 |
if (status == RM_OK) |
248 |
if (status == RM_OK) |
| 249 |
nvidia_p2p_free_page_table(page_table); |
249 |
nvidia_p2p_free_page_table(page_table); |