|
@@ -26,6 +26,7 @@
|
|
|
#include <linux/init.h>
|
|
|
#include <linux/bootmem.h>
|
|
|
#include <linux/hash.h>
|
|
|
+#include <linux/pspace.h>
|
|
|
|
|
|
#define pid_hashfn(nr) hash_long((unsigned long)nr, pidhash_shift)
|
|
|
static struct hlist_head *pid_hash;
|
|
@@ -40,7 +41,6 @@ int last_pid;
|
|
|
int pid_max_min = RESERVED_PIDS + 1;
|
|
|
int pid_max_max = PID_MAX_LIMIT;
|
|
|
|
|
|
-#define PIDMAP_ENTRIES ((PID_MAX_LIMIT + 8*PAGE_SIZE - 1)/PAGE_SIZE/8)
|
|
|
#define BITS_PER_PAGE (PAGE_SIZE*8)
|
|
|
#define BITS_PER_PAGE_MASK (BITS_PER_PAGE-1)
|
|
|
#define mk_pid(map, off) (((map) - pidmap_array)*BITS_PER_PAGE + (off))
|
|
@@ -53,11 +53,6 @@ int pid_max_max = PID_MAX_LIMIT;
|
|
|
* value does not cause lots of bitmaps to be allocated, but
|
|
|
* the scheme scales to up to 4 million PIDs, runtime.
|
|
|
*/
|
|
|
-struct pidmap {
|
|
|
- atomic_t nr_free;
|
|
|
- void *page;
|
|
|
-};
|
|
|
-
|
|
|
static struct pidmap pidmap_array[PIDMAP_ENTRIES] =
|
|
|
{ [ 0 ... PIDMAP_ENTRIES-1 ] = { ATOMIC_INIT(BITS_PER_PAGE), NULL } };
|
|
|
|