svn commit: r264252 - head/sys/dev/ath
Author: adrian Date: Tue Apr 8 07:00:43 2014 New Revision: 264252 URL: http://svnweb.freebsd.org/changeset/base/264252 Log: Don't resume a TID on each filtered frame completion - only do it if we did suspend it. The whole suspend/resume TID queue thing is supposed to be a matched reference count - a subsystem (eg addba negotiation, BAR transmission, filtered frames, etc) is supposed to call pause() once and then resume() once. ath_tx_tid_filt_comp_complete() is called upon the completion of any filtered frame, regardless of whether the driver had aleady seen a filtered frame and called pause(). So only call resume() if tid->isfiltered = 1, which indicates that we had called pause() once. This fixes a seemingly whacked and different problem - traffic hangs. What was actually going on: * There'd be some marginal link with crappy behaviour, causing filtered frames and BAR TXing to occur; * A BAR TX would occur, setting the new BAW (block-ack window) to seqno n; * .. and pause() would be called, blocking further transmission; * A filtered frame completion would occur from the hardware, but with tid->isfiltered = 0 which indiciates we haven't actually marked the queue yet as filtered; * ath_tx_tid_filt_comp_complete() would call resume(), continuing transmission; * Some frames would be queued to the hardware, since the TID is now no longer paused; * .. and if some make it out and ACked successfully, the new BAW may be seqno n+1 or more; * .. then the BAR TX completes and sets the new seqno back to n. At this point the BAW tracking would be loopy because the BAW start was modified but the BAW ring buffer wasn't updated in lock step. Tested: * Routerstation Pro + AR9220 AP Modified: head/sys/dev/ath/if_ath_tx.c Modified: head/sys/dev/ath/if_ath_tx.c == --- head/sys/dev/ath/if_ath_tx.cTue Apr 8 04:05:04 2014 (r264251) +++ head/sys/dev/ath/if_ath_tx.cTue Apr 8 07:00:43 2014 (r264252) @@ -3357,6 +3357,7 @@ static void ath_tx_tid_filt_comp_complete(struct ath_softc *sc, struct ath_tid *tid) { struct ath_buf *bf; + int do_resume = 0; ATH_TX_LOCK_ASSERT(sc); @@ -3365,7 +3366,11 @@ ath_tx_tid_filt_comp_complete(struct ath DPRINTF(sc, ATH_DEBUG_SW_TX_FILT, "%s: hwq=0, transition back\n", __func__); - tid->isfiltered = 0; + if (tid->isfiltered == 1) { + tid->isfiltered = 0; + do_resume = 1; + } + /* XXX ath_tx_tid_resume() also calls ath_tx_set_clrdmask()! */ ath_tx_set_clrdmask(sc, tid->an); @@ -3375,7 +3380,8 @@ ath_tx_tid_filt_comp_complete(struct ath ATH_TID_INSERT_HEAD(tid, bf, bf_list); } - ath_tx_tid_resume(sc, tid); + if (do_resume) + ath_tx_tid_resume(sc, tid); } /* ___ svn-src-head@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-head To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"
svn commit: r264253 - head/sys/dev/ath
Author: adrian Date: Tue Apr 8 07:01:27 2014 New Revision: 264253 URL: http://svnweb.freebsd.org/changeset/base/264253 Log: Add a comment explaining the obvious. Modified: head/sys/dev/ath/if_ath_tx.c Modified: head/sys/dev/ath/if_ath_tx.c == --- head/sys/dev/ath/if_ath_tx.cTue Apr 8 07:00:43 2014 (r264252) +++ head/sys/dev/ath/if_ath_tx.cTue Apr 8 07:01:27 2014 (r264253) @@ -3380,6 +3380,7 @@ ath_tx_tid_filt_comp_complete(struct ath ATH_TID_INSERT_HEAD(tid, bf, bf_list); } + /* And only resume if we had paused before */ if (do_resume) ath_tx_tid_resume(sc, tid); } ___ svn-src-head@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-head To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"
svn commit: r264254 - head/sys/dev/ath
Author: adrian Date: Tue Apr 8 07:08:59 2014 New Revision: 264254 URL: http://svnweb.freebsd.org/changeset/base/264254 Log: Correct the actual definition of ath_tx_tid_filt_comp_single() to match how it's used. This is another bug that led to aggregate traffic hanging because the BAW tracking stopped being accurate. In this instance, a filtered frame that exceeded retries would return a non-error, which would mean the caller would never remove it from the BAW. But it wouldn't be added to the filtered list, so it would be lost forever. There'd thus be a hole in the BAW that would never get transmitted and this leads to a traffic hang. Tested: * Routerstation Pro, AR9220 AP Modified: head/sys/dev/ath/if_ath_tx.c Modified: head/sys/dev/ath/if_ath_tx.c == --- head/sys/dev/ath/if_ath_tx.cTue Apr 8 07:01:27 2014 (r264253) +++ head/sys/dev/ath/if_ath_tx.cTue Apr 8 07:08:59 2014 (r264254) @@ -3388,10 +3388,13 @@ ath_tx_tid_filt_comp_complete(struct ath /* * Called when a single (aggregate or otherwise) frame is completed. * - * Returns 1 if the buffer could be added to the filtered list - * (cloned or otherwise), 0 if the buffer couldn't be added to the + * Returns 0 if the buffer could be added to the filtered list + * (cloned or otherwise), 1 if the buffer couldn't be added to the * filtered list (failed clone; expired retry) and the caller should * free it and handle it like a failure (eg by sending a BAR.) + * + * since the buffer may be cloned, bf must be not touched after this + * if the return value is 0. */ static int ath_tx_tid_filt_comp_single(struct ath_softc *sc, struct ath_tid *tid, @@ -3412,7 +3415,8 @@ ath_tx_tid_filt_comp_single(struct ath_s __func__, bf, bf->bf_state.bfs_seqno); - return (0); + retval = 1; /* error */ + goto finish; } /* @@ -3432,11 +3436,12 @@ ath_tx_tid_filt_comp_single(struct ath_s DPRINTF(sc, ATH_DEBUG_SW_TX_FILT, "%s: busy buffer couldn't be cloned (%p)!\n", __func__, bf); - retval = 1; + retval = 1; /* error */ } else { ath_tx_tid_filt_comp_buf(sc, tid, nbf); - retval = 0; + retval = 0; /* ok */ } +finish: ath_tx_tid_filt_comp_complete(sc, tid); return (retval); ___ svn-src-head@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-head To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"
svn commit: r264255 - head/sys/dev/ath
Author: adrian Date: Tue Apr 8 07:10:52 2014 New Revision: 264255 URL: http://svnweb.freebsd.org/changeset/base/264255 Log: Don't do continue inside the scheduler loop; we really need to check if we've hit the end of the list and cycled around to the first node again. Obtained from:DragonflyBSD Modified: head/sys/dev/ath/if_ath_tx.c Modified: head/sys/dev/ath/if_ath_tx.c == --- head/sys/dev/ath/if_ath_tx.cTue Apr 8 07:08:59 2014 (r264254) +++ head/sys/dev/ath/if_ath_tx.cTue Apr 8 07:10:52 2014 (r264255) @@ -5509,7 +5509,7 @@ ath_txq_sched(struct ath_softc *sc, stru * a frame; be careful. */ if (! ath_tx_tid_can_tx_or_sched(sc, tid)) { - continue; + goto loop_done; } if (ath_tx_ampdu_running(sc, tid->an, tid->tid)) ath_tx_tid_hw_queue_aggr(sc, tid->an, tid); @@ -5532,7 +5532,7 @@ ath_txq_sched(struct ath_softc *sc, stru if (txq->axq_depth >= sc->sc_hwq_limit_nonaggr) { break; } - +loop_done: /* * If this was the last entry on the original list, stop. * Otherwise nodes that have been rescheduled onto the end ___ svn-src-head@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-head To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"
svn commit: r264256 - head/sys/dev/ath
Author: adrian Date: Tue Apr 8 07:14:14 2014 New Revision: 264256 URL: http://svnweb.freebsd.org/changeset/base/264256 Log: Add some debugging and forcing of the BAW to match what the current tracked BAW actually is. The net80211 code that completes a BAR will set tid->txa_start (the BAW start) to whatever value was called when sending the BAR. Now, in case there's bugs in my driver code that cause the BAW to slip along, we should make sure that the new BAW we start at is actually what we currently have it at, not what we've sent. This totally breaks the specification and so this stays a printf(). If it happens then I need to know and fix it. Whilst here, add some debugging updates: * add TID logging to places where it's useful; * use SEQNO(). Modified: head/sys/dev/ath/if_ath_tx.c Modified: head/sys/dev/ath/if_ath_tx.c == --- head/sys/dev/ath/if_ath_tx.cTue Apr 8 07:10:52 2014 (r264255) +++ head/sys/dev/ath/if_ath_tx.cTue Apr 8 07:14:14 2014 (r264256) @@ -2750,8 +2750,8 @@ ath_tx_update_baw(struct ath_softc *sc, INCR(tid->baw_head, ATH_TID_MAX_BUFS); } DPRINTF(sc, ATH_DEBUG_SW_TX_BAW, - "%s: baw is now %d:%d, baw head=%d\n", - __func__, tap->txa_start, tap->txa_wnd, tid->baw_head); + "%s: tid=%d: baw is now %d:%d, baw head=%d\n", + __func__, tid->tid, tap->txa_start, tap->txa_wnd, tid->baw_head); } static void @@ -3336,8 +3336,8 @@ ath_tx_tid_filt_comp_buf(struct ath_soft ATH_TX_LOCK_ASSERT(sc); if (! tid->isfiltered) { - DPRINTF(sc, ATH_DEBUG_SW_TX_FILT, "%s: filter transition\n", - __func__); + DPRINTF(sc, ATH_DEBUG_SW_TX_FILT, "%s: tid=%d; filter transition\n", + __func__, tid->tid); tid->isfiltered = 1; ath_tx_tid_pause(sc, tid); } @@ -3364,8 +3364,8 @@ ath_tx_tid_filt_comp_complete(struct ath if (tid->hwq_depth != 0) return; - DPRINTF(sc, ATH_DEBUG_SW_TX_FILT, "%s: hwq=0, transition back\n", - __func__); + DPRINTF(sc, ATH_DEBUG_SW_TX_FILT, "%s: tid=%d, hwq=0, transition back\n", + __func__, tid->tid); if (tid->isfiltered == 1) { tid->isfiltered = 0; do_resume = 1; @@ -3414,7 +3414,7 @@ ath_tx_tid_filt_comp_single(struct ath_s "%s: bf=%p, seqno=%d, exceeded retries\n", __func__, bf, - bf->bf_state.bfs_seqno); + SEQNO(bf->bf_state.bfs_seqno)); retval = 1; /* error */ goto finish; } @@ -3466,10 +3466,11 @@ ath_tx_tid_filt_comp_aggr(struct ath_sof if (bf->bf_state.bfs_retries > SWMAX_RETRIES) { sc->sc_stats.ast_tx_swretrymax++; DPRINTF(sc, ATH_DEBUG_SW_TX_FILT, - "%s: bf=%p, seqno=%d, exceeded retries\n", + "%s: tid=%d, bf=%p, seqno=%d, exceeded retries\n", __func__, + tid->tid, bf, - bf->bf_state.bfs_seqno); + SEQNO(bf->bf_state.bfs_seqno)); TAILQ_INSERT_TAIL(bf_q, bf, bf_list); goto next; } @@ -3477,8 +3478,8 @@ ath_tx_tid_filt_comp_aggr(struct ath_sof if (bf->bf_flags & ATH_BUF_BUSY) { nbf = ath_tx_retry_clone(sc, tid->an, tid, bf); DPRINTF(sc, ATH_DEBUG_SW_TX_FILT, - "%s: busy buffer cloned: %p -> %p", - __func__, bf, nbf); + "%s: tid=%d, busy buffer cloned: %p -> %p, seqno=%d\n", + __func__, tid->tid, bf, nbf, SEQNO(bf->bf_state.bfs_seqno)); } else { nbf = bf; } @@ -3489,8 +3490,8 @@ ath_tx_tid_filt_comp_aggr(struct ath_sof */ if (nbf == NULL) { DPRINTF(sc, ATH_DEBUG_SW_TX_FILT, - "%s: buffer couldn't be cloned! (%p)\n", - __func__, bf); + "%s: tid=%d, buffer couldn't be cloned! (%p) seqno=%d\n", + __func__, tid->tid, bf, SEQNO(bf->bf_state.bfs_seqno)); TAILQ_INSERT_TAIL(bf_q, bf, bf_list); } else { ath_tx_tid_filt_comp_buf(sc, tid, nbf); @@ -5044,6 +5045,10 @@ ath_tx_aggr_comp_unaggr(struct ath_softc "%s: isfiltered=1, fail=%d\n", __func__, fail); freeframe = ath_tx_tid_filt_comp_single(sc, atid, bf)
svn commit: r264257 - in head/sys/dev: puc uart
Author: marius Date: Tue Apr 8 07:32:32 2014 New Revision: 264257 URL: http://svnweb.freebsd.org/changeset/base/264257 Log: Distinguish between the different variants and configurations of Sunix {MIO,SER}5 chips instead of treating all of them as PUC_PORT_2S. Among others, this fixes the hang seen when trying to probe the none- existent second UART on an actually 1-port chip. Obtained from:NetBSD (BAR layouts) MFC after:3 days Sponsored by: Bally Wulff Games & Entertainment GmbH Modified: head/sys/dev/puc/pucdata.c head/sys/dev/uart/uart_bus_pci.c Modified: head/sys/dev/puc/pucdata.c == --- head/sys/dev/puc/pucdata.c Tue Apr 8 07:14:14 2014(r264256) +++ head/sys/dev/puc/pucdata.c Tue Apr 8 07:32:32 2014(r264257) @@ -59,6 +59,7 @@ static puc_config_f puc_config_oxford_pc static puc_config_f puc_config_quatech; static puc_config_f puc_config_syba; static puc_config_f puc_config_siig; +static puc_config_f puc_config_sunix; static puc_config_f puc_config_timedia; static puc_config_f puc_config_titan; @@ -987,12 +988,53 @@ const struct puc_cfg puc_pci_devices[] = .config_function = puc_config_syba }, - { 0x1fd4, 0x1999, 0x, 0, - "Sunix SER5437A", + /* Prevent puc(4) from attaching, directly use uart(4) instead. */ + { 0x1fd4, 0x1999, 0x1fd4, 0x0001, + "Sunix SER5 1-port serial", + DEFAULT_RCLK * 8, + PUC_PORT_1S, 0x10, 0, 8, + }, + + { 0x1fd4, 0x1999, 0x1fd4, 0x0002, + "Sunix SER5 2-port serial", DEFAULT_RCLK * 8, PUC_PORT_2S, 0x10, 0, 8, }, + { 0x1fd4, 0x1999, 0x1fd4, 0x0004, + "Sunix SER5 4-port serial", + DEFAULT_RCLK * 8, + PUC_PORT_4S, 0x10, 0, 8, + }, + + { 0x1fd4, 0x1999, 0x1fd4, 0x0008, + "Sunix SER5 8-port serial", + DEFAULT_RCLK * 8, + PUC_PORT_8S, -1, -1, -1, + .config_function = puc_config_sunix + }, + + { 0x1fd4, 0x1999, 0x1fd4, 0x0101, + "Sunix MIO5 1-port serial and 1284 Printer port", + DEFAULT_RCLK * 8, + PUC_PORT_1S1P, -1, -1, -1, + .config_function = puc_config_sunix + }, + + { 0x1fd4, 0x1999, 0x1fd4, 0x0102, + "Sunix MIO 2-port serial and 1284 Printer port", + DEFAULT_RCLK * 8, + PUC_PORT_2S1P, -1, -1, -1, + .config_function = puc_config_sunix + }, + + { 0x1fd4, 0x1999, 0x1fd4, 0x0104, + "Sunix MIO5 4-port serial and 1284 Printer port", + DEFAULT_RCLK * 8, + PUC_PORT_4S1P, -1, -1, -1, + .config_function = puc_config_sunix + }, + { 0x5372, 0x6873, 0x, 0, "Sun 1040 PCI Quad Serial", DEFAULT_RCLK, @@ -1024,8 +1066,8 @@ const struct puc_cfg puc_pci_devices[] = }, /* -* This is more specific than the generic NM9835 entry that follows, and -* is placed here to _prevent_ puc from claiming this single port card. +* This is more specific than the generic NM9835 entry, and is placed +* here to _prevent_ puc(4) from claiming this single port card. * * uart(4) will claim this device. */ @@ -1614,6 +1656,31 @@ puc_config_oxford_pcie(struct puc_softc } static int +puc_config_sunix(struct puc_softc *sc, enum puc_cfg_cmd cmd, int port, +intptr_t *res) +{ + int error; + + switch (cmd) { + case PUC_CFG_GET_OFS: + error = puc_config(sc, PUC_CFG_GET_TYPE, port, res); + if (error != 0) + return (error); + *res = (*res == PUC_TYPE_SERIAL) ? (port & 3) * 8 : 0; + return (0); + case PUC_CFG_GET_RID: + error = puc_config(sc, PUC_CFG_GET_TYPE, port, res); + if (error != 0) + return (error); + *res = (*res == PUC_TYPE_SERIAL && port <= 3) ? 0x10 : 0x14; + return (0); + default: + break; + } + return (ENXIO); +} + +static int puc_config_titan(struct puc_softc *sc, enum puc_cfg_cmd cmd, int port, intptr_t *res) { Modified: head/sys/dev/uart/uart_bus_pci.c == --- head/sys/dev/uart/uart_bus_pci.cTue Apr 8 07:14:14 2014 (r264256) +++ head/sys/dev/uart/uart_bus_pci.cTue Apr 8 07:32:32 2014 (r264257) @@ -114,6 +114,8 @@ static const struct pci_id pci_ns8250_id 0x10, 16384000 }, { 0x14e4, 0x4344, 0x, 0, "Sony Ericsson GC89 PC Card", 0x10}, { 0x151f, 0x, 0x, 0, "TOPIC Semiconductor TP560 56k modem", 0x10 }, +{ 0x1fd4, 0x1999, 0x1fd4, 0x0001, "Sunix SER5 Serial Port", 0x10, + 8 * DEFAULT_RCLK
Re: svn commit: r264250 - head/sys/dev/acpica
On Monday, April 07, 2014 10:36:27 pm Adrian Chadd wrote: > Author: adrian > Date: Tue Apr 8 02:36:27 2014 > New Revision: 264250 > URL: http://svnweb.freebsd.org/changeset/base/264250 > > Log: > Add a basic set of data points which count the number of sleep entries > that are being done by the OS. > > For now this'll match up with the "wakeups"; although I'll dig deeper into > this to see if we can determine which sleep state the CPU managed to get > into. Most things I've seen these days only expose up to C2 or C3 via > ACPI even though the CPU goes all the way down to C6 or C7. No, those are actually the same thing. ACPI and Intel both use C-states for the same thing, but the numbers don't line up. That is, Intel's C6/C7 gets exposed to the OS as C2/C3 via ACPI. The 6/7 does matter, (I think) if you are using monitor/mwait as I believe the value you configure for an mwait sleep has to use Intel's number (6/7) whereas the ACPI number (2/3) is assigned by the results of _CST or whichever object it is ACPI queries. All that to say that ACPI is already using Intel's C6/C7 if you have configured your BIOS to expose it. -- John Baldwin ___ svn-src-head@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-head To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"
Re: svn commit: r264243 - in head/etc: . rc.d
On Monday, April 07, 2014 6:40:29 pm Devin Teske wrote: > Author: dteske > Date: Mon Apr 7 22:40:29 2014 > New Revision: 264243 > URL: http://svnweb.freebsd.org/changeset/base/264243 > > Log: > Loosen the processing of *_IF_aliasN vars to be less strict. Previously, > the first alias had to be _alias0 and processing stopped at the first non- > defined variable (preventing gaps). Allowing gaps gives the administrator > the ability to group aliases in an adhoc manner and also lifts the > requirement to renumber aliases simply to comment-out an existing one. > Aliases are processed in numerical ascending order. > > Discussed on: -rc > MFC after: 1 week Forgot to mention mdconfig in the log message (or did you mean to commit that separately)? -- John Baldwin ___ svn-src-head@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-head To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"
svn commit: r264258 - head/sys/dev/vt
Author: ray Date: Tue Apr 8 14:14:25 2014 New Revision: 264258 URL: http://svnweb.freebsd.org/changeset/base/264258 Log: Fix cursor color in reverse video mode. PR: kern/188196 Submitted by: Claude Buisson (original version) MFC after:1 week Sponsored by: The FreeBSD Foundation Modified: head/sys/dev/vt/vt_core.c Modified: head/sys/dev/vt/vt_core.c == --- head/sys/dev/vt/vt_core.c Tue Apr 8 07:32:32 2014(r264257) +++ head/sys/dev/vt/vt_core.c Tue Apr 8 14:14:25 2014(r264258) @@ -652,24 +652,26 @@ static inline void vt_determine_colors(term_char_t c, int cursor, term_color_t *fg, term_color_t *bg) { + term_color_t tmp; + int invert; + + invert = 0; *fg = TCHAR_FGCOLOR(c); if (TCHAR_FORMAT(c) & TF_BOLD) *fg = TCOLOR_LIGHT(*fg); *bg = TCHAR_BGCOLOR(c); - if (TCHAR_FORMAT(c) & TF_REVERSE) { - term_color_t tmp; + if (TCHAR_FORMAT(c) & TF_REVERSE) + invert ^= 1; + if (cursor) + invert ^= 1; + if (invert) { tmp = *fg; *fg = *bg; *bg = tmp; } - - if (cursor) { - *fg = *bg; - *bg = TC_WHITE; - } } static void ___ svn-src-head@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-head To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"
svn commit: r264259 - head/sys/dev/vt
Author: ray Date: Tue Apr 8 14:18:39 2014 New Revision: 264259 URL: http://svnweb.freebsd.org/changeset/base/264259 Log: Update to fix at r264244. o Unmute terminal when done with driver replacement. o Move init fonts to early point. o Minor cleanup. MFC after:6 days X-MFC-with: r264244 r264242 Sponsored by: The FreeBSD Foundation Modified: head/sys/dev/vt/vt_core.c Modified: head/sys/dev/vt/vt_core.c == --- head/sys/dev/vt/vt_core.c Tue Apr 8 14:14:25 2014(r264258) +++ head/sys/dev/vt/vt_core.c Tue Apr 8 14:18:39 2014(r264259) @@ -720,9 +720,11 @@ vt_flush(struct vt_device *vd) #endif vw = vd->vd_curwindow; - if (vw == NULL) return; + if (vw == NULL) + return; vf = vw->vw_font; - if ((vf == NULL) && !(vd->vd_flags & VDF_TEXTMODE)) return; + if (((vd->vd_flags & VDF_TEXTMODE) == 0) && (vf == NULL)) + return; if (vd->vd_flags & VDF_SPLASH || vw->vw_flags & VWF_BUSY) return; @@ -1891,9 +1893,6 @@ vt_upgrade(struct vt_device *vd) } terminal_maketty(vw->vw_terminal, "v%r", VT_UNIT(vw)); - /* Assign default font to window, if not textmode. */ - if (!(vd->vd_flags & VDF_TEXTMODE) && vw->vw_font == NULL) - vw->vw_font = vtfont_ref(&vt_font_default); } if (vd->vd_curwindow == NULL) vd->vd_curwindow = vd->vd_windows[VT_CONSWINDOW]; @@ -1914,6 +1913,9 @@ vt_resize(struct vt_device *vd) for (i = 0; i < VT_MAXWINDOWS; i++) { vw = vd->vd_windows[i]; + /* Assign default font to window, if not textmode. */ + if (!(vd->vd_flags & VDF_TEXTMODE) && vw->vw_font == NULL) + vw->vw_font = vtfont_ref(&vt_font_default); /* Resize terminal windows */ vt_change_font(vw, vw->vw_font); } @@ -1975,8 +1977,10 @@ vt_allocate(struct vt_driver *drv, void vtterm_splash(vd); #endif - if (vd->vd_flags & VDF_ASYNC) + if (vd->vd_flags & VDF_ASYNC) { + terminal_mute(vd->vd_curwindow->vw_terminal, 0); callout_schedule(&vd->vd_timer, hz / VT_TIMERFREQ); + } termcn_cnregister(vd->vd_windows[VT_CONSWINDOW]->vw_terminal); ___ svn-src-head@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-head To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"
svn commit: r264260 - head/sys/boot
Author: emaste Date: Tue Apr 8 17:40:09 2014 New Revision: 264260 URL: http://svnweb.freebsd.org/changeset/base/264260 Log: Revert r264132, disconnecting sys/boot/amd64 for now Some 64-bit Ficl warnings broke tinderbox builds. Modified: head/sys/boot/Makefile Modified: head/sys/boot/Makefile == --- head/sys/boot/Makefile Tue Apr 8 14:18:39 2014(r264259) +++ head/sys/boot/Makefile Tue Apr 8 17:40:09 2014(r264260) @@ -9,12 +9,9 @@ SUBDIR+= ficl .endif # Pick the machine-dependent subdir based on the target architecture. -ADIR= ${MACHINE:S/powerpc64/powerpc/} +ADIR= ${MACHINE:S/amd64/i386/:S/powerpc64/powerpc/} .if exists(${.CURDIR}/${ADIR}/.) SUBDIR+= ${ADIR} .endif -.if ${MACHINE} == "amd64" -SUBDIR+= i386 -.endif .include ___ svn-src-head@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-head To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"
svn commit: r264261 - head/sys/boot/ficl
Author: emaste Date: Tue Apr 8 17:50:27 2014 New Revision: 264261 URL: http://svnweb.freebsd.org/changeset/base/264261 Log: Correct a variable's type for 64-bit Ficl FICL_INT is long. Modified: head/sys/boot/ficl/words.c Modified: head/sys/boot/ficl/words.c == --- head/sys/boot/ficl/words.c Tue Apr 8 17:40:09 2014(r264260) +++ head/sys/boot/ficl/words.c Tue Apr 8 17:50:27 2014(r264261) @@ -2567,7 +2567,7 @@ static void setObjectFlag(FICL_VM *pVM) static void isObject(FICL_VM *pVM) { -int flag; +FICL_INT flag; FICL_WORD *pFW = (FICL_WORD *)stackPopPtr(pVM->pStack); flag = ((pFW != NULL) && (pFW->flags & FW_ISOBJECT)) ? FICL_TRUE : FICL_FALSE; ___ svn-src-head@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-head To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"
RE: svn commit: r264243 - in head/etc: . rc.d
> -Original Message- > From: John Baldwin [mailto:j...@freebsd.org] > Sent: Tuesday, April 8, 2014 6:17 AM > To: Devin Teske > Cc: src-committ...@freebsd.org; svn-src-...@freebsd.org; svn-src- > h...@freebsd.org > Subject: Re: svn commit: r264243 - in head/etc: . rc.d > > On Monday, April 07, 2014 6:40:29 pm Devin Teske wrote: > > Author: dteske > > Date: Mon Apr 7 22:40:29 2014 > > New Revision: 264243 > > URL: > > https://urldefense.proofpoint.com/v1/url?u=http://svnweb.freebsd.org/c > > > hangeset/base/264243&k=%2FbkpAUdJWZuiTILCq%2FFnQg%3D%3D%0A&r= > Mrjs6vR4% > > > 2Faj2Ns9%2FssHJjg%3D%3D%0A&m=x4%2FOSlYxZmvxfxF1vsS2F3iOmYffhRw > 7e5mRGSs > > > LUeM%3D%0A&s=f09e9f49a3e96b674c5845e5ca0b0ffe54de091cfb020683aa2 > fc358b > > 8f7182d > > > > Log: > > Loosen the processing of *_IF_aliasN vars to be less strict. Previously, > > the first alias had to be _alias0 and processing stopped at the first non- > > defined variable (preventing gaps). Allowing gaps gives the administrator > > the ability to group aliases in an adhoc manner and also lifts the > > requirement to renumber aliases simply to comment-out an existing one. > > Aliases are processed in numerical ascending order. > > > > Discussed on: -rc > > MFC after:1 week > > Forgot to mention mdconfig in the log message (or did you mean to commit > that separately)? > Nah, forgot to mention mdconfig in the commit message as you state. -- Devin _ The information contained in this message is proprietary and/or confidential. If you are not the intended recipient, please: (i) delete the message and all copies; (ii) do not disclose, distribute or use the message in any manner; and (iii) notify the sender immediately. In addition, please be aware that any message addressed to our domain is subject to archiving and review by persons other than the intended recipient. Thank you. ___ svn-src-head@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-head To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"
svn commit: r264262 - head/sys/boot/ficl
Author: emaste Date: Tue Apr 8 18:02:32 2014 New Revision: 264262 URL: http://svnweb.freebsd.org/changeset/base/264262 Log: Fix printf args for 64-bit archs Sponsored by: The FreeBSD Foundation Modified: head/sys/boot/ficl/tools.c Modified: head/sys/boot/ficl/tools.c == --- head/sys/boot/ficl/tools.c Tue Apr 8 17:50:27 2014(r264261) +++ head/sys/boot/ficl/tools.c Tue Apr 8 18:02:32 2014(r264262) @@ -201,7 +201,7 @@ static void seeColon(FICL_VM *pVM, CELL *cp++ = '>'; else *cp++ = ' '; -cp += sprintf(cp, "%3d ", pc-param0); +cp += sprintf(cp, "%3d ", (int)(pc-param0)); if (isAFiclWord(pd, pFW)) { @@ -239,40 +239,40 @@ static void seeColon(FICL_VM *pVM, CELL case IF: c = *++pc; if (c.i > 0) -sprintf(cp, "if / while (branch %d)", pc+c.i-param0); +sprintf(cp, "if / while (branch %d)", (int)(pc+c.i-param0)); else -sprintf(cp, "until (branch %d)", pc+c.i-param0); +sprintf(cp, "until (branch %d)", (int)(pc+c.i-param0)); break; case BRANCH: c = *++pc; if (c.i == 0) -sprintf(cp, "repeat (branch %d)", pc+c.i-param0); +sprintf(cp, "repeat (branch %d)", (int)(pc+c.i-param0)); else if (c.i == 1) -sprintf(cp, "else (branch %d)", pc+c.i-param0); +sprintf(cp, "else (branch %d)", (int)(pc+c.i-param0)); else -sprintf(cp, "endof (branch %d)", pc+c.i-param0); +sprintf(cp, "endof (branch %d)", (int)(pc+c.i-param0)); break; case OF: c = *++pc; -sprintf(cp, "of (branch %d)", pc+c.i-param0); +sprintf(cp, "of (branch %d)", (int)(pc+c.i-param0)); break; case QDO: c = *++pc; -sprintf(cp, "?do (leave %d)", (CELL *)c.p-param0); +sprintf(cp, "?do (leave %d)", (int)((CELL *)c.p-param0)); break; case DO: c = *++pc; -sprintf(cp, "do (leave %d)", (CELL *)c.p-param0); +sprintf(cp, "do (leave %d)", (int)((CELL *)c.p-param0)); break; case LOOP: c = *++pc; -sprintf(cp, "loop (branch %d)", pc+c.i-param0); +sprintf(cp, "loop (branch %d)", (int)(pc+c.i-param0)); break; case PLOOP: c = *++pc; -sprintf(cp, "+loop (branch %d)", pc+c.i-param0); +sprintf(cp, "+loop (branch %d)", (int)(pc+c.i-param0)); break; default: sprintf(cp, "%.*s", pFW->nName, pFW->name); ___ svn-src-head@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-head To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"
svn commit: r264263 - head/sys/boot/efi/libefi
Author: emaste Date: Tue Apr 8 18:21:38 2014 New Revision: 264263 URL: http://svnweb.freebsd.org/changeset/base/264263 Log: Add explicit casts to quiet warnings in libefi Sponsored by: The FreeBSD Foundation Modified: head/sys/boot/efi/libefi/efipart.c Modified: head/sys/boot/efi/libefi/efipart.c == --- head/sys/boot/efi/libefi/efipart.c Tue Apr 8 18:02:32 2014 (r264262) +++ head/sys/boot/efi/libefi/efipart.c Tue Apr 8 18:21:38 2014 (r264263) @@ -93,14 +93,16 @@ efipart_init(void) bzero(aliases, nin * sizeof(EFI_HANDLE)); for (n = 0; n < nin; n++) { - status = BS->HandleProtocol(hin[n], &devpath_guid, &devpath); + status = BS->HandleProtocol(hin[n], &devpath_guid, + (void **)&devpath); if (EFI_ERROR(status)) { continue; } node = devpath; while (!IsDevicePathEnd(NextDevicePathNode(node))) node = NextDevicePathNode(node); - status = BS->HandleProtocol(hin[n], &blkio_guid, &blkio); + status = BS->HandleProtocol(hin[n], &blkio_guid, + (void**)&blkio); if (EFI_ERROR(status)) continue; if (!blkio->Media->LogicalPartition) @@ -147,7 +149,7 @@ efipart_print(int verbose) sprintf(line, "%s%d:", efipart_dev.dv_name, unit); pager_output(line); - status = BS->HandleProtocol(h, &blkio_guid, &blkio); + status = BS->HandleProtocol(h, &blkio_guid, (void **)&blkio); if (!EFI_ERROR(status)) { sprintf(line, "%llu blocks", (unsigned long long)(blkio->Media->LastBlock + 1)); @@ -176,7 +178,7 @@ efipart_open(struct open_file *f, ...) if (h == NULL) return (EINVAL); - status = BS->HandleProtocol(h, &blkio_guid, &blkio); + status = BS->HandleProtocol(h, &blkio_guid, (void **)&blkio); if (EFI_ERROR(status)) return (efi_status_to_errno(status)); ___ svn-src-head@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-head To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"
svn commit: r264264 - head/sys/cam/ctl
Author: mav Date: Tue Apr 8 18:22:03 2014 New Revision: 264264 URL: http://svnweb.freebsd.org/changeset/base/264264 Log: Wakeup only one thread of added in r263978i at a time. This slightly reduces lock congestion between threads. Submitted by: trasz Modified: head/sys/cam/ctl/ctl.c Modified: head/sys/cam/ctl/ctl.c == --- head/sys/cam/ctl/ctl.c Tue Apr 8 18:21:38 2014(r264263) +++ head/sys/cam/ctl/ctl.c Tue Apr 8 18:22:03 2014(r264264) @@ -13065,7 +13065,7 @@ ctl_wakeup_thread() softc = control_softc; - wakeup(softc); + wakeup_one(softc); } /* Initialization and failover */ ___ svn-src-head@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-head To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"
svn commit: r264265 - in head: crypto/openssl/crypto/bn crypto/openssl/crypto/ec crypto/openssl/ssl sys/fs/nfsserver
Author: delphij Date: Tue Apr 8 18:27:32 2014 New Revision: 264265 URL: http://svnweb.freebsd.org/changeset/base/264265 Log: Fix NFS deadlock vulnerability. [SA-14:05] Fix "Heartbleed" vulnerability and ECDSA Cache Side-channel Attack in OpenSSL. [SA-14:06] Modified: head/crypto/openssl/crypto/bn/bn.h head/crypto/openssl/crypto/bn/bn_lib.c head/crypto/openssl/crypto/ec/ec2_mult.c head/crypto/openssl/ssl/d1_both.c head/crypto/openssl/ssl/t1_lib.c head/sys/fs/nfsserver/nfs_nfsdserv.c Modified: head/crypto/openssl/crypto/bn/bn.h == --- head/crypto/openssl/crypto/bn/bn.h Tue Apr 8 18:22:03 2014 (r264264) +++ head/crypto/openssl/crypto/bn/bn.h Tue Apr 8 18:27:32 2014 (r264265) @@ -538,6 +538,8 @@ BIGNUM *BN_mod_inverse(BIGNUM *ret, BIGNUM *BN_mod_sqrt(BIGNUM *ret, const BIGNUM *a, const BIGNUM *n,BN_CTX *ctx); +void BN_consttime_swap(BN_ULONG swap, BIGNUM *a, BIGNUM *b, int nwords); + /* Deprecated versions */ #ifndef OPENSSL_NO_DEPRECATED BIGNUM *BN_generate_prime(BIGNUM *ret,int bits,int safe, @@ -774,11 +776,20 @@ int RAND_pseudo_bytes(unsigned char *buf #define bn_fix_top(a) bn_check_top(a) +#define bn_check_size(bn, bits) bn_wcheck_size(bn, ((bits+BN_BITS2-1))/BN_BITS2) +#define bn_wcheck_size(bn, words) \ + do { \ + const BIGNUM *_bnum2 = (bn); \ + assert(words <= (_bnum2)->dmax && words >= (_bnum2)->top); \ + } while(0) + #else /* !BN_DEBUG */ #define bn_pollute(a) #define bn_check_top(a) #define bn_fix_top(a) bn_correct_top(a) +#define bn_check_size(bn, bits) +#define bn_wcheck_size(bn, words) #endif Modified: head/crypto/openssl/crypto/bn/bn_lib.c == --- head/crypto/openssl/crypto/bn/bn_lib.c Tue Apr 8 18:22:03 2014 (r264264) +++ head/crypto/openssl/crypto/bn/bn_lib.c Tue Apr 8 18:27:32 2014 (r264265) @@ -824,3 +824,55 @@ int bn_cmp_part_words(const BN_ULONG *a, } return bn_cmp_words(a,b,cl); } + +/* + * Constant-time conditional swap of a and b. + * a and b are swapped if condition is not 0. The code assumes that at most one bit of condition is set. + * nwords is the number of words to swap. The code assumes that at least nwords are allocated in both a and b, + * and that no more than nwords are used by either a or b. + * a and b cannot be the same number + */ +void BN_consttime_swap(BN_ULONG condition, BIGNUM *a, BIGNUM *b, int nwords) + { + BN_ULONG t; + int i; + + bn_wcheck_size(a, nwords); + bn_wcheck_size(b, nwords); + + assert(a != b); + assert((condition & (condition - 1)) == 0); + assert(sizeof(BN_ULONG) >= sizeof(int)); + + condition = ((condition - 1) >> (BN_BITS2 - 1)) - 1; + + t = (a->top^b->top) & condition; + a->top ^= t; + b->top ^= t; + +#define BN_CONSTTIME_SWAP(ind) \ + do { \ + t = (a->d[ind] ^ b->d[ind]) & condition; \ + a->d[ind] ^= t; \ + b->d[ind] ^= t; \ + } while (0) + + + switch (nwords) { + default: + for (i = 10; i < nwords; i++) + BN_CONSTTIME_SWAP(i); + /* Fallthrough */ + case 10: BN_CONSTTIME_SWAP(9); /* Fallthrough */ + case 9: BN_CONSTTIME_SWAP(8); /* Fallthrough */ + case 8: BN_CONSTTIME_SWAP(7); /* Fallthrough */ + case 7: BN_CONSTTIME_SWAP(6); /* Fallthrough */ + case 6: BN_CONSTTIME_SWAP(5); /* Fallthrough */ + case 5: BN_CONSTTIME_SWAP(4); /* Fallthrough */ + case 4: BN_CONSTTIME_SWAP(3); /* Fallthrough */ + case 3: BN_CONSTTIME_SWAP(2); /* Fallthrough */ + case 2: BN_CONSTTIME_SWAP(1); /* Fallthrough */ + case 1: BN_CONSTTIME_SWAP(0); + } +#undef BN_CONSTTIME_SWAP +} Modified: head/crypto/openssl/crypto/ec/ec2_mult.c == --- head/crypto/openssl/crypto/ec/ec2_mult.cTue Apr 8 18:22:03 2014 (r264264) +++ head/crypto/openssl/crypto/ec/ec2_mult.cTue Apr 8 18:27:32 2014 (r264265) @@ -208,11 +208,15 @@ static int gf2m_Mxy(const EC_GROUP *grou return ret; } + /* Computes scalar*point and stores the result in r. * point can not equal r. - * Uses algorithm 2P of + * Uses a modified algorithm 2P of * Lopez, J. and Dahab, R. "Fast multiplication on elliptic curves over * GF(2^m) without precomputation" (CHES '99, LNCS 1717). + * + * To protect against side-channel attack the function uses constant time swap, + * avoiding conditional branches. */ static int ec_GF2m_montgomery_point_multiply(const EC_GROUP *group, EC_POINT *r, const BIGNUM *scalar, const EC_POINT *point, BN_CTX *ctx) @@ -246,6 +250,11 @@ static int ec_GF2m_montgom
svn commit: r264268 - head/sys/boot
Author: emaste Date: Tue Apr 8 19:19:58 2014 New Revision: 264268 URL: http://svnweb.freebsd.org/changeset/base/264268 Log: (Re)connect sys/boot/amd64 to the build Sponsored by: The FreeBSD Foundation Modified: head/sys/boot/Makefile Modified: head/sys/boot/Makefile == --- head/sys/boot/Makefile Tue Apr 8 18:27:46 2014(r264267) +++ head/sys/boot/Makefile Tue Apr 8 19:19:58 2014(r264268) @@ -9,9 +9,12 @@ SUBDIR+= ficl .endif # Pick the machine-dependent subdir based on the target architecture. -ADIR= ${MACHINE:S/amd64/i386/:S/powerpc64/powerpc/} +ADIR= ${MACHINE:S/powerpc64/powerpc/} .if exists(${.CURDIR}/${ADIR}/.) SUBDIR+= ${ADIR} .endif +.if ${MACHINE} == "amd64" +SUBDIR+= i386 +.endif .include ___ svn-src-head@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-head To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"
svn commit: r264269 - in head: sys/conf sys/kern sys/modules sys/modules/imgact_binmisc sys/sys usr.sbin usr.sbin/binmiscctl
Author: sbruno Date: Tue Apr 8 20:10:22 2014 New Revision: 264269 URL: http://svnweb.freebsd.org/changeset/base/264269 Log: Add Stacey Son's binary activation patches that allow remapping of execution to a emumation program via parsing of ELF header information. With this kernel module and userland tool, poudriere is able to build ports packages via the QEMU userland tools (or another emulator program) in a different architecture chroot, e.g. TARGET=mips TARGET_ARCH=mips I'm not connecting this to GENERIC for obvious reasons, but this should allow the kernel module to be built by default and enable the building of the userland tool (which automatically loads the kernel module). Submitted by: sson@ Reviewed by: jhb@ Added: head/sys/kern/imgact_binmisc.c (contents, props changed) head/sys/modules/imgact_binmisc/ head/sys/modules/imgact_binmisc/Makefile (contents, props changed) head/sys/sys/imgact_binmisc.h (contents, props changed) head/usr.sbin/binmiscctl/ head/usr.sbin/binmiscctl/Makefile (contents, props changed) head/usr.sbin/binmiscctl/binmiscctl.8 (contents, props changed) head/usr.sbin/binmiscctl/binmiscctl.c (contents, props changed) Modified: head/sys/conf/files.amd64 head/sys/conf/files.i386 head/sys/modules/Makefile head/usr.sbin/Makefile Modified: head/sys/conf/files.amd64 == --- head/sys/conf/files.amd64 Tue Apr 8 19:19:58 2014(r264268) +++ head/sys/conf/files.amd64 Tue Apr 8 20:10:22 2014(r264269) @@ -440,6 +440,7 @@ dev/virtio/scsi/virtio_scsi.c optional dev/virtio/random/virtio_random.c optionalvirtio_random isa/syscons_isa.c optionalsc isa/vga_isa.c optionalvga +kern/imgact_binmisc.c optionalimagact_binmisc kern/kern_clocksource.cstandard kern/link_elf_obj.cstandard # Modified: head/sys/conf/files.i386 == --- head/sys/conf/files.i386Tue Apr 8 19:19:58 2014(r264268) +++ head/sys/conf/files.i386Tue Apr 8 20:10:22 2014(r264269) @@ -522,6 +522,7 @@ isa/syscons_isa.c optional sc isa/vga_isa.c optional vga kern/kern_clocksource.cstandard kern/imgact_aout.c optional compat_aout +kern/imgact_binmisc.c optional imagact_binmisc kern/imgact_gzip.c optional gzip libkern/divdi3.c standard libkern/flsll.cstandard Added: head/sys/kern/imgact_binmisc.c == --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/sys/kern/imgact_binmisc.c Tue Apr 8 20:10:22 2014 (r264269) @@ -0,0 +1,766 @@ +/*- + * Copyright (c) 2013, Stacey D. Son + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + *notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + *notice, this list of conditions and the following disclaimer in the + *documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include +__FBSDID("$FreeBSD$"); + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +/** + * Miscellaneous binary interpreter image activator. + * + * If the given target executable's header matches 'xbe_magic' field in the + * 'interpreter_list' then it will use the user-level interpreter specified in + * the 'xbe_interpreter' field to execute the binary. The 'xbe_magic' field may + * be adjusted to a given offset using the value in the 'xbe_moffset' field + * and bits of the header may be masked using the 'xbe_mask' field. The + * 'in
svn commit: r264270 - head/sys/conf
Author: imp Date: Tue Apr 8 20:10:57 2014 New Revision: 264270 URL: http://svnweb.freebsd.org/changeset/base/264270 Log: Put proper ${} around variable expansion. This fixes the build on 9.2 with fmake (which complained). Not sure why bmake didn't complain though... Modified: head/sys/conf/Makefile.arm Modified: head/sys/conf/Makefile.arm == --- head/sys/conf/Makefile.arm Tue Apr 8 20:10:22 2014(r264269) +++ head/sys/conf/Makefile.arm Tue Apr 8 20:10:57 2014(r264270) @@ -44,10 +44,10 @@ CFLAGS += -mno-thumb-interwork .endif .if empty(DDB_ENABLED) -.if MK_ARM_EABI == "no" && ${COMPILER_TYPE} == "gcc" +.if ${MK_ARM_EABI} == "no" && ${COMPILER_TYPE} == "gcc" CFLAGS += -mno-apcs-frame .endif -.elif MK_ARM_EABI != "no" +.elif ${MK_ARM_EABI} != "no" CFLAGS += -funwind-tables .if ${COMPILER_TYPE} == "clang" # clang requires us to tell it to emit assembly with unwind information ___ svn-src-head@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-head To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"
Re: svn commit: r264269 - in head: sys/conf sys/kern sys/modules sys/modules/imgact_binmisc sys/sys usr.sbin usr.sbin/binmiscctl
On Tuesday, April 08, 2014 4:10:22 pm Sean Bruno wrote: > Author: sbruno > Date: Tue Apr 8 20:10:22 2014 > New Revision: 264269 > URL: http://svnweb.freebsd.org/changeset/base/264269 > > Log: > Add Stacey Son's binary activation patches that allow remapping of > execution to a emumation program via parsing of ELF header information. > > With this kernel module and userland tool, poudriere is able to build > ports packages via the QEMU userland tools (or another emulator program) > in a different architecture chroot, e.g. TARGET=mips TARGET_ARCH=mips > > I'm not connecting this to GENERIC for obvious reasons, but this should > allow the kernel module to be built by default and enable the building > of the userland tool (which automatically loads the kernel module). > > Submitted by: sson@ > Reviewed by:jhb@ > > Added: > head/sys/kern/imgact_binmisc.c (contents, props changed) > head/sys/modules/imgact_binmisc/ > head/sys/modules/imgact_binmisc/Makefile (contents, props changed) > head/sys/sys/imgact_binmisc.h (contents, props changed) > head/usr.sbin/binmiscctl/ > head/usr.sbin/binmiscctl/Makefile (contents, props changed) > head/usr.sbin/binmiscctl/binmiscctl.8 (contents, props changed) > head/usr.sbin/binmiscctl/binmiscctl.c (contents, props changed) > Modified: > head/sys/conf/files.amd64 > head/sys/conf/files.i386 > head/sys/modules/Makefile > head/usr.sbin/Makefile Maybe put it in sys/conf/files instead of only amd64|i386? You enabled the module build for all architectures. Please also add it to sys/conf/NOTES. -- John Baldwin ___ svn-src-head@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-head To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"
svn commit: r264274 - in head/sys/cam: ctl scsi
Author: mav Date: Tue Apr 8 20:50:48 2014 New Revision: 264274 URL: http://svnweb.freebsd.org/changeset/base/264274 Log: Add support for SCSI UNMAP commands to CTL. This patch adds support for three new SCSI commands: UNMAP, WRITE SAME(10) and WRITE SAME(16). WRITE SAME commands support both normal write mode and UNMAP flag. To properly report UNMAP capabilities this patch also adds support for reporting two new VPD pages: Block limits and Logical Block Provisioning. UNMAP support can be enabled per-LUN by adding "-o unmap=on" to `ctladm create` command line or "option unmap on" to lun sections of /etc/ctl.conf. At this moment UNMAP supported for ramdisks and device-backed block LUNs. It was tested to work great with ZFS ZVOLs. For file-backed LUNs UNMAP support is unfortunately missing due to absence of respective VFS KPI. Reviewed by: ken MFC after:1 month Sponsored by: iXsystems, Inc Modified: head/sys/cam/ctl/ctl.c head/sys/cam/ctl/ctl_backend.h head/sys/cam/ctl/ctl_backend_block.c head/sys/cam/ctl/ctl_backend_ramdisk.c head/sys/cam/ctl/ctl_cmd_table.c head/sys/cam/ctl/ctl_io.h head/sys/cam/ctl/ctl_private.h head/sys/cam/scsi/scsi_all.h Modified: head/sys/cam/ctl/ctl.c == --- head/sys/cam/ctl/ctl.c Tue Apr 8 20:40:54 2014(r264273) +++ head/sys/cam/ctl/ctl.c Tue Apr 8 20:50:48 2014(r264274) @@ -331,9 +331,10 @@ SYSCTL_INT(_kern_cam_ctl, OID_AUTO, verb &verbose, 0, "Show SCSI errors returned to initiator"); /* - * Serial number (0x80), device id (0x83), and supported pages (0x00) + * Serial number (0x80), device id (0x83), supported pages (0x00), + * Block limits (0xB0) and Logical Block Provisioning (0xB2) */ -#define SCSI_EVPD_NUM_SUPPORTED_PAGES 3 +#define SCSI_EVPD_NUM_SUPPORTED_PAGES 5 static void ctl_isc_event_handler(ctl_ha_channel chanel, ctl_ha_event event, int param); @@ -391,6 +392,9 @@ static void ctl_hndl_per_res_out_on_othe static int ctl_inquiry_evpd_supported(struct ctl_scsiio *ctsio, int alloc_len); static int ctl_inquiry_evpd_serial(struct ctl_scsiio *ctsio, int alloc_len); static int ctl_inquiry_evpd_devid(struct ctl_scsiio *ctsio, int alloc_len); +static int ctl_inquiry_evpd_block_limits(struct ctl_scsiio *ctsio, +int alloc_len); +static int ctl_inquiry_evpd_lbp(struct ctl_scsiio *ctsio, int alloc_len); static int ctl_inquiry_evpd(struct ctl_scsiio *ctsio); static int ctl_inquiry_std(struct ctl_scsiio *ctsio); static int ctl_get_lba_len(union ctl_io *io, uint64_t *lba, uint32_t *len); @@ -5787,6 +5791,195 @@ ctl_write_buffer(struct ctl_scsiio *ctsi return (CTL_RETVAL_COMPLETE); } +int +ctl_write_same(struct ctl_scsiio *ctsio) +{ + struct ctl_lun *lun; + struct ctl_lba_len_flags lbalen; + uint64_t lba; + uint32_t num_blocks; + int len, retval; + uint8_t byte2; + + retval = CTL_RETVAL_COMPLETE; + + CTL_DEBUG_PRINT(("ctl_write_same\n")); + + lun = (struct ctl_lun *)ctsio->io_hdr.ctl_private[CTL_PRIV_LUN].ptr; + + switch (ctsio->cdb[0]) { + case WRITE_SAME_10: { + struct scsi_write_same_10 *cdb; + + cdb = (struct scsi_write_same_10 *)ctsio->cdb; + + lba = scsi_4btoul(cdb->addr); + num_blocks = scsi_2btoul(cdb->length); + byte2 = cdb->byte2; + break; + } + case WRITE_SAME_16: { + struct scsi_write_same_16 *cdb; + + cdb = (struct scsi_write_same_16 *)ctsio->cdb; + + lba = scsi_8btou64(cdb->addr); + num_blocks = scsi_4btoul(cdb->length); + byte2 = cdb->byte2; + break; + } + default: + /* +* We got a command we don't support. This shouldn't +* happen, commands should be filtered out above us. +*/ + ctl_set_invalid_opcode(ctsio); + ctl_done((union ctl_io *)ctsio); + + return (CTL_RETVAL_COMPLETE); + break; /* NOTREACHED */ + } + + /* +* The first check is to make sure we're in bounds, the second +* check is to catch wrap-around problems. If the lba + num blocks +* is less than the lba, then we've wrapped around and the block +* range is invalid anyway. +*/ + if (((lba + num_blocks) > (lun->be_lun->maxlba + 1)) +|| ((lba + num_blocks) < lba)) { + ctl_set_lba_out_of_range(ctsio); + ctl_done((union ctl_io *)ctsio); + return (CTL_RETVAL_COMPLETE); + } + + /* Zero number of blocks means "to the last logical block" */ + if (num_blocks == 0) { + if ((lun->be_lun->maxlba + 1) - lba > UINT32_MAX) { +
svn commit: r264275 - head/usr.sbin/bhyvectl
Author: jhb Date: Tue Apr 8 20:54:13 2014 New Revision: 264275 URL: http://svnweb.freebsd.org/changeset/base/264275 Log: Explicitly initialize 'vmname' to NULL. Reviewed by: grehan Modified: head/usr.sbin/bhyvectl/bhyvectl.c Modified: head/usr.sbin/bhyvectl/bhyvectl.c == --- head/usr.sbin/bhyvectl/bhyvectl.c Tue Apr 8 20:50:48 2014 (r264274) +++ head/usr.sbin/bhyvectl/bhyvectl.c Tue Apr 8 20:54:13 2014 (r264275) @@ -569,6 +569,7 @@ main(int argc, char *argv[]) }; vcpu = 0; + vmname = NULL; assert_lapic_lvt = -1; progname = basename(argv[0]); ___ svn-src-head@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-head To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"
Re: svn commit: r264265 - in head: crypto/openssl/crypto/bn crypto/openssl/crypto/ec crypto/openssl/ssl sys/fs/nfsserver
On 2014-04-08 13:27, Xin LI wrote: Author: delphij Date: Tue Apr 8 18:27:32 2014 New Revision: 264265 URL: http://svnweb.freebsd.org/changeset/base/264265 Log: Fix NFS deadlock vulnerability. [SA-14:05] Fix "Heartbleed" vulnerability and ECDSA Cache Side-channel Attack in OpenSSL. [SA-14:06] Modified: head/crypto/openssl/crypto/bn/bn.h head/crypto/openssl/crypto/bn/bn_lib.c head/crypto/openssl/crypto/ec/ec2_mult.c head/crypto/openssl/ssl/d1_both.c head/crypto/openssl/ssl/t1_lib.c head/sys/fs/nfsserver/nfs_nfsdserv.c __FreeBSD_version is needed too. Also, that this was a partial release of 1.0.1g is confusing a LOT of users. They think they are still vulnerable. They expect to see 1.0.1g in 'openssl version'. We could have our own version string in 'openssl version' to remedy this. -- Regards, Bryan Drewery ___ svn-src-head@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-head To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"
svn commit: r264276 - head/usr.sbin/binmiscctl
Author: brueffer Date: Tue Apr 8 20:59:02 2014 New Revision: 264276 URL: http://svnweb.freebsd.org/changeset/base/264276 Log: Quick mdoc/whitespace/spelling pass, this needs some more work. Modified: head/usr.sbin/binmiscctl/binmiscctl.8 Modified: head/usr.sbin/binmiscctl/binmiscctl.8 == --- head/usr.sbin/binmiscctl/binmiscctl.8 Tue Apr 8 20:54:13 2014 (r264275) +++ head/usr.sbin/binmiscctl/binmiscctl.8 Tue Apr 8 20:59:02 2014 (r264276) @@ -27,7 +27,7 @@ .\" .\" Support for miscellaneous binary image activators .\" -.Dd May 14, 2013 +.Dd April 8, 2014 .Dt 8 .Os .Sh NAME @@ -37,14 +37,14 @@ .Nm .Cm add .Ar name -.Cm --interpreter +.Cm --interpreter .Ar path -.Cm --magic +.Cm --magic .Ar magic .Cm --size .Ar size -.Op --mask Ar mask -.Op --offset Ar offset +.Op --mask Ar mask +.Op --offset Ar offset .Op --set-enabled .Nm .Cm remove @@ -65,8 +65,10 @@ The .Nm utility is the management utility for configuring miscellaneous binaries image -activators in the kernel. It allows the adding, deleting, disabling, -enabling, and looking up interpreters. Also, all the interpreters can +activators in the kernel. +It allows the adding, deleting, disabling, +enabling, and looking up interpreters. +Also, all the interpreters can be listed as well. .Pp The first argument on the command line indicates the operation to be @@ -76,7 +78,7 @@ Operation must be one of the following: .It Xo .Cm add .Ar name -.Cm --interpreter +.Cm --interpreter .Ar path .Cm --magic .Ar magic @@ -86,10 +88,11 @@ Operation must be one of the following: .Op --offset Ar offset .Op --set-enabled .Xc -Add a new activator entry in the kernel. You must specify an +Add a new activator entry in the kernel. +You must specify an unique .Ar name, -interpreter path and its arguments +interpreter path and its arguments .Ar path, header .Ar magic @@ -103,25 +106,26 @@ in bytes. Optionally you may specify a .Ar mask to do a bitwise AND with the header bytes. - This effectively allows you to ignore fields in the binary header that -do not uniquely indentfy binary file's type. +do not uniquely indentify binary file's type. .Pp An .Ar offset may be specified for the magic bytes using the .Ar --offset -argument. By default the +argument. +By default the .Ar offset is zero. .Pp To set the activator entry enabled the .Ar --set-enabled -option is used. The activator default state is disabled. +option is used. +The activator default state is disabled. .Pp The interpreter .Ar path -may also arguments for the interpreter including +may also arguments for the interpreter including .Ar #a which gets replaced by the old argv0 value in the interpreter string. .It Cm remove Ar name @@ -156,31 +160,31 @@ Set the state of the .Ar llvmbc image activator to disabled. .Pp -.Dl binmiscctl enable llvmbc +.Dl binmiscctl enable llvmbc .Pp Set the state of the .Ar llvmbc image activator to enabled. .Pp -.Dl binmiscctl remove llvmbc +.Dl binmiscctl remove llvmbc .Pp Delete the .Ar llvmbc image activator. .Pp -.Dl binmiscctl lookup llvmbc +.Dl binmiscctl lookup llvmbc .Pp Lookup and list the record for the .Ar llvmbc image activator. .Sh SEE ALSO +.Xr lli 1 , .Xr execve 2 -.Xr lli 1 .Sh HISTORY The .Cm binmiscctl command was added in -.Fx 10.0 . +.Fx 10.1 . It was developed to support the imgact_binmisc kernel module. .Sh AUTHORS Stacey D Son ___ svn-src-head@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-head To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"
svn commit: r264277 - head/usr.sbin/bhyve
Author: jhb Date: Tue Apr 8 21:02:03 2014 New Revision: 264277 URL: http://svnweb.freebsd.org/changeset/base/264277 Log: Handle single-byte reads from the bvmcons port (0x220) by returning 0xff. Some guests may attempt to read from this port to identify psuedo-PNP ISA devices. (The ie(4) driver in FreeBSD/i386 is one example.) Reviewed by: grehan Modified: head/usr.sbin/bhyve/consport.c Modified: head/usr.sbin/bhyve/consport.c == --- head/usr.sbin/bhyve/consport.c Tue Apr 8 20:59:02 2014 (r264276) +++ head/usr.sbin/bhyve/consport.c Tue Apr 8 21:02:03 2014 (r264277) @@ -110,6 +110,15 @@ console_handler(struct vmctx *ctx, int v return (0); } + /* +* Guests might probe this port to look for old ISA devices +* using single-byte reads. Return 0xff for those. +*/ + if (bytes == 1 && in) { + *eax = 0xff; + return (0); + } + if (bytes != 4) return (-1); ___ svn-src-head@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-head To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"
svn commit: r264279 - in head/sys/cam: ctl scsi
Author: mav Date: Tue Apr 8 21:30:10 2014 New Revision: 264279 URL: http://svnweb.freebsd.org/changeset/base/264279 Log: Oops! Few quick fixes for r264274. Modified: head/sys/cam/ctl/ctl_backend_ramdisk.c head/sys/cam/scsi/scsi_all.h Modified: head/sys/cam/ctl/ctl_backend_ramdisk.c == --- head/sys/cam/ctl/ctl_backend_ramdisk.c Tue Apr 8 21:06:58 2014 (r264278) +++ head/sys/cam/ctl/ctl_backend_ramdisk.c Tue Apr 8 21:30:10 2014 (r264279) @@ -546,6 +546,7 @@ ctl_backend_ramdisk_create(struct ctl_be be_lun->softc = softc; + unmap = 0; for (i = 0; i < req->num_be_args; i++) { if (strcmp(req->kern_be_args[i].kname, "unmap") == 0 && strcmp(req->kern_be_args[i].kvalue, "on") == 0) { @@ -565,7 +566,7 @@ ctl_backend_ramdisk_create(struct ctl_be be_lun->flags = CTL_BE_RAMDISK_LUN_UNCONFIGURED; be_lun->ctl_be_lun.flags = CTL_LUN_FLAG_PRIMARY; if (unmap) - be_lun->ctl_be_lun.flags = CTL_LUN_FLAG_UNMAP; + be_lun->ctl_be_lun.flags |= CTL_LUN_FLAG_UNMAP; be_lun->ctl_be_lun.be_lun = be_lun; if (params->flags & CTL_LUN_FLAG_ID_REQ) { Modified: head/sys/cam/scsi/scsi_all.h == --- head/sys/cam/scsi/scsi_all.hTue Apr 8 21:06:58 2014 (r264278) +++ head/sys/cam/scsi/scsi_all.hTue Apr 8 21:30:10 2014 (r264279) @@ -858,7 +858,7 @@ struct scsi_unmap_header { uint8_t length[2]; uint8_t desc_length[2]; - uint8_t reserved[8]; + uint8_t reserved[4]; }; struct scsi_unmap_desc ___ svn-src-head@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-head To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"
svn commit: r264280 - in head/sys: conf modules
Author: sbruno Date: Tue Apr 8 21:39:51 2014 New Revision: 264280 URL: http://svnweb.freebsd.org/changeset/base/264280 Log: Actually, since this is what I thought I was doing, only allow the binmisc code to be build on amd64/i386 for the kernel. Update NOTES with some indication of what this code is used for. Pointed out by jhb@ ... thanks! Submitted by: jhb@ Modified: head/sys/conf/NOTES head/sys/conf/options.amd64 head/sys/conf/options.i386 head/sys/modules/Makefile Modified: head/sys/conf/NOTES == --- head/sys/conf/NOTES Tue Apr 8 21:30:10 2014(r264279) +++ head/sys/conf/NOTES Tue Apr 8 21:39:51 2014(r264280) @@ -2963,3 +2963,6 @@ options RANDOM_YARROW # Yarrow RNG ##options RANDOM_FORTUNA # Fortuna RNG - not yet implemented optionsRANDOM_DEBUG# Debugging messages optionsRANDOM_RWFILE # Read and write entropy cache + +# Module to enable execution of application via emulators like QEMU +options IMAGACT_BINMISC Modified: head/sys/conf/options.amd64 == --- head/sys/conf/options.amd64 Tue Apr 8 21:30:10 2014(r264279) +++ head/sys/conf/options.amd64 Tue Apr 8 21:39:51 2014(r264280) @@ -21,6 +21,7 @@ COMPAT_FREEBSD32 opt_compat.h COMPAT_LINUX32 opt_compat.h #COMPAT_SVR4 opt_dontuse.h #DEBUG_SVR4opt_svr4.h +IMAGACT_BINMISCopt_dontuse.h LINPROCFS opt_dontuse.h LINSYSFS opt_dontuse.h NDISAPIopt_dontuse.h Modified: head/sys/conf/options.i386 == --- head/sys/conf/options.i386 Tue Apr 8 21:30:10 2014(r264279) +++ head/sys/conf/options.i386 Tue Apr 8 21:39:51 2014(r264280) @@ -26,6 +26,7 @@ IBCS2 opt_dontuse.h COMPAT_LINUX opt_dontuse.h COMPAT_SVR4opt_dontuse.h DEBUG_SVR4 opt_svr4.h +IMAGACT_BINMISCopt_binmisc.h LINPROCFS opt_dontuse.h LINSYSFS opt_dontuse.h NDISAPIopt_dontuse.h Modified: head/sys/modules/Makefile == --- head/sys/modules/Makefile Tue Apr 8 21:30:10 2014(r264279) +++ head/sys/modules/Makefile Tue Apr 8 21:39:51 2014(r264280) @@ -148,7 +148,7 @@ SUBDIR= \ if_vlan \ ${_igb} \ ${_iir} \ - imgact_binmisc \ + ${_imgact_binmisc} \ ${_io} \ ${_ipoib} \ ${_ipdivert} \ @@ -372,6 +372,7 @@ SUBDIR= \ .if ${MACHINE_CPUARCH} == "i386" || ${MACHINE_CPUARCH} == "amd64" _filemon= filemon +_imagact_binmisc= imgact_binmisc _vmware= vmware .endif ___ svn-src-head@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-head To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"
svn commit: r264281 - head/tools/tools/nanobsd
Author: imp Date: Tue Apr 8 21:58:04 2014 New Revision: 264281 URL: http://svnweb.freebsd.org/changeset/base/264281 Log: Also ignore files from Murcirial (.hg) and git (.git) when copying file trees. Modified: head/tools/tools/nanobsd/nanobsd.sh Modified: head/tools/tools/nanobsd/nanobsd.sh == --- head/tools/tools/nanobsd/nanobsd.sh Tue Apr 8 21:39:51 2014 (r264280) +++ head/tools/tools/nanobsd/nanobsd.sh Tue Apr 8 21:58:04 2014 (r264281) @@ -436,7 +436,7 @@ populate_slice ( ) ( if [ -n "${dir}" -a -d "${dir}" ]; then echo "Populating ${lbl} from ${dir}" cd ${dir} - find . -print | grep -Ev '/(CVS|\.svn)' | cpio -dumpv ${mnt} + find . -print | grep -Ev '/(CVS|\.svn|\.hg|\.git)' | cpio -dumpv ${mnt} fi df -i ${mnt} umount ${mnt} @@ -705,7 +705,7 @@ cust_allow_ssh_root () ( cust_install_files () ( cd ${NANO_TOOLS}/Files - find . -print | grep -Ev '/(CVS|\.svn)' | cpio -Ldumpv ${NANO_WORLDDIR} + find . -print | grep -Ev '/(CVS|\.svn|\.hg|\.git)' | cpio -Ldumpv ${NANO_WORLDDIR} ) ### ___ svn-src-head@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-head To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"
Re: svn commit: r264269 - in head: sys/conf sys/kern sys/modules sys/modules/imgact_binmisc sys/sys usr.sbin usr.sbin/binmiscctl
> > > > Added: > > head/sys/kern/imgact_binmisc.c (contents, props changed) > > head/sys/modules/imgact_binmisc/ > > head/sys/modules/imgact_binmisc/Makefile (contents, props changed) > > head/sys/sys/imgact_binmisc.h (contents, props changed) > > head/usr.sbin/binmiscctl/ > > head/usr.sbin/binmiscctl/Makefile (contents, props changed) > > head/usr.sbin/binmiscctl/binmiscctl.8 (contents, props changed) > > head/usr.sbin/binmiscctl/binmiscctl.c (contents, props changed) > > Modified: > > head/sys/conf/files.amd64 > > head/sys/conf/files.i386 > > head/sys/modules/Makefile > > head/usr.sbin/Makefile > > Maybe put it in sys/conf/files instead of only amd64|i386? You enabled > the module build for all architectures. Please also add it to sys/conf/NOTES. > I've adjusted things to only build on amd64/i386. Thank you for pointing out my misconfiguration. I've updated NOTES as well at svn r264280 to reflext this and updated options for amd64/i386. I haven't tested on non-x86 h/w and have no idea if it works or not. I didn't feel comfortable building this driver in the non-x86 case. If there is a use case/tester for the other arch's, I'll be more than happy to change this. sean signature.asc Description: This is a digitally signed message part
svn commit: r264282 - in head/sys: kern sys
Author: sbruno Date: Tue Apr 8 22:12:01 2014 New Revision: 264282 URL: http://svnweb.freebsd.org/changeset/base/264282 Log: sys/kern/imgact_binmisc.c -- free the right pointer mask vs magic sys/sys/imagact_binmisc.h -- cleanup white space tabs vs spaces -- remove stray " in comment Submitted by: jmallett@ Modified: head/sys/kern/imgact_binmisc.c head/sys/sys/imgact_binmisc.h Modified: head/sys/kern/imgact_binmisc.c == --- head/sys/kern/imgact_binmisc.c Tue Apr 8 21:58:04 2014 (r264281) +++ head/sys/kern/imgact_binmisc.c Tue Apr 8 22:12:01 2014 (r264282) @@ -182,7 +182,7 @@ imgact_binmisc_destroy_entry(imgact_binm { if (!ibe) return; - if (ibe->ibe_mask) + if (ibe->ibe_magic) free(ibe->ibe_magic, M_BINMISC); if (ibe->ibe_mask) free(ibe->ibe_mask, M_BINMISC); Modified: head/sys/sys/imgact_binmisc.h == --- head/sys/sys/imgact_binmisc.h Tue Apr 8 21:58:04 2014 (r264281) +++ head/sys/sys/imgact_binmisc.h Tue Apr 8 22:12:01 2014 (r264282) @@ -40,7 +40,7 @@ #defineIBE_VERSION 1 /* struct ximgact_binmisc_entry version. */ #defineIBE_NAME_MAX32 /* Max size for entry name. */ #defineIBE_MAGIC_MAX 256 /* Max size for header magic and mask. */ -#define IBE_ARG_LEN_MAX256 /* Max space for optional interpreter command- +#defineIBE_ARG_LEN_MAX 256 /* Max space for optional interpreter command- line argruments seperated by white space */ #defineIBE_INTERP_LEN_MAX (MAXPATHLEN + IBE_ARG_LEN_MAX) #defineIBE_MAX_ENTRIES 64 /* Max number of interpreter entries. */ @@ -70,7 +70,7 @@ typedef struct ximgact_binmisc_entry { /* * sysctl() command names. */ -#define IBE_SYSCTL_NAME"kern.binmisc" +#defineIBE_SYSCTL_NAME "kern.binmisc" #defineIBE_SYSCTL_NAME_ADD IBE_SYSCTL_NAME ".add" #defineIBE_SYSCTL_NAME_REMOVE IBE_SYSCTL_NAME ".remove" @@ -82,7 +82,7 @@ typedef struct ximgact_binmisc_entry { #defineKMOD_NAME "imgact_binmisc" /* - * Examples of manipulating he interpreter table using sysctlbyname(3): + * Examples of manipulating the interpreter table using sysctlbyname(3): * * #include * @@ -127,7 +127,7 @@ typedef struct ximgact_binmisc_entry { * xbe.xbe_version = IBE_VERSION; * strlcpy(xbe.xbe_name, "llvm_bc", IBE_NAME_MAX); * error = sysctlbyname(IBE_SYSCTL_NAME_DISABLE, NULL, NULL, &xbe, sizeof(xbe)); - * // OR sysctlbyname(IBE_SYSCTL_NAME_ENABLE", NULL, NULL, &xbe, sizeof(xbe)); + * // OR sysctlbyname(IBE_SYSCTL_NAME_ENABLE, NULL, NULL, &xbe, sizeof(xbe)); * // OR sysctlbyname(IBE_SYSCTL_NAME_REMOVE, NULL, NULL, &xbe, sizeof(xbe)); * * // Lookup image activator "llvm_bc" ___ svn-src-head@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-head To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"
svn commit: r264283 - head/sys/cam/ctl
Author: mav Date: Tue Apr 8 22:36:39 2014 New Revision: 264283 URL: http://svnweb.freebsd.org/changeset/base/264283 Log: Another fix for r264274. Last moment cosmetic changes are evil! Modified: head/sys/cam/ctl/ctl_backend_block.c Modified: head/sys/cam/ctl/ctl_backend_block.c == --- head/sys/cam/ctl/ctl_backend_block.cTue Apr 8 22:12:01 2014 (r264282) +++ head/sys/cam/ctl/ctl_backend_block.cTue Apr 8 22:36:39 2014 (r264283) @@ -823,7 +823,7 @@ ctl_be_block_unmap_dev(struct ctl_be_blo beio->io_len += len; ctl_be_block_unmap_dev_range(be_lun, beio, scsi_8btou64(buf->lba) * be_lun->blocksize, len, - (end - buf < 32) ? TRUE : FALSE); + (end - buf < 2) ? TRUE : FALSE); } } else ctl_be_block_unmap_dev_range(be_lun, beio, ___ svn-src-head@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-head To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"
svn commit: r264289 - head/sys/sys stable/10/sys/sys stable/9/sys/sys
Author: peter Date: Wed Apr 9 01:26:58 2014 New Revision: 264289 URL: http://svnweb.freebsd.org/changeset/base/264289 Log: Bump osreldate for tracking SA-14:06 Modified: head/sys/sys/param.h Changes in other areas also in this revision: Modified: stable/10/sys/sys/param.h stable/9/sys/sys/param.h Modified: head/sys/sys/param.h == --- head/sys/sys/param.hWed Apr 9 00:46:12 2014(r264288) +++ head/sys/sys/param.hWed Apr 9 01:26:58 2014(r264289) @@ -58,7 +58,7 @@ * in the range 5 to 9. */ #undef __FreeBSD_version -#define __FreeBSD_version 1100018 /* Master, propagated to newvers */ +#define __FreeBSD_version 1100019 /* Master, propagated to newvers */ /* * __FreeBSD_kernel__ indicates that this system uses the kernel of FreeBSD, ___ svn-src-head@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-head To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"
svn commit: r264291 - head/sys/modules
Author: sbruno Date: Wed Apr 9 03:46:04 2014 New Revision: 264291 URL: http://svnweb.freebsd.org/changeset/base/264291 Log: Spell imgact_binmisc correctly Modified: head/sys/modules/Makefile Modified: head/sys/modules/Makefile == --- head/sys/modules/Makefile Wed Apr 9 03:39:57 2014(r264290) +++ head/sys/modules/Makefile Wed Apr 9 03:46:04 2014(r264291) @@ -372,7 +372,7 @@ SUBDIR= \ .if ${MACHINE_CPUARCH} == "i386" || ${MACHINE_CPUARCH} == "amd64" _filemon= filemon -_imagact_binmisc= imgact_binmisc +_imgact_binmisc= imgact_binmisc _vmware= vmware .endif ___ svn-src-head@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-head To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"
svn commit: r264292 - head/sys/dev/ath
Author: adrian Date: Wed Apr 9 03:51:05 2014 New Revision: 264292 URL: http://svnweb.freebsd.org/changeset/base/264292 Log: Add a function to check whether the given register can be accessed whilst the chip is asleep. It's AR5416 and later specific; I'll add a HAL method to generalise it later. Tested: * AR5416, STA mode Modified: head/sys/dev/ath/ah_osdep.c Modified: head/sys/dev/ath/ah_osdep.c == --- head/sys/dev/ath/ah_osdep.c Wed Apr 9 03:46:04 2014(r264291) +++ head/sys/dev/ath/ah_osdep.c Wed Apr 9 03:51:05 2014(r264292) @@ -138,6 +138,24 @@ ath_hal_ether_sprintf(const u_int8_t *ma #ifdef AH_DEBUG +/* + * XXX This is highly relevant only for the AR5416 and later + * PCI/PCIe NICs. It'll need adjustment for other hardware + * variations. + */ +static int +ath_hal_reg_whilst_asleep(struct ath_hal *ah, uint32_t reg) +{ + + if (reg >= 0x4000 && reg < 0x5000) + return (1); + if (reg >= 0x6000 && reg < 0x7000) + return (1); + if (reg >= 0x7000 && reg < 0x8000) + return (1); + return (0); +} + void DO_HALDEBUG(struct ath_hal *ah, u_int mask, const char* fmt, ...) { @@ -254,7 +272,8 @@ ath_hal_reg_write(struct ath_hal *ah, u_ bus_space_handle_t h = ah->ah_sh; /* Debug - complain if we haven't fully waken things up */ - if (ah->ah_powerMode != HAL_PM_AWAKE) { + if (! ath_hal_reg_whilst_asleep(ah, reg) && + ah->ah_powerMode != HAL_PM_AWAKE) { ath_hal_printf(ah, "%s: reg=0x%08x, val=0x%08x, pm=%d\n", __func__, reg, val, ah->ah_powerMode); } @@ -285,7 +304,8 @@ ath_hal_reg_read(struct ath_hal *ah, u_i u_int32_t val; /* Debug - complain if we haven't fully waken things up */ - if (ah->ah_powerMode != HAL_PM_AWAKE) { + if (! ath_hal_reg_whilst_asleep(ah, reg) && + ah->ah_powerMode != HAL_PM_AWAKE) { ath_hal_printf(ah, "%s: reg=0x%08x, pm=%d\n", __func__, reg, ah->ah_powerMode); } @@ -343,7 +363,8 @@ ath_hal_reg_write(struct ath_hal *ah, u_ bus_space_handle_t h = ah->ah_sh; /* Debug - complain if we haven't fully waken things up */ - if (ah->ah_powerMode != HAL_PM_AWAKE) { + if (! ath_hal_reg_whilst_asleep(ah, reg) && + ah->ah_powerMode != HAL_PM_AWAKE) { ath_hal_printf(ah, "%s: reg=0x%08x, val=0x%08x, pm=%d\n", __func__, reg, val, ah->ah_powerMode); } @@ -363,7 +384,8 @@ ath_hal_reg_read(struct ath_hal *ah, u_i u_int32_t val; /* Debug - complain if we haven't fully waken things up */ - if (ah->ah_powerMode != HAL_PM_AWAKE) { + if (! ath_hal_reg_whilst_asleep(ah, reg) && + ah->ah_powerMode != HAL_PM_AWAKE) { ath_hal_printf(ah, "%s: reg=0x%08x, pm=%d\n", __func__, reg, ah->ah_powerMode); } ___ svn-src-head@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-head To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"
svn commit: r264293 - head/sys/dev/nfe
Author: yongari Date: Wed Apr 9 05:15:40 2014 New Revision: 264293 URL: http://svnweb.freebsd.org/changeset/base/264293 Log: Add workaround for MCP61 Ethernet controller found on MSI K9 motherboard. PHY hardware used for the controller responded at all possible addresses which in turn resulted in having 32 PHYs for the controller. If driver detects "MSI K9N6PGM2-V2 (MS-7309)" motherboard, tell miibus(4) PHY is located at 0. Tested by:Chris H Modified: head/sys/dev/nfe/if_nfe.c Modified: head/sys/dev/nfe/if_nfe.c == --- head/sys/dev/nfe/if_nfe.c Wed Apr 9 03:51:05 2014(r264292) +++ head/sys/dev/nfe/if_nfe.c Wed Apr 9 05:15:40 2014(r264293) @@ -79,6 +79,7 @@ static int nfe_suspend(device_t); static int nfe_resume(device_t); static int nfe_shutdown(device_t); static int nfe_can_use_msix(struct nfe_softc *); +static int nfe_detect_msik9(struct nfe_softc *); static void nfe_power(struct nfe_softc *); static int nfe_miibus_readreg(device_t, int, int); static int nfe_miibus_writereg(device_t, int, int, int); @@ -334,13 +335,38 @@ nfe_alloc_msix(struct nfe_softc *sc, int } } + +static int +nfe_detect_msik9(struct nfe_softc *sc) +{ + static const char *maker = "MSI"; + static const char *product = "K9N6PGM2-V2 (MS-7309)"; + char *m, *p; + int found; + + found = 0; + m = getenv("smbios.planar.maker"); + p = getenv("smbios.planar.product"); + if (m != NULL && p != NULL) { + if (strcmp(m, maker) == 0 && strcmp(p, product) == 0) + found = 1; + } + if (m != NULL) + freeenv(m); + if (p != NULL) + freeenv(p); + + return (found); +} + + static int nfe_attach(device_t dev) { struct nfe_softc *sc; struct ifnet *ifp; bus_addr_t dma_addr_max; - int error = 0, i, msic, reg, rid; + int error = 0, i, msic, phyloc, reg, rid; sc = device_get_softc(dev); sc->nfe_dev = dev; @@ -608,8 +634,16 @@ nfe_attach(device_t dev) #endif /* Do MII setup */ + phyloc = MII_PHY_ANY; + if (sc->nfe_devid == PCI_PRODUCT_NVIDIA_MCP61_LAN1 || + sc->nfe_devid == PCI_PRODUCT_NVIDIA_MCP61_LAN2 || + sc->nfe_devid == PCI_PRODUCT_NVIDIA_MCP61_LAN3 || + sc->nfe_devid == PCI_PRODUCT_NVIDIA_MCP61_LAN4) { + if (nfe_detect_msik9(sc) != 0) + phyloc = 0; + } error = mii_attach(dev, &sc->nfe_miibus, ifp, nfe_ifmedia_upd, - nfe_ifmedia_sts, BMSR_DEFCAPMASK, MII_PHY_ANY, MII_OFFSET_ANY, + nfe_ifmedia_sts, BMSR_DEFCAPMASK, phyloc, MII_OFFSET_ANY, MIIF_DOPAUSE); if (error != 0) { device_printf(dev, "attaching PHYs failed\n"); ___ svn-src-head@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-head To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"
svn commit: r264294 - head/sys/dev/usb/controller
Author: hselasky Date: Wed Apr 9 06:27:04 2014 New Revision: 264294 URL: http://svnweb.freebsd.org/changeset/base/264294 Log: Fix for infinite XHCI reset loops when the set address USB request fails. MFC after:2 days Modified: head/sys/dev/usb/controller/xhci.c Modified: head/sys/dev/usb/controller/xhci.c == --- head/sys/dev/usb/controller/xhci.c Wed Apr 9 05:15:40 2014 (r264293) +++ head/sys/dev/usb/controller/xhci.c Wed Apr 9 06:27:04 2014 (r264294) @@ -1218,8 +1218,20 @@ retry: */ if (timeout == 0 && xhci_reset_command_queue_locked(sc) == 0) { - timeout = 1; - goto retry; + temp = le32toh(trb->dwTrb3); + + /* +* Avoid infinite XHCI reset loops if the set +* address command fails to respond due to a +* non-enumerating device: +*/ + if (XHCI_TRB_3_TYPE_GET(temp) == XHCI_TRB_TYPE_ADDRESS_DEVICE && + (temp & XHCI_TRB_3_BSR_BIT) == 0) { + DPRINTF("Set address timeout\n"); + } else { + timeout = 1; + goto retry; + } } else { DPRINTF("Controller reset!\n"); usb_bus_reset_async_locked(&sc->sc_bus); ___ svn-src-head@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-head To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"