| 1593 | } |
| 1594 | |
| 1595 | static void |
| 1596 | pipe_free_kmem(struct pipe *cpipe) |
| 1597 | { |
| 1598 | |
| 1599 | KASSERT(!mtx_owned(PIPE_MTX(cpipe)), |
| 1600 | ("pipe_free_kmem: pipe mutex locked")); |
| 1601 | |
| 1602 | if (cpipe->pipe_buffer.buffer != NULL) { |
| 1603 | atomic_subtract_long(&amountpipekva, cpipe->pipe_buffer.size); |
| 1604 | vm_map_remove(pipe_map, |
| 1605 | (vm_offset_t)cpipe->pipe_buffer.buffer, |
| 1606 | (vm_offset_t)cpipe->pipe_buffer.buffer + cpipe->pipe_buffer.size); |
| 1607 | cpipe->pipe_buffer.buffer = NULL; |
| 1608 | } |
| 1609 | #ifndef PIPE_NODIRECT |
| 1610 | { |
| 1611 | cpipe->pipe_pages.cnt = 0; |
| 1612 | cpipe->pipe_pages.pos = 0; |
| 1613 | cpipe->pipe_pages.npages = 0; |
| 1614 | } |
| 1615 | #endif |
| 1616 | } |
| 1617 | |
| 1618 | /* |
| 1619 | * shutdown the pipe |
no test coverage detected