PERFORCE change 114478 for review
Roman Divacky
rdivacky at FreeBSD.org
Wed Feb 14 09:39:18 UTC 2007
http://perforce.freebsd.org/chv.cgi?CH=114478
Change 114478 by rdivacky at rdivacky_witten on 2007/02/14 09:38:49
IFC
Affected files ...
.. //depot/projects/linuxolator/src/sys/amd64/amd64/mp_machdep.c#6 integrate
.. //depot/projects/linuxolator/src/sys/amd64/conf/GENERIC#9 integrate
.. //depot/projects/linuxolator/src/sys/arm/arm/busdma_machdep.c#3 integrate
.. //depot/projects/linuxolator/src/sys/arm/arm/cpufunc.c#5 integrate
.. //depot/projects/linuxolator/src/sys/arm/arm/db_interface.c#2 integrate
.. //depot/projects/linuxolator/src/sys/arm/arm/machdep.c#2 integrate
.. //depot/projects/linuxolator/src/sys/arm/arm/mem.c#2 integrate
.. //depot/projects/linuxolator/src/sys/arm/arm/sys_machdep.c#2 integrate
.. //depot/projects/linuxolator/src/sys/arm/at91/if_ate.c#6 integrate
.. //depot/projects/linuxolator/src/sys/arm/xscale/ixp425/if_npe.c#5 integrate
.. //depot/projects/linuxolator/src/sys/compat/linux/linux_futex.c#9 edit
.. //depot/projects/linuxolator/src/sys/conf/NOTES#18 integrate
.. //depot/projects/linuxolator/src/sys/conf/files#18 integrate
.. //depot/projects/linuxolator/src/sys/conf/options#17 integrate
.. //depot/projects/linuxolator/src/sys/dev/aac/aac.c#2 integrate
.. //depot/projects/linuxolator/src/sys/dev/ata/ata-chipset.c#7 integrate
.. //depot/projects/linuxolator/src/sys/dev/bge/if_bge.c#12 integrate
.. //depot/projects/linuxolator/src/sys/dev/bge/if_bgereg.h#10 integrate
.. //depot/projects/linuxolator/src/sys/dev/isp/isp_pci.c#10 integrate
.. //depot/projects/linuxolator/src/sys/dev/mii/brgphy.c#8 integrate
.. //depot/projects/linuxolator/src/sys/dev/mii/brgphyreg.h#2 integrate
.. //depot/projects/linuxolator/src/sys/dev/mii/rlphy.c#5 integrate
.. //depot/projects/linuxolator/src/sys/dev/pci/pci.c#16 integrate
.. //depot/projects/linuxolator/src/sys/dev/usb/ubsa.c#4 integrate
.. //depot/projects/linuxolator/src/sys/dev/usb/usbdevs#9 integrate
.. //depot/projects/linuxolator/src/sys/fs/cd9660/TODO#1 branch
.. //depot/projects/linuxolator/src/sys/fs/cd9660/TODO.hibler#1 branch
.. //depot/projects/linuxolator/src/sys/fs/cd9660/cd9660_bmap.c#1 branch
.. //depot/projects/linuxolator/src/sys/fs/cd9660/cd9660_iconv.c#1 branch
.. //depot/projects/linuxolator/src/sys/fs/cd9660/cd9660_lookup.c#1 branch
.. //depot/projects/linuxolator/src/sys/fs/cd9660/cd9660_mount.h#1 branch
.. //depot/projects/linuxolator/src/sys/fs/cd9660/cd9660_node.c#1 branch
.. //depot/projects/linuxolator/src/sys/fs/cd9660/cd9660_node.h#1 branch
.. //depot/projects/linuxolator/src/sys/fs/cd9660/cd9660_rrip.c#1 branch
.. //depot/projects/linuxolator/src/sys/fs/cd9660/cd9660_rrip.h#1 branch
.. //depot/projects/linuxolator/src/sys/fs/cd9660/cd9660_util.c#1 branch
.. //depot/projects/linuxolator/src/sys/fs/cd9660/cd9660_vfsops.c#1 branch
.. //depot/projects/linuxolator/src/sys/fs/cd9660/cd9660_vnops.c#1 branch
.. //depot/projects/linuxolator/src/sys/fs/cd9660/iso.h#1 branch
.. //depot/projects/linuxolator/src/sys/fs/cd9660/iso_rrip.h#1 branch
.. //depot/projects/linuxolator/src/sys/fs/msdosfs/msdosfs_vfsops.c#8 integrate
.. //depot/projects/linuxolator/src/sys/geom/part/g_part_if.m#2 integrate
.. //depot/projects/linuxolator/src/sys/i386/conf/GENERIC#7 integrate
.. //depot/projects/linuxolator/src/sys/i386/i386/mp_machdep.c#6 integrate
.. //depot/projects/linuxolator/src/sys/ia64/conf/GENERIC#5 integrate
.. //depot/projects/linuxolator/src/sys/ia64/ia64/pmap.c#4 integrate
.. //depot/projects/linuxolator/src/sys/isofs/cd9660/TODO#2 delete
.. //depot/projects/linuxolator/src/sys/isofs/cd9660/TODO.hibler#2 delete
.. //depot/projects/linuxolator/src/sys/isofs/cd9660/cd9660_bmap.c#2 delete
.. //depot/projects/linuxolator/src/sys/isofs/cd9660/cd9660_iconv.c#2 delete
.. //depot/projects/linuxolator/src/sys/isofs/cd9660/cd9660_lookup.c#2 delete
.. //depot/projects/linuxolator/src/sys/isofs/cd9660/cd9660_mount.h#2 delete
.. //depot/projects/linuxolator/src/sys/isofs/cd9660/cd9660_node.c#2 delete
.. //depot/projects/linuxolator/src/sys/isofs/cd9660/cd9660_node.h#3 delete
.. //depot/projects/linuxolator/src/sys/isofs/cd9660/cd9660_rrip.c#2 delete
.. //depot/projects/linuxolator/src/sys/isofs/cd9660/cd9660_rrip.h#2 delete
.. //depot/projects/linuxolator/src/sys/isofs/cd9660/cd9660_util.c#2 delete
.. //depot/projects/linuxolator/src/sys/isofs/cd9660/cd9660_vfsops.c#4 delete
.. //depot/projects/linuxolator/src/sys/isofs/cd9660/cd9660_vnops.c#2 delete
.. //depot/projects/linuxolator/src/sys/isofs/cd9660/iso.h#2 delete
.. //depot/projects/linuxolator/src/sys/isofs/cd9660/iso_rrip.h#2 delete
.. //depot/projects/linuxolator/src/sys/kern/Make.tags.inc#3 integrate
.. //depot/projects/linuxolator/src/sys/kern/kern_ktrace.c#6 integrate
.. //depot/projects/linuxolator/src/sys/kern/kern_sig.c#8 integrate
.. //depot/projects/linuxolator/src/sys/kern/kern_switch.c#6 integrate
.. //depot/projects/linuxolator/src/sys/kern/sched_ule.c#8 integrate
.. //depot/projects/linuxolator/src/sys/kern/uipc_usrreq.c#6 integrate
.. //depot/projects/linuxolator/src/sys/kern/vfs_mount.c#8 integrate
.. //depot/projects/linuxolator/src/sys/kern/vfs_vnops.c#5 integrate
.. //depot/projects/linuxolator/src/sys/modules/cd9660/Makefile#2 integrate
.. //depot/projects/linuxolator/src/sys/modules/cd9660_iconv/Makefile#2 integrate
.. //depot/projects/linuxolator/src/sys/modules/geom/Makefile#4 integrate
.. //depot/projects/linuxolator/src/sys/modules/ip_mroute_mod/Makefile#2 integrate
.. //depot/projects/linuxolator/src/sys/net/if_loop.c#3 integrate
.. //depot/projects/linuxolator/src/sys/netgraph/ng_ksocket.c#2 integrate
.. //depot/projects/linuxolator/src/sys/netinet/in_proto.c#3 integrate
.. //depot/projects/linuxolator/src/sys/netinet/ip_mroute.c#7 integrate
.. //depot/projects/linuxolator/src/sys/netinet/ip_mroute.h#4 integrate
.. //depot/projects/linuxolator/src/sys/netinet/sctp_asconf.c#7 integrate
.. //depot/projects/linuxolator/src/sys/netinet/sctp_auth.c#4 integrate
.. //depot/projects/linuxolator/src/sys/netinet/sctp_auth.h#2 integrate
.. //depot/projects/linuxolator/src/sys/netinet/sctp_constants.h#6 integrate
.. //depot/projects/linuxolator/src/sys/netinet/sctp_crc32.c#3 integrate
.. //depot/projects/linuxolator/src/sys/netinet/sctp_indata.c#7 integrate
.. //depot/projects/linuxolator/src/sys/netinet/sctp_input.c#7 integrate
.. //depot/projects/linuxolator/src/sys/netinet/sctp_os.h#4 integrate
.. //depot/projects/linuxolator/src/sys/netinet/sctp_os_bsd.h#6 integrate
.. //depot/projects/linuxolator/src/sys/netinet/sctp_output.c#7 integrate
.. //depot/projects/linuxolator/src/sys/netinet/sctp_pcb.c#7 integrate
.. //depot/projects/linuxolator/src/sys/netinet/sctp_peeloff.c#4 integrate
.. //depot/projects/linuxolator/src/sys/netinet/sctp_structs.h#7 integrate
.. //depot/projects/linuxolator/src/sys/netinet/sctp_timer.c#5 integrate
.. //depot/projects/linuxolator/src/sys/netinet/sctp_uio.h#5 integrate
.. //depot/projects/linuxolator/src/sys/netinet/sctp_usrreq.c#7 integrate
.. //depot/projects/linuxolator/src/sys/netinet/sctp_var.h#5 integrate
.. //depot/projects/linuxolator/src/sys/netinet/sctputil.c#7 integrate
.. //depot/projects/linuxolator/src/sys/netinet/sctputil.h#6 integrate
.. //depot/projects/linuxolator/src/sys/netinet6/icmp6.c#4 integrate
.. //depot/projects/linuxolator/src/sys/netinet6/sctp6_usrreq.c#7 integrate
.. //depot/projects/linuxolator/src/sys/netsmb/smb_dev.c#2 integrate
.. //depot/projects/linuxolator/src/sys/nfsclient/nfs_socket.c#5 integrate
.. //depot/projects/linuxolator/src/sys/nfsserver/nfs_serv.c#4 integrate
.. //depot/projects/linuxolator/src/sys/pc98/conf/GENERIC#6 integrate
.. //depot/projects/linuxolator/src/sys/powerpc/conf/GENERIC#6 integrate
.. //depot/projects/linuxolator/src/sys/powerpc/powerpc/machdep.c#5 integrate
.. //depot/projects/linuxolator/src/sys/security/mac_biba/mac_biba.c#7 integrate
.. //depot/projects/linuxolator/src/sys/sparc64/conf/GENERIC#6 integrate
.. //depot/projects/linuxolator/src/sys/sun4v/conf/GENERIC#7 integrate
.. //depot/projects/linuxolator/src/sys/sys/runq.h#4 integrate
.. //depot/projects/linuxolator/src/sys/sys/systm.h#7 integrate
.. //depot/projects/linuxolator/src/sys/ufs/ufs/ufs_vnops.c#8 integrate
.. //depot/projects/linuxolator/src/sys/vm/uma.h#4 integrate
.. //depot/projects/linuxolator/src/sys/vm/uma_core.c#6 integrate
.. //depot/projects/linuxolator/src/sys/vm/vm_page.c#8 integrate
.. //depot/projects/linuxolator/src/sys/vm/vm_zeroidle.c#6 integrate
Differences ...
==== //depot/projects/linuxolator/src/sys/amd64/amd64/mp_machdep.c#6 (text+ko) ====
@@ -25,7 +25,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/mp_machdep.c,v 1.280 2007/01/23 08:38:39 jeff Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/mp_machdep.c,v 1.281 2007/02/08 16:49:58 jhb Exp $");
#include "opt_cpu.h"
#include "opt_kstack_pages.h"
@@ -632,6 +632,8 @@
continue;
if (cpu_info[apic_id].cpu_bsp)
continue;
+ if (cpu_info[apic_id].cpu_disabled)
+ continue;
/* Don't let hyperthreads service interrupts. */
if (hyperthreading_cpus > 1 &&
==== //depot/projects/linuxolator/src/sys/amd64/conf/GENERIC#9 (text+ko) ====
@@ -16,7 +16,7 @@
# If you are in doubt as to the purpose or necessity of a line, check first
# in NOTES.
#
-# $FreeBSD: src/sys/amd64/conf/GENERIC,v 1.472 2007/02/07 18:55:29 marcel Exp $
+# $FreeBSD: src/sys/amd64/conf/GENERIC,v 1.473 2007/02/09 19:03:17 brooks Exp $
cpu HAMMER
ident GENERIC
@@ -44,6 +44,7 @@
options PROCFS # Process filesystem (requires PSEUDOFS)
options PSEUDOFS # Pseudo-filesystem framework
options GEOM_PART_GPT # GUID Partition Tables.
+options GEOM_LABEL # Provides labelization
options COMPAT_43TTY # BSD 4.3 TTY compat [KEEP THIS!]
options COMPAT_IA32 # Compatible with i386 binaries
options COMPAT_FREEBSD4 # Compatible with FreeBSD4
==== //depot/projects/linuxolator/src/sys/arm/arm/busdma_machdep.c#3 (text+ko) ====
@@ -29,10 +29,10 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/arm/arm/busdma_machdep.c,v 1.28 2007/01/17 00:53:05 cognet Exp $");
+__FBSDID("$FreeBSD: src/sys/arm/arm/busdma_machdep.c,v 1.29 2007/02/13 07:19:26 kevlo Exp $");
/*
- * MacPPC bus dma support routines
+ * ARM bus dma support routines
*/
#define _ARM32_BUS_DMA_PRIVATE
==== //depot/projects/linuxolator/src/sys/arm/arm/cpufunc.c#5 (text+ko) ====
@@ -45,7 +45,7 @@
* Created : 30/01/97
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/arm/arm/cpufunc.c,v 1.15 2006/11/30 23:34:07 cognet Exp $");
+__FBSDID("$FreeBSD: src/sys/arm/arm/cpufunc.c,v 1.16 2007/02/11 22:24:54 cognet Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -58,6 +58,7 @@
#include <vm/vm.h>
#include <vm/pmap.h>
+#include <vm/uma.h>
#include <machine/cpuconf.h>
#include <machine/cpufunc.h>
@@ -799,7 +800,7 @@
cpu_reset_needs_v4_MMU_disable = 0;
get_cachetype_cp15();
pmap_pte_init_generic();
- return 0;
+ goto out;
}
#endif
#ifdef CPU_ARM8
@@ -809,7 +810,7 @@
cpu_reset_needs_v4_MMU_disable = 0; /* XXX correct? */
get_cachetype_cp15();
pmap_pte_init_arm8();
- return 0;
+ goto out;
}
#endif /* CPU_ARM8 */
#ifdef CPU_ARM9
@@ -829,7 +830,7 @@
#else
pmap_pte_init_generic();
#endif
- return 0;
+ goto out;
}
#endif /* CPU_ARM9 */
#ifdef CPU_ARM10
@@ -849,7 +850,7 @@
arm10_dcache_index_inc = 1U << (32 - arm_dcache_l2_assoc);
arm10_dcache_index_max = 0U - arm10_dcache_index_inc;
pmap_pte_init_generic();
- return 0;
+ goto out;
}
#endif /* CPU_ARM10 */
#ifdef CPU_SA110
@@ -858,7 +859,7 @@
cpu_reset_needs_v4_MMU_disable = 1; /* SA needs it */
get_cachetype_table();
pmap_pte_init_sa1();
- return 0;
+ goto out;
}
#endif /* CPU_SA110 */
#ifdef CPU_SA1100
@@ -870,7 +871,7 @@
/* Use powersave on this CPU. */
cpu_do_powersave = 1;
- return 0;
+ goto out;
}
#endif /* CPU_SA1100 */
#ifdef CPU_SA1110
@@ -882,7 +883,7 @@
/* Use powersave on this CPU. */
cpu_do_powersave = 1;
- return 0;
+ goto out;
}
#endif /* CPU_SA1110 */
#ifdef CPU_IXP12X0
@@ -891,7 +892,7 @@
cpu_reset_needs_v4_MMU_disable = 1;
get_cachetype_table();
pmap_pte_init_sa1();
- return 0;
+ goto out;
}
#endif /* CPU_IXP12X0 */
#ifdef CPU_XSCALE_80200
@@ -948,7 +949,7 @@
cpu_reset_needs_v4_MMU_disable = 1; /* XScale needs it */
get_cachetype_cp15();
pmap_pte_init_xscale();
- return 0;
+ goto out;
}
#endif /* CPU_XSCALE_80200 */
#if defined(CPU_XSCALE_80321) || defined(CPU_XSCALE_80219)
@@ -975,7 +976,7 @@
cpu_reset_needs_v4_MMU_disable = 1; /* XScale needs it */
get_cachetype_cp15();
pmap_pte_init_xscale();
- return 0;
+ goto out;
}
#endif /* CPU_XSCALE_80321 */
@@ -989,7 +990,7 @@
cpu_reset_needs_v4_MMU_disable = 1; /* XScale needs it */
get_cachetype_cp15();
pmap_pte_init_xscale();
- return 0;
+ goto out;
}
#endif /* CPU_XSCALE_81342 */
#ifdef CPU_XSCALE_PXA2X0
@@ -1009,7 +1010,7 @@
/* Use powersave on this CPU. */
cpu_do_powersave = 1;
- return 0;
+ goto out;
}
#endif /* CPU_XSCALE_PXA2X0 */
#ifdef CPU_XSCALE_IXP425
@@ -1025,7 +1026,7 @@
get_cachetype_cp15();
pmap_pte_init_xscale();
- return 0;
+ goto out;
}
#endif /* CPU_XSCALE_IXP425 */
/*
@@ -1033,6 +1034,9 @@
*/
panic("No support for this CPU type (%08x) in kernel", cputype);
return(ARCHITECTURE_NOT_PRESENT);
+out:
+ uma_set_align(arm_dcache_align_mask);
+ return (0);
}
/*
==== //depot/projects/linuxolator/src/sys/arm/arm/db_interface.c#2 (text+ko) ====
@@ -35,7 +35,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/arm/arm/db_interface.c,v 1.5 2005/06/23 11:38:47 cognet Exp $");
+__FBSDID("$FreeBSD: src/sys/arm/arm/db_interface.c,v 1.6 2007/02/14 01:25:41 kevlo Exp $");
#include "opt_ddb.h"
#include <sys/param.h>
@@ -109,7 +109,7 @@
*valp = get_stackptr(PSR_UND32_MODE);
return (1);
}
- return(0);
+ return (0);
}
int
@@ -120,7 +120,7 @@
*valp = get_stackptr(PSR_ABT32_MODE);
return (1);
}
- return(0);
+ return (0);
}
int
@@ -131,7 +131,7 @@
*valp = get_stackptr(PSR_IRQ32_MODE);
return (1);
}
- return(0);
+ return (0);
}
int db_frame(struct db_variable *vp, db_expr_t *valp, int rw)
@@ -146,7 +146,7 @@
*valp = *reg;
else
*reg = *valp;
- return(1);
+ return (1);
}
void
@@ -339,4 +339,3 @@
panic("branch_taken: botch");
}
}
-
==== //depot/projects/linuxolator/src/sys/arm/arm/machdep.c#2 (text+ko) ====
@@ -44,7 +44,7 @@
#include "opt_compat.h"
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/arm/arm/machdep.c,v 1.23 2006/05/15 10:40:37 benno Exp $");
+__FBSDID("$FreeBSD: src/sys/arm/arm/machdep.c,v 1.25 2007/02/14 04:41:28 kevlo Exp $");
#include <sys/param.h>
#include <sys/proc.h>
@@ -57,6 +57,7 @@
#include <sys/exec.h>
#include <sys/imgact.h>
#include <sys/kernel.h>
+#include <sys/ktr.h>
#include <sys/linker.h>
#include <sys/lock.h>
#include <sys/malloc.h>
@@ -106,26 +107,38 @@
ksiginfo_t *ksi;
sigset_t *mask;
{
- struct thread *td = curthread;
- struct proc *p = td->td_proc;
- struct trapframe *tf = td->td_frame;
+ struct thread *td;
+ struct proc *p;
+ struct trapframe *tf;
struct sigframe *fp, frame;
- struct sigacts *psp = td->td_proc->p_sigacts;
+ struct sigacts *psp;
int onstack;
int sig;
int code;
- onstack = sigonstack(td->td_frame->tf_usr_sp);
-
+ td = curthread;
+ p = td->td_proc;
+ PROC_LOCK_ASSERT(p, MA_OWNED);
sig = ksi->ksi_signo;
code = ksi->ksi_code;
- if ((td->td_flags & TDP_ALTSTACK) &&
- !(onstack) &&
- SIGISMEMBER(td->td_proc->p_sigacts->ps_sigonstack, sig)) {
- fp = (void*)(td->td_sigstk.ss_sp + td->td_sigstk.ss_size);
+ psp = p->p_sigacts;
+ mtx_assert(&psp->ps_mtx, MA_OWNED);
+ tf = td->td_frame;
+ onstack = sigonstack(tf->tf_usr_sp);
+
+ CTR4(KTR_SIG, "sendsig: td=%p (%s) catcher=%p sig=%d", td, p->p_comm,
+ catcher, sig);
+
+ /* Allocate and validate space for the signal handler context. */
+ if ((td->td_flags & TDP_ALTSTACK) != 0 && !(onstack) &&
+ SIGISMEMBER(psp->ps_sigonstack, sig)) {
+ fp = (struct sigframe *)(td->td_sigstk.ss_sp +
+ td->td_sigstk.ss_size);
+#if defined(COMPAT_43)
td->td_sigstk.ss_flags |= SS_ONSTACK;
+#endif
} else
- fp = (void*)td->td_frame->tf_usr_sp;
+ fp = (struct sigframe *)td->td_frame->tf_usr_sp;
/* make room on the stack */
fp--;
@@ -133,18 +146,27 @@
/* make the stack aligned */
fp = (struct sigframe *)STACKALIGN(fp);
/* Populate the siginfo frame. */
+ get_mcontext(td, &frame.sf_uc.uc_mcontext, 0);
frame.sf_si = ksi->ksi_info;
frame.sf_uc.uc_sigmask = *mask;
- frame.sf_uc.uc_link = NULL;
- frame.sf_uc.uc_flags = (td->td_pflags & TDP_ALTSTACK )
+ frame.sf_uc.uc_stack.ss_flags = (td->td_pflags & TDP_ALTSTACK )
? ((onstack) ? SS_ONSTACK : 0) : SS_DISABLE;
frame.sf_uc.uc_stack = td->td_sigstk;
- memset(&frame.sf_uc.uc_stack, 0, sizeof(frame.sf_uc.uc_stack));
- get_mcontext(td, &frame.sf_uc.uc_mcontext, 0);
+ mtx_unlock(&psp->ps_mtx);
PROC_UNLOCK(td->td_proc);
- mtx_unlock(&psp->ps_mtx);
- if (copyout(&frame, (void*)fp, sizeof(frame)) != 0)
+
+ /* Copy the sigframe out to the user's stack. */
+ if (copyout(&frame, fp, sizeof(*fp)) != 0) {
+ /* Process has trashed its stack. Kill it. */
+ CTR2(KTR_SIG, "sendsig: sigexit td=%p fp=%p", td, fp);
+ PROC_LOCK(p);
sigexit(td, SIGILL);
+ }
+
+ /* Translate the signal if appropriate. */
+ if (p->p_sysent->sv_sigtbl && sig <= p->p_sysent->sv_sigsize)
+ sig = p->p_sysent->sv_sigtbl[_SIG_IDX(sig)];
+
/*
* Build context to run handler in. We invoke the handler
* directly, only returning via the trampoline. Note the
@@ -153,15 +175,19 @@
*/
tf->tf_r0 = sig;
- tf->tf_r1 = (int)&fp->sf_si;
- tf->tf_r2 = (int)&fp->sf_uc;
+ tf->tf_r1 = (register_t)&fp->sf_si;
+ tf->tf_r2 = (register_t)&fp->sf_uc;
/* the trampoline uses r5 as the uc address */
- tf->tf_r5 = (int)&fp->sf_uc;
- tf->tf_pc = (int)catcher;
- tf->tf_usr_sp = (int)fp;
- tf->tf_usr_lr = (int)(PS_STRINGS - *(p->p_sysent->sv_szsigcode));
- PROC_LOCK(td->td_proc);
+ tf->tf_r5 = (register_t)&fp->sf_uc;
+ tf->tf_pc = (register_t)catcher;
+ tf->tf_usr_sp = (register_t)fp;
+ tf->tf_usr_lr = (register_t)(PS_STRINGS - *(p->p_sysent->sv_szsigcode));
+
+ CTR3(KTR_SIG, "sendsig: return td=%p pc=%#x sp=%#x", td, tf->tf_usr_lr,
+ tf->tf_usr_sp);
+
+ PROC_LOCK(p);
mtx_lock(&psp->ps_mtx);
}
==== //depot/projects/linuxolator/src/sys/arm/arm/mem.c#2 (text+ko) ====
@@ -37,7 +37,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/arm/arm/mem.c,v 1.4 2006/08/15 16:43:07 cognet Exp $");
+__FBSDID("$FreeBSD: src/sys/arm/arm/mem.c,v 1.5 2007/02/13 15:35:57 cognet Exp $");
/*
* Memory special file
@@ -92,8 +92,21 @@
continue;
}
if (minor(dev) == CDEV_MINOR_MEM) {
+ int i;
+ int address_valid = 0;
+
v = uio->uio_offset;
v &= ~PAGE_MASK;
+ for (i = 0; dump_avail[i] || dump_avail[i + 1];
+ i += 2) {
+ if (v >= dump_avail[i] &&
+ v < dump_avail[i + 1]) {
+ address_valid = 1;
+ break;
+ }
+ }
+ if (!address_valid)
+ return (EINVAL);
pmap_kenter((vm_offset_t)_tmppt, v);
o = (int)uio->uio_offset & PAGE_MASK;
c = (u_int)(PAGE_SIZE - ((int)iov->iov_base & PAGE_MASK));
==== //depot/projects/linuxolator/src/sys/arm/arm/sys_machdep.c#2 (text+ko) ====
@@ -34,7 +34,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/arm/arm/sys_machdep.c,v 1.4 2005/02/25 22:56:16 cognet Exp $");
+__FBSDID("$FreeBSD: src/sys/arm/arm/sys_machdep.c,v 1.5 2007/02/14 01:25:41 kevlo Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -68,7 +68,7 @@
cpu_icache_sync_range(ua.addr, ua.len);
td->td_retval[0] = 0;
- return(0);
+ return (0);
}
static int
@@ -78,7 +78,7 @@
td->td_retval[0] = 0;
cpu_drain_writebuf();
- return(0);
+ return (0);
}
static int
@@ -108,7 +108,6 @@
case ARM_SYNC_ICACHE :
error = arm32_sync_icache(td, uap->parms);
break;
-
case ARM_DRAIN_WRITEBUF :
error = arm32_drain_writebuf(td, uap->parms);
break;
@@ -124,4 +123,3 @@
}
return (error);
}
-
==== //depot/projects/linuxolator/src/sys/arm/at91/if_ate.c#6 (text) ====
@@ -33,7 +33,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/arm/at91/if_ate.c,v 1.16 2007/02/03 07:46:26 kevlo Exp $");
+__FBSDID("$FreeBSD: src/sys/arm/at91/if_ate.c,v 1.18 2007/02/10 15:43:57 mlaier Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -146,7 +146,7 @@
static void ate_deactivate(device_t dev);
static int ate_ifmedia_upd(struct ifnet *ifp);
static void ate_ifmedia_sts(struct ifnet *ifp, struct ifmediareq *ifmr);
-static void ate_get_mac(struct ate_softc *sc, u_char *eaddr);
+static int ate_get_mac(struct ate_softc *sc, u_char *eaddr);
static void ate_set_mac(struct ate_softc *sc, u_char *eaddr);
/*
@@ -179,7 +179,6 @@
sc->use_rmii = (RD4(sc, ETH_CFG) & ETH_CFG_RMII) == ETH_CFG_RMII;
-
/*Sysctls*/
sctx = device_get_sysctl_ctx(dev);
soid = device_get_sysctl_tree(dev);
@@ -191,7 +190,10 @@
ATE_LOCK_INIT(sc);
callout_init_mtx(&sc->tick_ch, &sc->sc_mtx, 0);
- ate_get_mac(sc, eaddr);
+ if ((err = ate_get_mac(sc, eaddr)) != 0) {
+ device_printf(dev, "No MAC address set");
+ goto out;
+ }
ate_set_mac(sc, eaddr);
sc->ifp = ifp = if_alloc(IFT_ETHER);
@@ -211,7 +213,7 @@
ifp->if_init = ateinit;
ifp->if_baudrate = 10000000;
IFQ_SET_MAXLEN(&ifp->if_snd, IFQ_MAXLEN);
- ifp->if_snd.ifq_maxlen = IFQ_MAXLEN;
+ ifp->if_snd.ifq_drv_maxlen = IFQ_MAXLEN;
IFQ_SET_READY(&ifp->if_snd);
ifp->if_timer = 0;
ifp->if_linkmib = &sc->mibdata;
@@ -582,24 +584,27 @@
}
-static void
+static int
ate_get_mac(struct ate_softc *sc, u_char *eaddr)
{
- uint32_t low, high;
+ uint32_t low, high;
- /*
- * The boot loader setup the MAC with an address, if one is set in
- * the loader. The TSC loader will also set the MAC address in a
- * similar way. Grab the MAC address from the SA1[HL] registers.
- */
- low = RD4(sc, ETH_SA1L);
- high = RD4(sc, ETH_SA1H);
- eaddr[0] = (high >> 8) & 0xff;
- eaddr[1] = high & 0xff;
- eaddr[2] = (low >> 24) & 0xff;
- eaddr[3] = (low >> 16) & 0xff;
- eaddr[4] = (low >> 8) & 0xff;
- eaddr[5] = low & 0xff;
+ /*
+ * The boot loader setup the MAC with an address, if one is set in
+ * the loader. The TSC loader will also set the MAC address in a
+ * similar way. Grab the MAC address from the SA1[HL] registers.
+ */
+ low = RD4(sc, ETH_SA1L);
+ high = RD4(sc, ETH_SA1H);
+ if ((low | (high & 0xffff)) == 0)
+ return (ENXIO);
+ eaddr[0] = (high >> 8) & 0xff;
+ eaddr[1] = high & 0xff;
+ eaddr[2] = (low >> 24) & 0xff;
+ eaddr[3] = (low >> 16) & 0xff;
+ eaddr[4] = (low >> 8) & 0xff;
+ eaddr[5] = low & 0xff;
+ return (0);
}
static void
==== //depot/projects/linuxolator/src/sys/arm/xscale/ixp425/if_npe.c#5 (text+ko) ====
@@ -23,7 +23,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/arm/xscale/ixp425/if_npe.c,v 1.4 2007/02/03 07:46:26 kevlo Exp $");
+__FBSDID("$FreeBSD: src/sys/arm/xscale/ixp425/if_npe.c,v 1.5 2007/02/10 15:43:58 mlaier Exp $");
/*
* Intel XScale NPE Ethernet driver.
@@ -330,7 +330,7 @@
ifp->if_ioctl = npeioctl;
ifp->if_init = npeinit;
IFQ_SET_MAXLEN(&ifp->if_snd, sc->txdma.nbuf - 1);
- ifp->if_snd.ifq_maxlen = IFQ_MAXLEN;
+ ifp->if_snd.ifq_drv_maxlen = IFQ_MAXLEN;
IFQ_SET_READY(&ifp->if_snd);
ifp->if_linkmib = &sc->mibdata;
ifp->if_linkmiblen = sizeof(sc->mibdata);
==== //depot/projects/linuxolator/src/sys/compat/linux/linux_futex.c#9 (text+ko) ====
@@ -308,7 +308,8 @@
* as the number of retries, so any large number will
* be ok.
*/
- op_ret += futex_wake(f2, 0x7fffffff, NULL);
+ op_ret += futex_wake(f2, (int) (unsigned long) args->timeout, NULL);
+// op_ret += futex_wake(f2, 0xffffffff, NULL);
ret += op_ret;
}
futex_put(f2);
==== //depot/projects/linuxolator/src/sys/conf/NOTES#18 (text+ko) ====
@@ -1,4 +1,4 @@
-# $FreeBSD: src/sys/conf/NOTES,v 1.1409 2007/02/07 18:55:29 marcel Exp $
+# $FreeBSD: src/sys/conf/NOTES,v 1.1410 2007/02/10 13:59:13 bms Exp $
#
# NOTES -- Lines that can be cut/pasted into kernel and hints configs.
#
@@ -807,11 +807,8 @@
# Internet family options:
#
# MROUTING enables the kernel multicast packet forwarder, which works
-# with mrouted(8).
+# with mrouted and XORP.
#
-# PIM enables Protocol Independent Multicast in the kernel.
-# Requires MROUTING enabled.
-#
# IPFIREWALL enables support for IP firewall construction, in
# conjunction with the `ipfw' program. IPFIREWALL_VERBOSE sends
# logged packets to the system logger. IPFIREWALL_VERBOSE_LIMIT
@@ -854,7 +851,6 @@
# using the trpt(8) utility.
#
options MROUTING # Multicast routing
-options PIM # Protocol Independent Multicast
options IPFIREWALL #firewall
options IPFIREWALL_VERBOSE #enable logging to syslogd(8)
options IPFIREWALL_VERBOSE_LIMIT=100 #limit verbosity
==== //depot/projects/linuxolator/src/sys/conf/files#18 (text+ko) ====
@@ -1,4 +1,4 @@
-# $FreeBSD: src/sys/conf/files,v 1.1175 2007/02/07 18:55:29 marcel Exp $
+# $FreeBSD: src/sys/conf/files,v 1.1176 2007/02/11 14:01:32 rodrigc Exp $
#
# The long compile-with and dependency lines are required because of
# limitations in config: backslash-newline doesn't work in strings, and
@@ -1305,14 +1305,14 @@
isa/orm.c optional isa
isa/pnp.c optional isa isapnp
isa/pnpparse.c optional isa isapnp
-isofs/cd9660/cd9660_bmap.c optional cd9660
-isofs/cd9660/cd9660_lookup.c optional cd9660
-isofs/cd9660/cd9660_node.c optional cd9660
-isofs/cd9660/cd9660_rrip.c optional cd9660
-isofs/cd9660/cd9660_util.c optional cd9660
-isofs/cd9660/cd9660_vfsops.c optional cd9660
-isofs/cd9660/cd9660_vnops.c optional cd9660
-isofs/cd9660/cd9660_iconv.c optional cd9660_iconv
+fs/cd9660/cd9660_bmap.c optional cd9660
+fs/cd9660/cd9660_lookup.c optional cd9660
+fs/cd9660/cd9660_node.c optional cd9660
+fs/cd9660/cd9660_rrip.c optional cd9660
+fs/cd9660/cd9660_util.c optional cd9660
+fs/cd9660/cd9660_vfsops.c optional cd9660
+fs/cd9660/cd9660_vnops.c optional cd9660
+fs/cd9660/cd9660_iconv.c optional cd9660_iconv
kern/bus_if.m standard
kern/clock_if.m optional genclock
kern/cpufreq_if.m standard
==== //depot/projects/linuxolator/src/sys/conf/options#17 (text+ko) ====
@@ -1,4 +1,4 @@
-# $FreeBSD: src/sys/conf/options,v 1.575 2007/02/07 18:55:29 marcel Exp $
+# $FreeBSD: src/sys/conf/options,v 1.576 2007/02/10 13:59:13 bms Exp $
#
# On the handling of kernel options
#
@@ -352,7 +352,6 @@
ETHER_8022 opt_ef.h
ETHER_SNAP opt_ef.h
MROUTING opt_mrouting.h
-PIM opt_mrouting.h
INET opt_inet.h
INET6 opt_inet6.h
IPSEC opt_ipsec.h
==== //depot/projects/linuxolator/src/sys/dev/aac/aac.c#2 (text+ko) ====
@@ -28,7 +28,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/aac/aac.c,v 1.118 2006/04/08 06:05:29 scottl Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/aac/aac.c,v 1.119 2007/02/14 09:10:37 luoqi Exp $");
/*
* Driver for the Adaptec 'FSA' family of PCI/SCSI RAID adapters.
@@ -2982,7 +2982,7 @@
switch (event->ev_type) {
case AAC_EVENT_CMFREE:
mtx_lock(&sc->aac_io_lock);
- if (aac_alloc_command(sc, (struct aac_command **)arg) == 0) {
+ if (aac_alloc_command(sc, (struct aac_command **)arg)) {
aac_add_event(sc, event);
mtx_unlock(&sc->aac_io_lock);
return;
==== //depot/projects/linuxolator/src/sys/dev/ata/ata-chipset.c#7 (text+ko) ====
@@ -25,7 +25,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/ata/ata-chipset.c,v 1.180 2007/02/03 20:12:00 rink Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/ata/ata-chipset.c,v 1.181 2007/02/12 17:17:31 sos Exp $");
#include "opt_ata.h"
#include <sys/param.h>
@@ -315,9 +315,8 @@
/* clear SATA error register */
ATA_IDX_OUTL(ch, ATA_SERROR, ATA_IDX_INL(ch, ATA_SERROR));
- /* find out what type device we got poll for spec'd 31 seconds */
+ /* poll 31 seconds for device ready */
/* XXX SOS 10 secs for now as I have little patience */
- ch->devices = 0;
for (timeout = 0; timeout < 1000; timeout++) {
if (ATA_IDX_INB(ch, ATA_STATUS) & ATA_S_BUSY)
DELAY(10000);
@@ -326,16 +325,9 @@
}
if (bootverbose)
device_printf(ch->dev, "SATA connect ready time=%dms\n", timeout * 10);
- if (timeout < 1000) {
- if ((ATA_IDX_INB(ch, ATA_CYL_LSB) == ATAPI_MAGIC_LSB) &&
- (ATA_IDX_INB(ch, ATA_CYL_MSB) == ATAPI_MAGIC_MSB))
- ch->devices = ATA_ATAPI_MASTER;
- else
- ch->devices = ATA_ATA_MASTER;
- }
- if (bootverbose)
- device_printf(ch->dev, "sata_connect devices=0x%b\n",
- ch->devices, "\20\3ATAPI_MASTER\1ATA_MASTER");
+
+ /* do a reset and find out what type device we've got */
+ ata_generic_reset(ch->dev);
return 1;
}
==== //depot/projects/linuxolator/src/sys/dev/bge/if_bge.c#12 (text+ko) ====
@@ -32,7 +32,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/bge/if_bge.c,v 1.173 2007/01/15 21:43:43 jkim Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/bge/if_bge.c,v 1.176 2007/02/12 23:58:52 jkim Exp $");
/*
* Broadcom BCM570x family gigabit ethernet driver for FreeBSD.
@@ -111,8 +111,8 @@
#include <dev/bge/if_bgereg.h>
-#define BGE_CSUM_FEATURES (CSUM_IP | CSUM_TCP | CSUM_UDP)
-#define ETHER_MIN_NOPAD (ETHER_MIN_LEN - ETHER_CRC_LEN) /* i.e., 60 */
+#define BGE_CSUM_FEATURES (CSUM_IP | CSUM_TCP | CSUM_UDP)
+#define ETHER_MIN_NOPAD (ETHER_MIN_LEN - ETHER_CRC_LEN) /* i.e., 60 */
MODULE_DEPEND(bge, pci, 1, 1, 1);
MODULE_DEPEND(bge, ether, 1, 1, 1);
@@ -286,11 +286,11 @@
{ 0, NULL }
};
-#define BGE_IS_JUMBO_CAPABLE(sc) ((sc)->bge_flags & BGE_FLAG_JUMBO)
-#define BGE_IS_5700_FAMILY(sc) ((sc)->bge_flags & BGE_FLAG_5700_FAMILY)
-#define BGE_IS_5705_PLUS(sc) ((sc)->bge_flags & BGE_FLAG_5705_PLUS)
-#define BGE_IS_5714_FAMILY(sc) ((sc)->bge_flags & BGE_FLAG_5714_FAMILY)
-#define BGE_IS_575X_PLUS(sc) ((sc)->bge_flags & BGE_FLAG_575X_PLUS)
+#define BGE_IS_JUMBO_CAPABLE(sc) ((sc)->bge_flags & BGE_FLAG_JUMBO)
+#define BGE_IS_5700_FAMILY(sc) ((sc)->bge_flags & BGE_FLAG_5700_FAMILY)
+#define BGE_IS_5705_PLUS(sc) ((sc)->bge_flags & BGE_FLAG_5705_PLUS)
+#define BGE_IS_5714_FAMILY(sc) ((sc)->bge_flags & BGE_FLAG_5714_FAMILY)
+#define BGE_IS_575X_PLUS(sc) ((sc)->bge_flags & BGE_FLAG_575X_PLUS)
const struct bge_revision * bge_lookup_rev(uint32_t);
const struct bge_vendor * bge_lookup_vendor(uint16_t);
@@ -359,8 +359,8 @@
static void bge_poll(struct ifnet *ifp, enum poll_cmd cmd, int count);
#endif
-#define BGE_RESET_START 1
-#define BGE_RESET_STOP 2
+#define BGE_RESET_START 1
+#define BGE_RESET_STOP 2
static void bge_sig_post_reset(struct bge_softc *, int);
static void bge_sig_legacy(struct bge_softc *, int);
static void bge_sig_pre_reset(struct bge_softc *, int);
@@ -1120,9 +1120,9 @@
/* Set up the PCI DMA control register. */
if (sc->bge_flags & BGE_FLAG_PCIE) {
/* PCI Express bus */
- dma_rw_ctl = BGE_PCI_READ_CMD|BGE_PCI_WRITE_CMD |
- (0xf << BGE_PCIDMARWCTL_RD_WAT_SHIFT) |
- (0x2 << BGE_PCIDMARWCTL_WR_WAT_SHIFT);
+ dma_rw_ctl = BGE_PCI_READ_CMD | BGE_PCI_WRITE_CMD |
+ BGE_PCIDMARWCTL_RD_WAT_SHIFT(0xf) |
+ BGE_PCIDMARWCTL_WR_WAT_SHIFT(0x2);
} else if (sc->bge_flags & BGE_FLAG_PCIX) {
/* PCI-X bus */
if (BGE_IS_5714_FAMILY(sc)) {
@@ -1140,14 +1140,14 @@
* The 5704 uses a different encoding of read/write
* watermarks.
*/
- dma_rw_ctl = BGE_PCI_READ_CMD|BGE_PCI_WRITE_CMD |
- (0x7 << BGE_PCIDMARWCTL_RD_WAT_SHIFT) |
- (0x3 << BGE_PCIDMARWCTL_WR_WAT_SHIFT);
+ dma_rw_ctl = BGE_PCI_READ_CMD | BGE_PCI_WRITE_CMD |
+ BGE_PCIDMARWCTL_RD_WAT_SHIFT(0x7) |
+ BGE_PCIDMARWCTL_WR_WAT_SHIFT(0x3);
else
- dma_rw_ctl = BGE_PCI_READ_CMD|BGE_PCI_WRITE_CMD |
- (0x3 << BGE_PCIDMARWCTL_RD_WAT_SHIFT) |
- (0x3 << BGE_PCIDMARWCTL_WR_WAT_SHIFT) |
- (0x0F);
+ dma_rw_ctl = BGE_PCI_READ_CMD | BGE_PCI_WRITE_CMD |
+ BGE_PCIDMARWCTL_RD_WAT_SHIFT(0x3) |
+ BGE_PCIDMARWCTL_WR_WAT_SHIFT(0x3) |
+ 0x0f;
/*
* 5703 and 5704 need ONEDMA_AT_ONCE as a workaround
@@ -1163,10 +1163,10 @@
}
} else
/* Conventional PCI bus */
- dma_rw_ctl = BGE_PCI_READ_CMD|BGE_PCI_WRITE_CMD |
- (0x7 << BGE_PCIDMARWCTL_RD_WAT_SHIFT) |
- (0x7 << BGE_PCIDMARWCTL_WR_WAT_SHIFT) |
- (0x0F);
+ dma_rw_ctl = BGE_PCI_READ_CMD | BGE_PCI_WRITE_CMD |
+ BGE_PCIDMARWCTL_RD_WAT_SHIFT(0x7) |
+ BGE_PCIDMARWCTL_WR_WAT_SHIFT(0x7) |
+ 0x0f;
if (sc->bge_asicrev == BGE_ASICREV_BCM5703 ||
sc->bge_asicrev == BGE_ASICREV_BCM5704 ||
@@ -1687,6 +1687,8 @@
device_set_desc_copy(dev, buf);
if (pci_get_subvendor(dev) == DELL_VENDORID)
sc->bge_flags |= BGE_FLAG_NO_3LED;
+ if (did == BCOM_DEVICEID_BCM5755M)
+ sc->bge_flags |= BGE_FLAG_ADJUST_TRIM;
return (0);
}
t++;
@@ -2214,12 +2216,16 @@
}
/* Set various bug flags. */
+ if (sc->bge_chipid == BGE_CHIPID_BCM5701_A0 ||
+ sc->bge_chipid == BGE_CHIPID_BCM5701_B0)
+ sc->bge_flags |= BGE_FLAG_CRC_BUG;
if (sc->bge_chiprev == BGE_CHIPREV_5703_AX ||
sc->bge_chiprev == BGE_CHIPREV_5704_AX)
sc->bge_flags |= BGE_FLAG_ADC_BUG;
if (sc->bge_chipid == BGE_CHIPID_BCM5704_A0)
sc->bge_flags |= BGE_FLAG_5704_A0_BUG;
- if (BGE_IS_5705_PLUS(sc)) {
+ if (BGE_IS_5705_PLUS(sc) &&
+ !(sc->bge_flags & BGE_FLAG_ADJUST_TRIM)) {
if (sc->bge_asicrev == BGE_ASICREV_BCM5755 ||
sc->bge_asicrev == BGE_ASICREV_BCM5787)
sc->bge_flags |= BGE_FLAG_JITTER_BUG;
@@ -3182,7 +3188,7 @@
stats = BGE_MEMWIN_START + BGE_STATS_BLOCK;
-#define READ_STAT(sc, stats, stat) \
+#define READ_STAT(sc, stats, stat) \
CSR_READ_4(sc, stats + offsetof(struct bge_stats, stat))
cnt = READ_STAT(sc, stats, txstats.etherStatsCollisions.bge_addr_lo);
@@ -3197,7 +3203,7 @@
ifp->if_oerrors += (uint32_t)(cnt - sc->bge_tx_discards);
sc->bge_tx_discards = cnt;
-#undef READ_STAT
>>> TRUNCATED FOR MAIL (1000 lines) <<<
More information about the p4-projects
mailing list