Index: etc/rc.d/localpkg =================================================================== --- etc/rc.d/localpkg (Revision 209755) +++ etc/rc.d/localpkg (Arbeitskopie) @@ -66,6 +66,8 @@ (set -T trap 'exit 1' 2 ${script} stop) + elif [ -f "${script}" -o -L "${script}" ]; then + echo -n " (skipping ${script##*/}, not executable)" fi done [ -n "${initdone}" ] && echo '.' Index: sys/i386/i386/sys_machdep.c =================================================================== --- sys/i386/i386/sys_machdep.c (Revision 209755) +++ sys/i386/i386/sys_machdep.c (Arbeitskopie) @@ -588,6 +588,9 @@ return(error); } +static int ldt_warnings; +#define NUM_LDT_WARNINGS 10 + int i386_set_ldt(td, uap, descs) struct thread *td; @@ -634,6 +637,12 @@ } if (!(uap->start == LDT_AUTO_ALLOC && uap->num == 1)) { + /* complain a for a while if using old methods */ + if (ldt_warnings++ < NUM_LDT_WARNINGS) { + printf("Warning: pid %d (%s) used static ldt allocation.\n", + td->td_proc->p_pid, td->td_proc->p_comm); + printf("See the i386_set_ldt man page for more info\n"); + } /* verify range of descriptors to modify */ largest_ld = uap->start + uap->num; if (uap->start >= MAX_LD || Index: sys/kern/vfs_aio.c =================================================================== --- sys/kern/vfs_aio.c (Revision 209755) +++ sys/kern/vfs_aio.c (Arbeitskopie) @@ -145,8 +145,8 @@ SYSCTL_INT(_vfs_aio, OID_AUTO, target_aio_procs, CTLFLAG_RW, &target_aio_procs, 0, "Preferred number of ready kernel threads for async IO"); -static int max_queue_count = MAX_AIO_QUEUE; -SYSCTL_INT(_vfs_aio, OID_AUTO, max_aio_queue, CTLFLAG_RW, &max_queue_count, 0, +int max_aio_queue_count = MAX_AIO_QUEUE; +SYSCTL_INT(_vfs_aio, OID_AUTO, max_aio_queue, CTLFLAG_RW, &max_aio_queue_count, 0, "Maximum number of aio requests to queue, globally"); static int num_queue_count = 0; @@ -178,7 +178,7 @@ SYSCTL_INT(_vfs_aio, OID_AUTO, max_aio_per_proc, CTLFLAG_RW, &max_aio_per_proc, 0, "Maximum active aio requests per process (stored in the process)"); -static int max_aio_queue_per_proc = MAX_AIO_QUEUE_PER_PROC; +int max_aio_queue_per_proc = MAX_AIO_QUEUE_PER_PROC; SYSCTL_INT(_vfs_aio, OID_AUTO, max_aio_queue_per_proc, CTLFLAG_RW, &max_aio_queue_per_proc, 0, "Maximum queued aio requests per process (stored in the process)"); @@ -263,19 +263,6 @@ struct thread *aiothread; /* (*) the AIO thread */ }; -/* - * data-structure for lio signal management - */ -struct aioliojob { - int lioj_flags; /* (a) listio flags */ - int lioj_count; /* (a) listio flags */ - int lioj_finished_count; /* (a) listio flags */ - struct sigevent lioj_signal; /* (a) signal on all I/O done */ - TAILQ_ENTRY(aioliojob) lioj_list; /* (a) lio list */ - struct knlist klist; /* (a) list of knotes */ - ksiginfo_t lioj_ksi; /* (a) Realtime signal info */ -}; - #define LIOJ_SIGNAL 0x1 /* signal on all done (lio) */ #define LIOJ_SIGNAL_POSTED 0x2 /* signal has been posted */ #define LIOJ_KEVENT_POSTED 0x4 /* kevent triggered */ @@ -312,20 +299,6 @@ #define KAIO_RUNDOWN 0x1 /* process is being run down */ #define KAIO_WAKEUP 0x2 /* wakeup process when there is a significant event */ -/* - * Operations used to interact with userland aio control blocks. - * Different ABIs provide their own operations. - */ -struct aiocb_ops { - int (*copyin)(struct aiocb *ujob, struct aiocb *kjob); - long (*fetch_status)(struct aiocb *ujob); - long (*fetch_error)(struct aiocb *ujob); - int (*store_status)(struct aiocb *ujob, long status); - int (*store_error)(struct aiocb *ujob, long error); - int (*store_kernelinfo)(struct aiocb *ujob, long jobref); - int (*store_aiocb)(struct aiocb **ujobp, struct aiocb *ujob); -}; - static TAILQ_HEAD(,aiothreadlist) aio_freeproc; /* (c) Idle daemons */ static struct sema aio_newproc_sem; static struct mtx aio_job_mtx; @@ -333,13 +306,10 @@ static TAILQ_HEAD(,aiocblist) aio_jobs; /* (c) Async job list */ static struct unrhdr *aiod_unr; -void aio_init_aioinfo(struct proc *p); static int aio_onceonly(void); static int aio_free_entry(struct aiocblist *aiocbe); static void aio_process(struct aiocblist *aiocbe); static int aio_newproc(int *); -int aio_aqueue(struct thread *td, struct aiocb *job, - struct aioliojob *lio, int type, struct aiocb_ops *ops); static void aio_physwakeup(struct buf *bp); static void aio_proc_rundown(void *arg, struct proc *p); static void aio_proc_rundown_exec(void *arg, struct proc *p, struct image_params *imgp); @@ -1529,7 +1499,7 @@ ops->store_error(job, 0); ops->store_kernelinfo(job, -1); - if (num_queue_count >= max_queue_count || + if (num_queue_count >= max_aio_queue_count || ki->kaio_count >= ki->kaio_qallowed_count) { ops->store_error(job, EAGAIN); return (EAGAIN); Index: sys/netinet/ipfw/ip_fw2.c =================================================================== --- sys/netinet/ipfw/ip_fw2.c (Revision 209755) +++ sys/netinet/ipfw/ip_fw2.c (Arbeitskopie) @@ -2216,7 +2216,7 @@ pullup_failed: if (V_fw_verbose) - printf("ipfw: pullup failed\n"); + printf("ipfw: pullup failed, packet too short (network problem or malicious packet)\n"); return (IP_FW_DENY); }