summaryrefslogtreecommitdiffstats
path: root/sys/i386
diff options
context:
space:
mode:
authorkib <kib@FreeBSD.org>2014-06-22 08:32:31 +0000
committerkib <kib@FreeBSD.org>2014-06-22 08:32:31 +0000
commitabdd2eb0787af0ad290bc7094668760948f46c15 (patch)
tree765567d8b028a4915865e03e2f066b5441fb2c83 /sys/i386
parent1e107e92abee5592ba9043279d528e4c63ed520c (diff)
downloadFreeBSD-src-abdd2eb0787af0ad290bc7094668760948f46c15.zip
FreeBSD-src-abdd2eb0787af0ad290bc7094668760948f46c15.tar.gz
MFC r267492:
Fix some cosmetic issues with the use of kmem_malloc() in the i386 LDT sysarch(2) code.
Diffstat (limited to 'sys/i386')
-rw-r--r--sys/i386/i386/sys_machdep.c30
1 files changed, 6 insertions, 24 deletions
diff --git a/sys/i386/i386/sys_machdep.c b/sys/i386/i386/sys_machdep.c
index 746f846..538db35 100644
--- a/sys/i386/i386/sys_machdep.c
+++ b/sys/i386/i386/sys_machdep.c
@@ -164,19 +164,14 @@ sysarch(td, uap)
break;
case I386_SET_LDT:
if (kargs.largs.descs != NULL) {
- lp = (union descriptor *)kmem_malloc(kernel_arena,
+ lp = (union descriptor *)malloc(
kargs.largs.num * sizeof(union descriptor),
- M_WAITOK);
- if (lp == NULL) {
- error = ENOMEM;
- break;
- }
+ M_TEMP, M_WAITOK);
error = copyin(kargs.largs.descs, lp,
kargs.largs.num * sizeof(union descriptor));
if (error == 0)
error = i386_set_ldt(td, &kargs.largs, lp);
- kmem_free(kernel_arena, (vm_offset_t)lp,
- kargs.largs.num * sizeof(union descriptor));
+ free(lp, M_TEMP);
} else {
error = i386_set_ldt(td, &kargs.largs, NULL);
}
@@ -300,10 +295,7 @@ i386_extend_pcb(struct thread *td)
};
ext = (struct pcb_ext *)kmem_malloc(kernel_arena, ctob(IOPAGES+1),
- M_WAITOK);
- if (ext == 0)
- return (ENOMEM);
- bzero(ext, sizeof(struct pcb_ext));
+ M_WAITOK | M_ZERO);
/* -16 is so we can convert a trapframe into vm86trapframe inplace */
ext->ext_tss.tss_esp0 = td->td_kstack + ctob(KSTACK_PAGES) -
sizeof(struct pcb) - 16;
@@ -474,12 +466,7 @@ user_ldt_alloc(struct mdproc *mdp, int len)
new_ldt->ldt_len = len = NEW_MAX_LD(len);
new_ldt->ldt_base = (caddr_t)kmem_malloc(kernel_arena,
- round_page(len * sizeof(union descriptor)), M_WAITOK);
- if (new_ldt->ldt_base == NULL) {
- free(new_ldt, M_SUBPROC);
- mtx_lock_spin(&dt_lock);
- return (NULL);
- }
+ round_page(len * sizeof(union descriptor)), M_WAITOK);
new_ldt->ldt_refcnt = 1;
new_ldt->ldt_active = 0;
@@ -514,12 +501,7 @@ user_ldt_alloc(struct mdproc *mdp, int len)
new_ldt->ldt_len = len = NEW_MAX_LD(len);
new_ldt->ldt_base = (caddr_t)kmem_malloc(kernel_arena,
- len * sizeof(union descriptor), M_WAITOK);
- if (new_ldt->ldt_base == NULL) {
- free(new_ldt, M_SUBPROC);
- mtx_lock_spin(&dt_lock);
- return (NULL);
- }
+ len * sizeof(union descriptor), M_WAITOK);
new_ldt->ldt_refcnt = 1;
new_ldt->ldt_active = 0;
OpenPOWER on IntegriCloud