Date: Wed, 4 Nov 2009 16:29:22 GMT From: Alexander Motin <mav@FreeBSD.org> To: Perforce Change Reviews <perforce@freebsd.org> Subject: PERFORCE change 170179 for review Message-ID: <200911041629.nA4GTMpb051023@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
http://p4web.freebsd.org/chv.cgi?CH=170179 Change 170179 by mav@mav_mavbook on 2009/11/04 16:28:41 IFC Affected files ... .. //depot/projects/scottl-camlock/src/UPDATING#20 integrate .. //depot/projects/scottl-camlock/src/sbin/camcontrol/camcontrol.c#28 integrate .. //depot/projects/scottl-camlock/src/sbin/sysctl/sysctl.c#5 integrate .. //depot/projects/scottl-camlock/src/secure/usr.bin/bdes/bdes.c#3 integrate .. //depot/projects/scottl-camlock/src/share/man/man3/tree.3#3 integrate .. //depot/projects/scottl-camlock/src/sys/amd64/amd64/identcpu.c#17 integrate .. //depot/projects/scottl-camlock/src/sys/arm/arm/machdep.c#14 integrate .. //depot/projects/scottl-camlock/src/sys/arm/at91/at91_machdep.c#5 integrate .. //depot/projects/scottl-camlock/src/sys/arm/mv/mv_machdep.c#6 integrate .. //depot/projects/scottl-camlock/src/sys/arm/sa11x0/assabet_machdep.c#15 integrate .. //depot/projects/scottl-camlock/src/sys/cam/ata/ata_all.c#20 integrate .. //depot/projects/scottl-camlock/src/sys/cam/ata/ata_all.h#19 integrate .. //depot/projects/scottl-camlock/src/sys/cam/ata/ata_da.c#40 integrate .. //depot/projects/scottl-camlock/src/sys/cam/ata/ata_xpt.c#51 integrate .. //depot/projects/scottl-camlock/src/sys/cam/cam_periph.h#21 integrate .. //depot/projects/scottl-camlock/src/sys/cam/cam_xpt.c#121 integrate .. //depot/projects/scottl-camlock/src/sys/cam/scsi/scsi_da.c#52 integrate .. //depot/projects/scottl-camlock/src/sys/dev/fb/vesa.c#6 integrate .. //depot/projects/scottl-camlock/src/sys/dev/fb/vgareg.h#5 integrate .. //depot/projects/scottl-camlock/src/sys/dev/fdc/fdc.c#17 integrate .. //depot/projects/scottl-camlock/src/sys/dev/siis/siis.c#15 integrate .. //depot/projects/scottl-camlock/src/sys/dev/syscons/syscons.c#21 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/wlan/if_urtw.c#9 integrate .. //depot/projects/scottl-camlock/src/sys/i386/i386/identcpu.c#21 integrate .. //depot/projects/scottl-camlock/src/sys/isa/vga_isa.c#7 integrate .. //depot/projects/scottl-camlock/src/sys/kern/kern_idle.c#12 integrate .. //depot/projects/scottl-camlock/src/sys/kern/kern_intr.c#21 integrate .. //depot/projects/scottl-camlock/src/sys/kern/sched_4bsd.c#19 integrate .. //depot/projects/scottl-camlock/src/sys/kern/sched_ule.c#24 integrate .. //depot/projects/scottl-camlock/src/sys/kern/subr_log.c#6 integrate .. //depot/projects/scottl-camlock/src/sys/kern/subr_prf.c#14 integrate .. //depot/projects/scottl-camlock/src/sys/kern/uipc_syscalls.c#32 integrate .. //depot/projects/scottl-camlock/src/sys/kern/vfs_acl.c#8 integrate .. //depot/projects/scottl-camlock/src/sys/kern/vfs_default.c#19 integrate .. //depot/projects/scottl-camlock/src/sys/kern/vfs_vnops.c#23 integrate .. //depot/projects/scottl-camlock/src/sys/sys/ata.h#15 integrate .. //depot/projects/scottl-camlock/src/sys/sys/fbio.h#5 integrate .. //depot/projects/scottl-camlock/src/sys/sys/msgbuf.h#5 integrate .. //depot/projects/scottl-camlock/src/sys/sys/proc.h#27 integrate .. //depot/projects/scottl-camlock/src/sys/vm/vm_fault.c#26 integrate .. //depot/projects/scottl-camlock/src/sys/vm/vm_zeroidle.c#14 integrate Differences ... ==== //depot/projects/scottl-camlock/src/UPDATING#20 (text+ko) ==== @@ -537,6 +537,11 @@ # Map old usb library to new one for usb2 stack libusb-0.1.so.8 libusb20.so.1 +20090209: + All USB ethernet devices now attach as interfaces under the name ueN + (eg. ue0). This is to provide a predictable name as vendors often + change usb chipsets in a product without notice. + 20090203: The ichsmb(4) driver has been changed to require SMBus slave addresses be left-justified (xxxxxxx0b) rather than right-justified. @@ -1047,4 +1052,4 @@ Contact Warner Losh if you have any questions about your use of this document. -$FreeBSD: src/UPDATING,v 1.643 2009/10/26 09:16:08 mav Exp $ +$FreeBSD: src/UPDATING,v 1.644 2009/11/03 21:06:19 thompsa Exp $ ==== //depot/projects/scottl-camlock/src/sbin/camcontrol/camcontrol.c#28 (text+ko) ==== @@ -27,7 +27,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sbin/camcontrol/camcontrol.c,v 1.66 2009/10/31 10:47:47 mav Exp $"); +__FBSDID("$FreeBSD: src/sbin/camcontrol/camcontrol.c,v 1.67 2009/11/04 15:24:32 mav Exp $"); #include <sys/ioctl.h> #include <sys/stdint.h> ==== //depot/projects/scottl-camlock/src/sbin/sysctl/sysctl.c#5 (text+ko) ==== @@ -38,7 +38,7 @@ static char sccsid[] = "@(#)from: sysctl.c 8.1 (Berkeley) 6/6/93"; #endif static const char rcsid[] = - "$FreeBSD: src/sbin/sysctl/sysctl.c,v 1.91 2009/10/21 18:31:54 ed Exp $"; + "$FreeBSD: src/sbin/sysctl/sysctl.c,v 1.92 2009/11/03 11:41:21 ed Exp $"; #endif /* not lint */ #include <sys/param.h> @@ -419,14 +419,7 @@ warnx("T_dev_T %d != %d", l2, sizeof(*d)); return (1); } - if ((int)(*d) != -1) { - if (minor(*d) > 255 || minor(*d) < 0) - printf("{ major = %d, minor = 0x%x }", - major(*d), minor(*d)); - else - printf("{ major = %d, minor = %d }", - major(*d), minor(*d)); - } + printf("%s", devname(*d, S_IFCHR)); return (0); } ==== //depot/projects/scottl-camlock/src/secure/usr.bin/bdes/bdes.c#3 (text+ko) ==== @@ -81,7 +81,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/secure/usr.bin/bdes/bdes.c,v 1.10 2008/02/19 07:09:18 ru Exp $"); +__FBSDID("$FreeBSD: src/secure/usr.bin/bdes/bdes.c,v 1.11 2009/11/03 18:40:42 jhb Exp $"); #include <sys/types.h> @@ -170,11 +170,11 @@ int i; /* counter in a for loop */ char *p; /* used to obtain the key */ DES_cblock msgbuf; /* I/O buffer */ - int kflag; /* command-line encryptiooon key */ + int kflag; /* command-line encryption key */ setproctitle("-"); /* Hide command-line arguments */ - /* initialize the initialization vctor */ + /* initialize the initialization vector */ MEMZERO(ivec, 8); /* process the argument list */ ==== //depot/projects/scottl-camlock/src/share/man/man3/tree.3#3 (text+ko) ==== @@ -28,7 +28,7 @@ .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .\" -.\" $FreeBSD: src/share/man/man3/tree.3,v 1.7 2007/12/28 07:03:26 jasone Exp $ +.\" $FreeBSD: src/share/man/man3/tree.3,v 1.8 2009/11/04 04:12:56 benno Exp $ .\" .Dd December 27, 2007 .Dt TREE 3 @@ -384,7 +384,7 @@ Finally, the .Fa CMP -argument is the name of a function used to compare tree noded +argument is the name of a function used to compare tree nodes with each other. The function takes two arguments of type .Vt "struct TYPE *" . ==== //depot/projects/scottl-camlock/src/sys/amd64/amd64/identcpu.c#17 (text+ko) ==== @@ -39,7 +39,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/amd64/amd64/identcpu.c,v 1.175 2009/09/10 17:27:36 jkim Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/identcpu.c,v 1.176 2009/11/04 01:32:59 attilio Exp $"); #include "opt_cpu.h" @@ -607,6 +607,24 @@ printf(", %d lines/tag", (regs[2] >> 8) & 0x0f); print_AMD_l2_assoc((regs[2] >> 12) & 0x0f); } + + /* + * Opteron Rev E shows a bug as in very rare occasions a read memory + * barrier is not performed as expected if it is followed by a + * non-atomic read-modify-write instruction. + * As long as that bug pops up very rarely (intensive machine usage + * on other operating systems generally generates one unexplainable + * crash any 2 months) and as long as a model specific fix would be + * impratical at this stage, print out a warning string if the broken + * model and family are identified. + */ + if (CPUID_TO_FAMILY(cpu_id) == 0xf && CPUID_TO_MODEL(cpu_id) >= 0x20 && + CPUID_TO_MODEL(cpu_id) <= 0x3f) { + printf("WARNING: This architecture revision has known SMP " + "hardware bugs which may cause random instability\n"); + printf("WARNING: For details see: " + "http://bugzilla.kernel.org/show_bug.cgi?id=11305\n"); + } } static void ==== //depot/projects/scottl-camlock/src/sys/arm/arm/machdep.c#14 (text+ko) ==== @@ -46,7 +46,7 @@ #include "opt_ddb.h" #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/arm/arm/machdep.c,v 1.34 2009/10/27 10:47:58 kib Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/arm/machdep.c,v 1.35 2009/11/04 04:41:03 alc Exp $"); #include <sys/param.h> #include <sys/proc.h> @@ -77,7 +77,6 @@ #include <vm/vm_object.h> #include <vm/vm_page.h> #include <vm/vm_pager.h> -#include <vm/vnode_pager.h> #include <machine/armreg.h> #include <machine/cpu.h> ==== //depot/projects/scottl-camlock/src/sys/arm/at91/at91_machdep.c#5 (text+ko) ==== @@ -46,7 +46,7 @@ #include "opt_msgbuf.h" #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/arm/at91/at91_machdep.c,v 1.6 2009/07/01 20:07:44 raj Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/at91/at91_machdep.c,v 1.7 2009/11/04 04:41:03 alc Exp $"); #define _ARM32_BUS_DMA_PRIVATE #include <sys/param.h> @@ -79,7 +79,6 @@ #include <vm/vm_page.h> #include <vm/vm_pager.h> #include <vm/vm_map.h> -#include <vm/vnode_pager.h> #include <machine/pmap.h> #include <machine/vmparam.h> #include <machine/pcb.h> ==== //depot/projects/scottl-camlock/src/sys/arm/mv/mv_machdep.c#6 (text+ko) ==== @@ -39,7 +39,7 @@ #include "opt_ddb.h" #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/arm/mv/mv_machdep.c,v 1.9 2009/10/21 18:44:00 marcel Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/mv/mv_machdep.c,v 1.10 2009/11/04 04:41:03 alc Exp $"); #define _ARM32_BUS_DMA_PRIVATE #include <sys/param.h> @@ -72,7 +72,6 @@ #include <vm/vm_page.h> #include <vm/vm_pager.h> #include <vm/vm_map.h> -#include <vm/vnode_pager.h> #include <machine/pte.h> #include <machine/pmap.h> #include <machine/vmparam.h> ==== //depot/projects/scottl-camlock/src/sys/arm/sa11x0/assabet_machdep.c#15 (text+ko) ==== @@ -47,7 +47,7 @@ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/arm/sa11x0/assabet_machdep.c,v 1.30 2009/07/01 20:07:44 raj Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/sa11x0/assabet_machdep.c,v 1.31 2009/11/04 04:41:03 alc Exp $"); #include "opt_md.h" @@ -82,7 +82,6 @@ #include <vm/vm_page.h> #include <vm/vm_pager.h> #include <vm/vm_map.h> -#include <vm/vnode_pager.h> #include <machine/pmap.h> #include <machine/vmparam.h> #include <machine/pcb.h> ==== //depot/projects/scottl-camlock/src/sys/cam/ata/ata_all.c#20 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/cam/ata/ata_all.c,v 1.4 2009/11/03 11:19:05 mav Exp $"); +__FBSDID("$FreeBSD: src/sys/cam/ata/ata_all.c,v 1.6 2009/11/04 16:16:50 mav Exp $"); #include <sys/param.h> @@ -378,30 +378,24 @@ ata_pm_read_cmd(struct ccb_ataio *ataio, int reg, int port) { bzero(&ataio->cmd, sizeof(ataio->cmd)); - ataio->cmd.flags = CAM_ATAIO_48BIT | CAM_ATAIO_NEEDRESULT; + ataio->cmd.flags = CAM_ATAIO_NEEDRESULT; ataio->cmd.command = ATA_READ_PM; ataio->cmd.features = reg; - ataio->cmd.features_exp = reg >> 8; ataio->cmd.device = port & 0x0f; } void -ata_pm_write_cmd(struct ccb_ataio *ataio, int reg, int port, uint64_t val) +ata_pm_write_cmd(struct ccb_ataio *ataio, int reg, int port, uint32_t val) { bzero(&ataio->cmd, sizeof(ataio->cmd)); - ataio->cmd.flags = CAM_ATAIO_48BIT | CAM_ATAIO_NEEDRESULT; + ataio->cmd.flags = 0; ataio->cmd.command = ATA_WRITE_PM; ataio->cmd.features = reg; + ataio->cmd.sector_count = val; ataio->cmd.lba_low = val >> 8; ataio->cmd.lba_mid = val >> 16; ataio->cmd.lba_high = val >> 24; ataio->cmd.device = port & 0x0f; - ataio->cmd.lba_low_exp = val >> 40; - ataio->cmd.lba_mid_exp = val >> 48; - ataio->cmd.lba_high_exp = val >> 56; - ataio->cmd.features_exp = reg >> 8; - ataio->cmd.sector_count = val; - ataio->cmd.sector_count_exp = val >> 32; } void ==== //depot/projects/scottl-camlock/src/sys/cam/ata/ata_all.h#19 (text+ko) ==== @@ -23,7 +23,7 @@ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * - * $FreeBSD: src/sys/cam/ata/ata_all.h,v 1.3 2009/11/03 11:19:05 mav Exp $ + * $FreeBSD: src/sys/cam/ata/ata_all.h,v 1.4 2009/11/04 15:24:32 mav Exp $ */ #ifndef CAM_ATA_ALL_H ==== //depot/projects/scottl-camlock/src/sys/cam/ata/ata_da.c#40 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/cam/ata/ata_da.c,v 1.8 2009/10/31 10:43:38 mav Exp $"); +__FBSDID("$FreeBSD: src/sys/cam/ata/ata_da.c,v 1.10 2009/11/04 15:40:19 mav Exp $"); #include <sys/param.h> ==== //depot/projects/scottl-camlock/src/sys/cam/ata/ata_xpt.c#51 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/cam/ata/ata_xpt.c,v 1.11 2009/11/01 11:31:06 mav Exp $"); +__FBSDID("$FreeBSD: src/sys/cam/ata/ata_xpt.c,v 1.12 2009/11/04 15:24:32 mav Exp $"); #include <sys/param.h> #include <sys/bus.h> ==== //depot/projects/scottl-camlock/src/sys/cam/cam_periph.h#21 (text+ko) ==== @@ -25,7 +25,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/cam/cam_periph.h,v 1.21 2009/10/31 10:43:38 mav Exp $ + * $FreeBSD: src/sys/cam/cam_periph.h,v 1.22 2009/11/04 15:40:19 mav Exp $ */ #ifndef _CAM_CAM_PERIPH_H ==== //depot/projects/scottl-camlock/src/sys/cam/cam_xpt.c#121 (text+ko) ==== @@ -28,7 +28,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/cam/cam_xpt.c,v 1.232 2009/11/02 08:31:00 mav Exp $"); +__FBSDID("$FreeBSD: src/sys/cam/cam_xpt.c,v 1.233 2009/11/04 15:40:19 mav Exp $"); #include <sys/param.h> #include <sys/bus.h> ==== //depot/projects/scottl-camlock/src/sys/cam/scsi/scsi_da.c#52 (text+ko) ==== @@ -27,7 +27,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/cam/scsi/scsi_da.c,v 1.242 2009/11/02 23:30:15 thompsa Exp $"); +__FBSDID("$FreeBSD: src/sys/cam/scsi/scsi_da.c,v 1.243 2009/11/04 15:40:19 mav Exp $"); #include <sys/param.h> ==== //depot/projects/scottl-camlock/src/sys/dev/fb/vesa.c#6 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/dev/fb/vesa.c,v 1.14 2009/10/23 19:02:53 jkim Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/fb/vesa.c,v 1.16 2009/11/04 01:00:28 jkim Exp $"); #include "opt_vga.h" #include "opt_vesa.h" @@ -174,10 +174,8 @@ u_char *b, int bits); static int vesa_bios_load_palette(int start, int colors, u_char *palette, int bits); -#ifdef notyet static int vesa_bios_load_palette2(int start, int colors, u_char *r, u_char *g, u_char *b, int bits); -#endif #define STATE_SIZE 0 #define STATE_SAVE 1 #define STATE_LOAD 2 @@ -415,9 +413,9 @@ bits = 8 - bits; for (i = 0; i < colors; ++i) { - palette[i*3] = p[i*4 + 2] << bits; - palette[i*3 + 1] = p[i*4 + 1] << bits; - palette[i*3 + 2] = p[i*4] << bits; + palette[i * 3] = p[i * 4 + 2] << bits; + palette[i * 3 + 1] = p[i * 4 + 1] << bits; + palette[i * 3 + 2] = p[i * 4] << bits; } x86bios_free(p, colors * 4); @@ -455,9 +453,9 @@ bits = 8 - bits; for (i = 0; i < colors; ++i) { - r[i] = p[i*4 + 2] << bits; - g[i] = p[i*4 + 1] << bits; - b[i] = p[i*4] << bits; + r[i] = p[i * 4 + 2] << bits; + g[i] = p[i * 4 + 1] << bits; + b[i] = p[i * 4] << bits; } x86bios_free(p, colors * 4); @@ -487,10 +485,10 @@ bits = 8 - bits; for (i = 0; i < colors; ++i) { - p[i*4] = palette[i*3 + 2] >> bits; - p[i*4 + 1] = palette[i*3 + 1] >> bits; - p[i*4 + 2] = palette[i*3] >> bits; - p[i*4 + 3] = 0; + p[i * 4] = palette[i * 3 + 2] >> bits; + p[i * 4 + 1] = palette[i * 3 + 1] >> bits; + p[i * 4 + 2] = palette[i * 3] >> bits; + p[i * 4 + 3] = 0; } x86bios_intr(®s, 0x10); x86bios_free(p, colors * 4); @@ -498,7 +496,6 @@ return (regs.R_AX != 0x004f); } -#ifdef notyet static int vesa_bios_load_palette2(int start, int colors, u_char *r, u_char *g, u_char *b, int bits) @@ -523,17 +520,16 @@ bits = 8 - bits; for (i = 0; i < colors; ++i) { - p[i*4] = b[i] >> bits; - p[i*4 + 1] = g[i] >> bits; - p[i*4 + 2] = r[i] >> bits; - p[i*4 + 3] = 0; + p[i * 4] = b[i] >> bits; + p[i * 4 + 1] = g[i] >> bits; + p[i * 4 + 2] = r[i] >> bits; + p[i * 4 + 3] = 0; } x86bios_intr(®s, 0x10); x86bios_free(p, colors * 4); return (regs.R_AX != 0x004f); } -#endif static ssize_t vesa_bios_state_buf_size(void) @@ -702,6 +698,7 @@ { V_MODECOLOR, V_INFO_COLOR, 0 }, { V_MODEGRAPHICS, V_INFO_GRAPHICS, 0 }, { V_MODELFB, V_INFO_LINEAR, 0 }, + { V_MODENONVGA, V_INFO_NONVGA, 0 }, }; int flags; int i; @@ -1275,7 +1272,8 @@ * the new mode correctly. */ if (VESA_MODE(adp->va_mode)) { - if ((*prevvidsw->get_info)(adp, mode, &info) == 0) { + if (!VESA_MODE(mode) && + (*prevvidsw->get_info)(adp, mode, &info) == 0) { int10_set_mode(adp->va_initial_bios_mode); if (adp->va_info.vi_flags & V_INFO_LINEAR) vesa_unmap_buffer(adp->va_buffer, @@ -1288,7 +1286,7 @@ } /* we may not need to handle this mode after all... */ - if ((*prevvidsw->set_mode)(adp, mode) == 0) + if (!VESA_MODE(mode) && (*prevvidsw->set_mode)(adp, mode) == 0) return (0); /* is the new mode supported? */ @@ -1306,6 +1304,9 @@ if (vesa_bios_set_mode(mode | ((info.vi_flags & V_INFO_LINEAR) ? 0x4000 : 0))) return (1); + if ((vesa_adp_info->v_flags & V_DAC8) != 0) + vesa_bios_set_dac(8); + if (adp->va_info.vi_flags & V_INFO_LINEAR) vesa_unmap_buffer(adp->va_buffer, vesa_adp_info->v_memsize*64*1024); @@ -1382,17 +1383,11 @@ vesa_save_palette(video_adapter_t *adp, u_char *palette) { int bits; - int error; - if ((adp == vesa_adp) && (vesa_adp_info->v_flags & V_DAC8) - && VESA_MODE(adp->va_mode)) { - bits = vesa_bios_get_dac(); - error = vesa_bios_save_palette(0, 256, palette, bits); - if (error == 0) - return (0); - if (bits != 6) - return (error); - } + if ((adp == vesa_adp) && + (adp->va_info.vi_flags & V_INFO_NONVGA) != 0 && + (bits = vesa_bios_get_dac()) >= 6) + return (vesa_bios_save_palette(0, 256, palette, bits)); return ((*prevvidsw->save_palette)(adp, palette)); } @@ -1400,19 +1395,12 @@ static int vesa_load_palette(video_adapter_t *adp, u_char *palette) { -#ifdef notyet int bits; - int error; - if ((adp == vesa_adp) && (vesa_adp_info->v_flags & V_DAC8) - && VESA_MODE(adp->va_mode) && ((bits = vesa_bios_set_dac(8)) > 6)) { - error = vesa_bios_load_palette(0, 256, palette, bits); - if (error == 0) - return (0); - if (vesa_bios_set_dac(6) != 6) - return (1); - } -#endif /* notyet */ + if ((adp == vesa_adp) && + (adp->va_info.vi_flags & V_INFO_NONVGA) != 0 && + (bits = vesa_bios_get_dac()) >= 6) + return (vesa_bios_load_palette(0, 256, palette, bits)); return ((*prevvidsw->load_palette)(adp, palette)); } @@ -1482,6 +1470,8 @@ (flags & V_INFO_LINEAR) != 0) mode |= 0x4000; (void)vesa_bios_set_mode(mode); + if ((vesa_adp_info->v_flags & V_DAC8) != 0) + (void)vesa_bios_set_dac(8); (void)(*vidsw[adp->va_index]->set_hw_cursor)(adp, -1, -1); } @@ -1637,14 +1627,11 @@ return (1); if ((base + count) > 256) return (1); - if (!(vesa_adp_info->v_flags & V_DAC8) || !VESA_MODE(adp->va_mode)) + if ((adp->va_info.vi_flags & V_INFO_NONVGA) == 0 || + (bits = vesa_bios_get_dac()) < 6) return (1); - bits = vesa_bios_get_dac(); - if (bits <= 6) - return (1); - - r = malloc(count*3, M_DEVBUF, M_WAITOK); + r = malloc(count * 3, M_DEVBUF, M_WAITOK); g = r + count; b = g + count; error = vesa_bios_save_palette2(base, count, r, g, b, bits); @@ -1659,7 +1646,6 @@ } free(r, M_DEVBUF); - /* if error && bits != 6 at this point, we are in trouble... XXX */ return (error); } @@ -1667,8 +1653,6 @@ set_palette(video_adapter_t *adp, int base, int count, u_char *red, u_char *green, u_char *blue, u_char *trans) { - return (1); -#ifdef notyet u_char *r; u_char *g; u_char *b; @@ -1677,11 +1661,11 @@ if ((base < 0) || (base >= 256) || (base + count > 256)) return (1); - if (!(vesa_adp_info->v_flags & V_DAC8) || !VESA_MODE(adp->va_mode) - || ((bits = vesa_bios_set_dac(8)) <= 6)) + if ((adp->va_info.vi_flags & V_INFO_NONVGA) == 0 || + (bits = vesa_bios_get_dac()) < 6) return (1); - r = malloc(count*3, M_DEVBUF, M_WAITOK); + r = malloc(count * 3, M_DEVBUF, M_WAITOK); g = r + count; b = g + count; copyin(red, r, count); @@ -1690,13 +1674,8 @@ error = vesa_bios_load_palette2(base, count, r, g, b, bits); free(r, M_DEVBUF); - if (error == 0) - return (0); - /* if the following call fails, we are in trouble... XXX */ - vesa_bios_set_dac(6); - return (1); -#endif /* notyet */ + return (error); } static int ==== //depot/projects/scottl-camlock/src/sys/dev/fb/vgareg.h#5 (text+ko) ==== @@ -23,7 +23,7 @@ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * - * $FreeBSD: src/sys/dev/fb/vgareg.h,v 1.9 2008/09/27 08:51:18 ed Exp $ + * $FreeBSD: src/sys/dev/fb/vgareg.h,v 1.10 2009/11/04 00:58:20 jkim Exp $ */ #ifndef _DEV_FB_VGAREG_H_ @@ -70,6 +70,7 @@ typedef struct vga_softc { struct video_adapter *adp; void *state_buf; + void *pal_buf; #ifdef FB_INSTALL_CDEV genfb_softc_t gensc; #endif ==== //depot/projects/scottl-camlock/src/sys/dev/fdc/fdc.c#17 (text+ko) ==== @@ -51,7 +51,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/dev/fdc/fdc.c,v 1.324 2009/10/27 17:14:22 jh Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/fdc/fdc.c,v 1.325 2009/11/03 19:05:05 jh Exp $"); #include "opt_fdc.h" @@ -1734,6 +1734,10 @@ if ((error = bus_generic_detach(dev))) return (error); + if (fdc->fdc_intr) + bus_teardown_intr(dev, fdc->res_irq, fdc->fdc_intr); + fdc->fdc_intr = NULL; + /* kill worker thread */ mtx_lock(&fdc->fdc_mtx); fdc->flags |= FDC_KTHREAD_EXIT; @@ -2031,15 +2035,22 @@ return (0); } +static void +fd_detach_geom(void *arg, int flag) +{ + struct fd_data *fd = arg; + + g_topology_assert(); + g_wither_geom(fd->fd_geom, ENXIO); +} + static int fd_detach(device_t dev) { struct fd_data *fd; fd = device_get_softc(dev); - g_topology_lock(); - g_wither_geom(fd->fd_geom, ENXIO); - g_topology_unlock(); + g_waitfor_event(fd_detach_geom, fd, M_WAITOK, NULL); while (device_get_state(dev) == DS_BUSY) tsleep(fd, PZERO, "fdd", hz/10); callout_drain(&fd->toffhandle); ==== //depot/projects/scottl-camlock/src/sys/dev/siis/siis.c#15 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/dev/siis/siis.c,v 1.7 2009/11/03 12:03:13 mav Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/siis/siis.c,v 1.8 2009/11/04 15:10:46 mav Exp $"); #include <sys/param.h> #include <sys/module.h> ==== //depot/projects/scottl-camlock/src/sys/dev/syscons/syscons.c#21 (text+ko) ==== @@ -30,7 +30,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/dev/syscons/syscons.c,v 1.476 2009/10/23 18:53:21 jkim Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/syscons/syscons.c,v 1.477 2009/11/03 20:22:09 jkim Exp $"); #include "opt_compat.h" #include "opt_syscons.h" @@ -414,6 +414,9 @@ #endif sc_set_graphics_mode(scp, NULL, vmode); sc_set_pixel_mode(scp, NULL, 0, 0, 16, 8); +#ifndef SC_NO_PALETTE_LOADING + vidd_save_palette(sc->adp, sc->palette); +#endif sc->initial_mode = vmode; #ifdef DEV_SPLASH /* put up the splash again! */ ==== //depot/projects/scottl-camlock/src/sys/dev/usb/wlan/if_urtw.c#9 (text+ko) ==== @@ -15,7 +15,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/dev/usb/wlan/if_urtw.c,v 1.13 2009/10/18 00:11:49 weongyo Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/usb/wlan/if_urtw.c,v 1.14 2009/11/03 21:47:07 weongyo Exp $"); #include <sys/param.h> #include <sys/sockio.h> #include <sys/sysctl.h> @@ -1688,7 +1688,7 @@ ieee80211_radiotap_tx(vap, m0); } - if ((wh->i_fc[10] & IEEE80211_FC0_TYPE_MASK) == IEEE80211_FC0_TYPE_MGT || + if ((wh->i_fc[0] & IEEE80211_FC0_TYPE_MASK) == IEEE80211_FC0_TYPE_MGT || (wh->i_fc[0] & IEEE80211_FC0_TYPE_MASK) == IEEE80211_FC0_TYPE_CTL) { tp = &vap->iv_txparms[ieee80211_chan2mode(ic->ic_curchan)]; rate = tp->mgmtrate; ==== //depot/projects/scottl-camlock/src/sys/i386/i386/identcpu.c#21 (text+ko) ==== @@ -39,7 +39,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/i386/i386/identcpu.c,v 1.203 2009/09/10 17:27:36 jkim Exp $"); +__FBSDID("$FreeBSD: src/sys/i386/i386/identcpu.c,v 1.204 2009/11/04 01:32:59 attilio Exp $"); #include "opt_cpu.h" @@ -1303,6 +1303,24 @@ (amd_whcr & 0x0100) ? "Enable" : "Disable"); } } + + /* + * Opteron Rev E shows a bug as in very rare occasions a read memory + * barrier is not performed as expected if it is followed by a + * non-atomic read-modify-write instruction. + * As long as that bug pops up very rarely (intensive machine usage + * on other operating systems generally generates one unexplainable + * crash any 2 months) and as long as a model specific fix would be + * impratical at this stage, print out a warning string if the broken + * model and family are identified. + */ + if (CPUID_TO_FAMILY(cpu_id) == 0xf && CPUID_TO_MODEL(cpu_id) >= 0x20 && + CPUID_TO_MODEL(cpu_id) <= 0x3f) { + printf("WARNING: This architecture revision has known SMP " + "hardware bugs which may cause random instability\n"); + printf("WARNING: For details see: " + "http://bugzilla.kernel.org/show_bug.cgi?id=11305\n"); + } } static void ==== //depot/projects/scottl-camlock/src/sys/isa/vga_isa.c#7 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/isa/vga_isa.c,v 1.35 2007/12/29 23:26:59 wkoszek Exp $"); +__FBSDID("$FreeBSD: src/sys/isa/vga_isa.c,v 1.36 2009/11/04 00:58:20 jkim Exp $"); #include "opt_vga.h" #include "opt_fb.h" @@ -179,17 +179,33 @@ nbytes = vidd_save_state(sc->adp, NULL, 0); if (nbytes <= 0) return (0); - sc->state_buf = malloc(nbytes, M_TEMP, M_NOWAIT | M_ZERO); - if (sc->state_buf == NULL) - return (0); - if (bootverbose) - device_printf(dev, "saving %d bytes of video state\n", nbytes); - if (vidd_save_state(sc->adp, sc->state_buf, nbytes) != 0) { - device_printf(dev, "failed to save state (nbytes=%d)\n", - nbytes); - free(sc->state_buf, M_TEMP); - sc->state_buf = NULL; + sc->state_buf = malloc(nbytes, M_TEMP, M_NOWAIT); + if (sc->state_buf != NULL) { + if (bootverbose) + device_printf(dev, "saving %d bytes of video state\n", + nbytes); + if (vidd_save_state(sc->adp, sc->state_buf, nbytes) != 0) { + device_printf(dev, "failed to save state (nbytes=%d)\n", + nbytes); + free(sc->state_buf, M_TEMP); + sc->state_buf = NULL; + } + } + + /* Save the color palette across the suspend. */ + if (sc->pal_buf != NULL) + free(sc->pal_buf, M_TEMP); + sc->pal_buf = malloc(256 * 3, M_TEMP, M_NOWAIT); + if (sc->pal_buf != NULL) { + if (bootverbose) + device_printf(dev, "saving color palette\n"); + if (vidd_save_palette(sc->adp, sc->pal_buf) != 0) { + device_printf(dev, "failed to save palette\n"); + free(sc->pal_buf, M_TEMP); + sc->pal_buf = NULL; + } } + return (0); } @@ -205,6 +221,12 @@ free(sc->state_buf, M_TEMP); sc->state_buf = NULL; } + if (sc->pal_buf != NULL) { + if (vidd_load_palette(sc->adp, sc->pal_buf) != 0) + device_printf(dev, "failed to reload palette\n"); + free(sc->pal_buf, M_TEMP); + sc->pal_buf = NULL; + } bus_generic_resume(dev); return 0; ==== //depot/projects/scottl-camlock/src/sys/kern/kern_idle.c#12 (text+ko) ==== @@ -24,7 +24,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/kern/kern_idle.c,v 1.54 2008/03/16 10:58:05 rwatson Exp $"); +__FBSDID("$FreeBSD: src/sys/kern/kern_idle.c,v 1.55 2009/11/03 16:46:52 attilio Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -74,10 +74,9 @@ if (error) panic("idle_setup: kproc_create error %d\n", error); - p->p_flag |= P_NOLOAD; thread_lock(td); TD_SET_CAN_RUN(td); - td->td_flags |= TDF_IDLETD; + td->td_flags |= TDF_IDLETD | TDF_NOLOAD; sched_class(td, PRI_IDLE); sched_prio(td, PRI_MAX_IDLE); thread_unlock(td); ==== //depot/projects/scottl-camlock/src/sys/kern/kern_intr.c#21 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/kern/kern_intr.c,v 1.174 2009/10/15 18:51:19 jhb Exp $"); +__FBSDID("$FreeBSD: src/sys/kern/kern_intr.c,v 1.175 2009/11/03 16:46:52 attilio Exp $"); #include "opt_ddb.h" @@ -1061,6 +1061,7 @@ swi_add(struct intr_event **eventp, const char *name, driver_intr_t handler, void *arg, int pri, enum intr_type flags, void **cookiep) { + struct thread *td; struct intr_event *ie; int error; @@ -1085,11 +1086,10 @@ if (error) return (error); if (pri == SWI_CLOCK) { - struct proc *p; - p = ie->ie_thread->it_thread->td_proc; - PROC_LOCK(p); - p->p_flag |= P_NOLOAD; - PROC_UNLOCK(p); + td = ie->ie_thread->it_thread; + thread_lock(td); + td->td_flags |= TDF_NOLOAD; + thread_unlock(td); } return (0); } ==== //depot/projects/scottl-camlock/src/sys/kern/sched_4bsd.c#19 (text+ko) ==== @@ -33,7 +33,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/kern/sched_4bsd.c,v 1.131 2009/01/25 07:35:10 jeff Exp $"); +__FBSDID("$FreeBSD: src/sys/kern/sched_4bsd.c,v 1.132 2009/11/03 16:46:52 attilio Exp $"); #include "opt_hwpmc_hooks.h" #include "opt_sched.h" @@ -728,10 +728,10 @@ thread_lock(td); td->td_estcpu = ESTCPULIM(td->td_estcpu + child->td_estcpu); thread_unlock(td); - mtx_lock_spin(&sched_lock); - if ((child->td_proc->p_flag & P_NOLOAD) == 0) + thread_lock(child); + if ((child->td_flags & TDF_NOLOAD) == 0) sched_load_rem(); - mtx_unlock_spin(&sched_lock); + thread_unlock(child); } void @@ -937,7 +937,7 @@ thread_unlock(td); } - if ((p->p_flag & P_NOLOAD) == 0) + if ((td->td_flags & TDF_NOLOAD) == 0) sched_load_rem(); if (newtd) @@ -980,7 +980,7 @@ ("trying to run inhibited thread")); newtd->td_flags |= TDF_DIDRUN; TD_SET_RUNNING(newtd); - if ((newtd->td_proc->p_flag & P_NOLOAD) == 0) + if ((newtd->td_flags & TDF_NOLOAD) == 0) sched_load_add(); } else { newtd = choosethread(); @@ -1289,7 +1289,7 @@ } } - if ((td->td_proc->p_flag & P_NOLOAD) == 0) + if ((td->td_flags & TDF_NOLOAD) == 0) sched_load_add(); runq_add(ts->ts_runq, td, flags); if (cpu != NOCPU) @@ -1338,7 +1338,7 @@ if (maybe_preempt(td)) return; } - if ((td->td_proc->p_flag & P_NOLOAD) == 0) + if ((td->td_flags & TDF_NOLOAD) == 0) sched_load_add(); runq_add(ts->ts_runq, td, flags); maybe_resched(td); @@ -1360,7 +1360,7 @@ "prio:%d", td->td_priority, KTR_ATTR_LINKED, sched_tdname(curthread)); >>> TRUNCATED FOR MAIL (1000 lines) <<<
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200911041629.nA4GTMpb051023>