forklock-fix1.patch
| b/sys/vm/vm_fault.c | ||
|---|---|---|
| 1940 | 1940 |
* Allocate a page in the destination object |
| 1941 | 1941 |
*/ |
| 1942 | 1942 |
do {
|
| 1943 |
vm_object_lock(dst_object); |
|
| 1943 | 1944 |
dst_m = vm_page_alloc(dst_object, |
| 1944 | 1945 |
OFF_TO_IDX(dst_offset), |
| 1945 | 1946 |
VM_ALLOC_NORMAL); |
| 1947 |
vm_object_unlock(dst_object); |
|
| 1946 | 1948 |
if (dst_m == NULL) {
|
| 1947 | 1949 |
vm_wait(0); |
| 1948 | 1950 |
} |
| ... | ... | |
| 1953 | 1955 |
* (Because the source is wired down, the page will be in |
| 1954 | 1956 |
* memory.) |
| 1955 | 1957 |
*/ |
| 1958 |
vm_object_lock(src_object); |
|
| 1956 | 1959 |
src_m = vm_page_lookup(src_object, |
| 1957 | 1960 |
OFF_TO_IDX(dst_offset + src_offset)); |
| 1961 |
vm_object_unlock(src_object); |
|
| 1962 | ||
| 1958 | 1963 |
if (src_m == NULL) |
| 1959 | 1964 |
panic("vm_fault_copy_wired: page missing");
|
| 1960 | 1965 | |