diff options
author | cinap_lenrek <cinap_lenrek@felloff.net> | 2014-07-14 06:02:21 +0200 |
---|---|---|
committer | cinap_lenrek <cinap_lenrek@felloff.net> | 2014-07-14 06:02:21 +0200 |
commit | 655ec332a714d3e5cc6aace798daf832e17e001e (patch) | |
tree | 90234eaf806722bf1fc54b298226128ce50f2b91 /sys/src/9/port/portdat.h | |
parent | e53511ef4c7d4db443543506e74e4de537da5475 (diff) |
devproc: fix proccrlmemio bugs
dont kill the calling process when demand load fails if fixfault()
is called from devproc. this happens when you delete the binary
of a running process and try to debug the process accessing uncached
pages thru /proc/$pid/mem file.
fixes to procctlmemio():
- fix missed unlock as txt2data() can error
- make sure the segment isnt freed by taking a reference (under p->seglock)
- access the page with segment locked (see comment)
- get rid of the segment stealer lock
other stuff:
- move txt2data() and data2txt() to segment.c
- add procpagecount() function
- make return type mcounseg() to ulong
Diffstat (limited to 'sys/src/9/port/portdat.h')
-rw-r--r-- | sys/src/9/port/portdat.h | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/sys/src/9/port/portdat.h b/sys/src/9/port/portdat.h index 58c82c6a8..0afe70ddf 100644 --- a/sys/src/9/port/portdat.h +++ b/sys/src/9/port/portdat.h @@ -389,8 +389,7 @@ struct Segment { Ref; QLock; - ushort steal; /* Page stealer lock */ - ushort type; /* segment type */ + int type; /* segment type */ uintptr base; /* virtual base */ uintptr top; /* virtual top */ ulong size; /* size in pages */ |