[Glibc-bsd-commits] r4904 - in trunk/kfreebsd-9/debian: . patches
Robert Millan
rmh at alioth.debian.org
Thu Aug 22 22:01:13 UTC 2013
Author: rmh
Date: 2013-08-22 22:01:12 +0000 (Thu, 22 Aug 2013)
New Revision: 4904
Added:
trunk/kfreebsd-9/debian/patches/svn_update.diff
Modified:
trunk/kfreebsd-9/debian/changelog
trunk/kfreebsd-9/debian/patches/series
Log:
* svn_update.diff: Update to rev 254630.
- Fix for CVE-2013-3077. (Closes: #720468)
- Fix for CVE-2013-5209. (Closes: #720475)
Modified: trunk/kfreebsd-9/debian/changelog
===================================================================
--- trunk/kfreebsd-9/debian/changelog 2013-08-22 20:02:18 UTC (rev 4903)
+++ trunk/kfreebsd-9/debian/changelog 2013-08-22 22:01:12 UTC (rev 4904)
@@ -1,3 +1,11 @@
+kfreebsd-9 (9.2~svn254368-2) unstable; urgency=high
+
+ * svn_update.diff: Update to rev 254630.
+ - Fix for CVE-2013-3077. (Closes: #720468)
+ - Fix for CVE-2013-5209. (Closes: #720475)
+
+ -- Robert Millan <rmh at debian.org> Thu, 22 Aug 2013 22:47:02 +0200
+
kfreebsd-9 (9.2~svn254368-1) unstable; urgency=medium
* New upstream release (9.2-RC2).
Modified: trunk/kfreebsd-9/debian/patches/series
===================================================================
--- trunk/kfreebsd-9/debian/patches/series 2013-08-22 20:02:18 UTC (rev 4903)
+++ trunk/kfreebsd-9/debian/patches/series 2013-08-22 22:01:12 UTC (rev 4904)
@@ -1,5 +1,5 @@
# Patches from (or merged in) upstream
-
+svn_update.diff
000_cpuclockid2_syscall.diff
000_cpuclockid2_compat32.diff
Added: trunk/kfreebsd-9/debian/patches/svn_update.diff
===================================================================
--- trunk/kfreebsd-9/debian/patches/svn_update.diff (rev 0)
+++ trunk/kfreebsd-9/debian/patches/svn_update.diff 2013-08-22 22:01:12 UTC (rev 4904)
@@ -0,0 +1,455 @@
+
+svn diff -r 254368:254630
+
+--- a/sys/boot/forth/beastie.4th
++++ b/sys/boot/forth/beastie.4th
+@@ -123,6 +123,76 @@
+ 0 25 at-xy
+ ;
+
++: tribute-art ( x y -- ) \ see tribute[bw]-logo
++
++ \ Disable the brand art (we're going to use that space)
++ s" set loader_brand=none" evaluate
++
++ \ Blank out the frame of the menu and move the title to left
++ s" set loader_menu_title=" evaluate
++ s" set loader_menu_frame=none" evaluate
++
++ \ Move the menu to the center of the screen
++ s" set loader_menu_x=26" evaluate
++ s" set loader_menu_y=13" evaluate
++ s" set loader_menu_timeout_x=21" evaluate
++ s" set loader_menu_timeout_y=24" evaluate
++
++ 2 - swap 39 - swap \ top-left (see `fbsdbw-logo' comments above)
++
++ 2dup at-xy 11 spaces ." ,d b." 1+
++ 2dup at-xy ." ,d88] [88b." 1+
++ 2dup at-xy ." ,d888P" 34 emit ." ,d88b. " 34 emit ." Y888b." 1+
++ 2dup at-xy ." , <888P" 34 emit ." ,dP" 34 emit ." ,db." 34 emit
++ ." Yb. " 34 emit ." Y888> ," 1+
++ 2dup at-xy ." <88b.~ ,d888 " 34 emit ." YP" 34 emit
++ ." 888b. ~,d88>" 1+
++ 2dup at-xy ." ," 34 emit ." Y888888P" 34 emit ." ,db.,db." 34 emit
++ ." Y888888P" 34 emit ." ," 1+
++ 2dup at-xy ." <88b." 34 emit ." YP" 34 emit ." _ " 34 emit
++ ." YP" 34 emit 34 emit ." YP" 34 emit ." _ " 34 emit
++ ." YP" 34 emit ." ,d88>" 1+
++ 2dup at-xy ." " 34 emit ." Y88b.,dP Yb.,d88P" 34 emit 1+
++ at-xy ." " 34 emit ." YP" 34 emit ." " 34 emit
++ ." YP" 34 emit ." "
++;
++
++: tribute-text ( x y -- ) \ see tribute[bw]-logo
++
++ swap 2 - swap \ beastie adjustment (see `fbsdbw-logo' comments above)
++
++ 2dup at-xy ." CEO Workstation" 1+
++ 1+
++ 2dup at-xy ." Nakatomi Socrates FreeBSD 9.2" 1+
++ 2dup at-xy ." Z-Level Central Core" 1+
++ 1+
++ at-xy ." Preliminary Clearance Approved."
++;
++
++: tribute-logo ( x y -- ) \ color Socrates tribute (16 rows x 32 columns)
++
++ \ Produce the tribute art in bright green
++ 2dup at-xy ." [32;1m" 2dup tribute-art ." [37m"
++
++ \ Produce the tribute text in regular green
++ 2dup at-xy ." [32m" 2dup tribute-text ." [37m"
++
++ \ Distinguish the ``Free'' in tribute-text
++ 2 + swap 16 + swap at-xy ." Free"
++
++ \ Put the cursor back at the bottom
++ 0 25 at-xy
++;
++
++: tributebw-logo ( x y -- ) \ Socrates tribute (16 rows x 32 columns)
++
++ \ Produce the tribute art and text
++ 2dup tribute-art tribute-text
++
++ \ Put the cursor back at the bottom
++ 0 25 at-xy
++;
++
+ : orb-logo ( x y -- ) \ color Orb mascot (15 rows x 30 columns)
+
+ 3 + \ beastie adjustment (see `fbsdbw-logo' comments above)
+@@ -181,8 +251,10 @@
+ \ beastie Color ``Helper Daemon'' mascot (19 rows x 34 columns)
+ \ beastiebw B/W ``Helper Daemon'' mascot (19 rows x 34 columns)
+ \ fbsdbw "FreeBSD" logo in B/W (13 rows x 21 columns)
+-\ orb Color ``Orb'' mascot (15 rows x 30 columns) (default)
++\ orb Color ``Orb'' mascot (15 rows x 30 columns) (2nd default)
+ \ orbbw B/W ``Orb'' mascot (15 rows x 32 columns)
++\ tribute Color ``Tribute'' (must fit 19 rows x 34 columns) (default)
++\ tributebw B/W ``Tribute'' (must fit 19 rows x 34 columns)
+ \
+ \ NOTE: Setting `loader_logo' to an undefined value (such as "none") will
+ \ prevent beastie from being drawn.
+@@ -203,9 +275,21 @@
+ s" loader_logo" getenv dup -1 = if
+ logoX @ logoY @
+ loader_color? if
+- orb-logo
++ s" tribute-logo"
++ sfind if
++ execute
++ else
++ drop
++ orb-logo
++ then
+ else
+- orbbw-logo
++ s" tributebw-logo"
++ sfind if
++ execute
++ else
++ drop
++ orbbw-logo
++ then
+ then
+ drop exit
+ then
+@@ -230,6 +314,24 @@
+ logoX @ logoY @ orbbw-logo
+ 2drop exit
+ then
++ 2dup s" tribute" compare-insensitive 0= if
++ logoX @ logoY @
++ s" tribute-logo" sfind if
++ execute
++ else
++ orb-logo
++ then
++ 2drop exit
++ then
++ 2dup s" tributebw" compare-insensitive 0= if
++ logoX @ logoY @
++ s" tributebw-logo" sfind if
++ execute
++ else
++ orbbw-logo
++ then
++ 2drop exit
++ then
+
+ 2drop
+ ;
+--- a/sys/dev/e1000/if_em.c
++++ b/sys/dev/e1000/if_em.c
+@@ -2277,7 +2277,7 @@
+
+ /* Mask to use in the irq trigger */
+ if (adapter->msix_mem)
+- trigger = rxr->ims; /* RX for 82574 */
++ trigger = rxr->ims;
+ else
+ trigger = E1000_ICS_RXDMT0;
+
+@@ -2742,7 +2742,7 @@
+ em_setup_msix(struct adapter *adapter)
+ {
+ device_t dev = adapter->dev;
+- int val = 0;
++ int val;
+
+ /*
+ ** Setup MSI/X for Hartwell: tests have shown
+@@ -2756,37 +2756,43 @@
+ int rid = PCIR_BAR(EM_MSIX_BAR);
+ adapter->msix_mem = bus_alloc_resource_any(dev,
+ SYS_RES_MEMORY, &rid, RF_ACTIVE);
+- if (!adapter->msix_mem) {
++ if (adapter->msix_mem == NULL) {
+ /* May not be enabled */
+ device_printf(adapter->dev,
+ "Unable to map MSIX table \n");
+ goto msi;
+ }
+ val = pci_msix_count(dev);
+- /* We only need 3 vectors */
+- if (val > 3)
++ /* We only need/want 3 vectors */
++ if (val >= 3)
+ val = 3;
+- if ((val != 3) && (val != 5)) {
+- bus_release_resource(dev, SYS_RES_MEMORY,
+- PCIR_BAR(EM_MSIX_BAR), adapter->msix_mem);
+- adapter->msix_mem = NULL;
++ else {
+ device_printf(adapter->dev,
+- "MSIX: incorrect vectors, using MSI\n");
++ "MSIX: insufficient vectors, using MSI\n");
+ goto msi;
+ }
+
+- if (pci_alloc_msix(dev, &val) == 0) {
++ if ((pci_alloc_msix(dev, &val) == 0) && (val == 3)) {
+ device_printf(adapter->dev,
+ "Using MSIX interrupts "
+ "with %d vectors\n", val);
++ return (val);
+ }
+
+- return (val);
++ /*
++ ** If MSIX alloc failed or provided us with
++ ** less than needed, free and fall through to MSI
++ */
++ pci_release_msi(dev);
+ }
+ msi:
+- val = pci_msi_count(dev);
+- if (val == 1 && pci_alloc_msi(dev, &val) == 0) {
+- adapter->msix = 1;
++ if (adapter->msix_mem != NULL) {
++ bus_release_resource(dev, SYS_RES_MEMORY,
++ PCIR_BAR(EM_MSIX_BAR), adapter->msix_mem);
++ adapter->msix_mem = NULL;
++ }
++ val = 1;
++ if (pci_alloc_msi(dev, &val) == 0) {
+ device_printf(adapter->dev,"Using an MSI interrupt\n");
+ return (val);
+ }
+--- a/sys/dev/e1000/if_igb.c
++++ b/sys/dev/e1000/if_igb.c
+@@ -972,7 +972,13 @@
+ que = &adapter->queues[i];
+
+ err = drbr_enqueue(ifp, txr->br, m);
+- taskqueue_enqueue(que->tq, &txr->txq_task);
++ if (err)
++ return (err);
++ if (IGB_TX_TRYLOCK(txr)) {
++ err = igb_mq_start_locked(ifp, txr);
++ IGB_TX_UNLOCK(txr);
++ } else
++ taskqueue_enqueue(que->tq, &txr->txq_task);
+
+ return (err);
+ }
+@@ -2834,24 +2840,19 @@
+ goto msi;
+
+ /* First try MSI/X */
++ msgs = pci_msix_count(dev);
++ if (msgs == 0)
++ goto msi;
+ rid = PCIR_BAR(IGB_MSIX_BAR);
+ adapter->msix_mem = bus_alloc_resource_any(dev,
+ SYS_RES_MEMORY, &rid, RF_ACTIVE);
+- if (!adapter->msix_mem) {
++ if (adapter->msix_mem == NULL) {
+ /* May not be enabled */
+ device_printf(adapter->dev,
+ "Unable to map MSIX table \n");
+ goto msi;
+ }
+
+- msgs = pci_msix_count(dev);
+- if (msgs == 0) { /* system has msix disabled */
+- bus_release_resource(dev, SYS_RES_MEMORY,
+- PCIR_BAR(IGB_MSIX_BAR), adapter->msix_mem);
+- adapter->msix_mem = NULL;
+- goto msi;
+- }
+-
+ /* Figure out a reasonable auto config value */
+ queues = (mp_ncpus > (msgs-1)) ? (msgs-1) : mp_ncpus;
+
+@@ -2894,20 +2895,32 @@
+ "MSIX Configuration Problem, "
+ "%d vectors configured, but %d queues wanted!\n",
+ msgs, want);
+- return (0);
++ goto msi;
+ }
+- if ((msgs) && pci_alloc_msix(dev, &msgs) == 0) {
++ if ((pci_alloc_msix(dev, &msgs) == 0) && (msgs == want)) {
+ device_printf(adapter->dev,
+ "Using MSIX interrupts with %d vectors\n", msgs);
+ adapter->num_queues = queues;
+ return (msgs);
+ }
++ /*
++ ** If MSIX alloc failed or provided us with
++ ** less than needed, free and fall through to MSI
++ */
++ pci_release_msi(dev);
++
+ msi:
+- msgs = pci_msi_count(dev);
+- if (msgs == 1 && pci_alloc_msi(dev, &msgs) == 0) {
+- device_printf(adapter->dev," Using MSI interrupt\n");
++ if (adapter->msix_mem != NULL) {
++ bus_release_resource(dev, SYS_RES_MEMORY,
++ PCIR_BAR(IGB_MSIX_BAR), adapter->msix_mem);
++ adapter->msix_mem = NULL;
++ }
++ msgs = 1;
++ if (pci_alloc_msi(dev, &msgs) == 0) {
++ device_printf(adapter->dev," Using an MSI interrupt\n");
+ return (msgs);
+ }
++ device_printf(adapter->dev," Using a Legacy interrupt\n");
+ return (0);
+ }
+
+--- a/sys/dev/ixgbe/ixgbe.c
++++ b/sys/dev/ixgbe/ixgbe.c
+@@ -2415,29 +2415,24 @@
+ goto msi;
+
+ /* First try MSI/X */
++ msgs = pci_msix_count(dev);
++ if (msgs == 0)
++ goto msi;
+ rid = PCIR_BAR(MSIX_82598_BAR);
+ adapter->msix_mem = bus_alloc_resource_any(dev,
+ SYS_RES_MEMORY, &rid, RF_ACTIVE);
+- if (!adapter->msix_mem) {
++ if (adapter->msix_mem == NULL) {
+ rid += 4; /* 82599 maps in higher BAR */
+ adapter->msix_mem = bus_alloc_resource_any(dev,
+ SYS_RES_MEMORY, &rid, RF_ACTIVE);
+ }
+- if (!adapter->msix_mem) {
++ if (adapter->msix_mem == NULL) {
+ /* May not be enabled */
+ device_printf(adapter->dev,
+ "Unable to map MSIX table \n");
+ goto msi;
+ }
+
+- msgs = pci_msix_count(dev);
+- if (msgs == 0) { /* system has msix disabled */
+- bus_release_resource(dev, SYS_RES_MEMORY,
+- rid, adapter->msix_mem);
+- adapter->msix_mem = NULL;
+- goto msi;
+- }
+-
+ /* Figure out a reasonable auto config value */
+ queues = (mp_ncpus > (msgs-1)) ? (msgs-1) : mp_ncpus;
+
+@@ -2459,21 +2454,33 @@
+ "MSIX Configuration Problem, "
+ "%d vectors but %d queues wanted!\n",
+ msgs, want);
+- return (0); /* Will go to Legacy setup */
++ goto msi;
+ }
+- if ((msgs) && pci_alloc_msix(dev, &msgs) == 0) {
++ if ((pci_alloc_msix(dev, &msgs) == 0) && (msgs == want)) {
+ device_printf(adapter->dev,
+ "Using MSIX interrupts with %d vectors\n", msgs);
+ adapter->num_queues = queues;
+ return (msgs);
+ }
++ /*
++ ** If MSIX alloc failed or provided us with
++ ** less than needed, free and fall through to MSI
++ */
++ pci_release_msi(dev);
++
+ msi:
+- msgs = pci_msi_count(dev);
+- if (msgs == 1 && pci_alloc_msi(dev, &msgs) == 0)
++ if (adapter->msix_mem != NULL) {
++ bus_release_resource(dev, SYS_RES_MEMORY,
++ rid, adapter->msix_mem);
++ adapter->msix_mem = NULL;
++ }
++ msgs = 1;
++ if (pci_alloc_msi(dev, &msgs) == 0) {
+ device_printf(adapter->dev,"Using an MSI interrupt\n");
+- else
+- device_printf(adapter->dev,"Using a Legacy interrupt\n");
+- return (msgs);
++ return (msgs);
++ }
++ device_printf(adapter->dev,"Using a Legacy interrupt\n");
++ return (0);
+ }
+
+
+--- a/sys/dev/ixgbe/ixv.c
++++ b/sys/dev/ixgbe/ixv.c
+@@ -1680,37 +1680,37 @@
+ ixv_setup_msix(struct adapter *adapter)
+ {
+ device_t dev = adapter->dev;
+- int rid, vectors, want = 2;
++ int rid, want;
+
+
+ /* First try MSI/X */
+ rid = PCIR_BAR(3);
+ adapter->msix_mem = bus_alloc_resource_any(dev,
+ SYS_RES_MEMORY, &rid, RF_ACTIVE);
+- if (!adapter->msix_mem) {
++ if (adapter->msix_mem == NULL) {
+ device_printf(adapter->dev,
+ "Unable to map MSIX table \n");
+ goto out;
+ }
+
+- vectors = pci_msix_count(dev);
+- if (vectors < 2) {
+- bus_release_resource(dev, SYS_RES_MEMORY,
+- rid, adapter->msix_mem);
+- adapter->msix_mem = NULL;
+- goto out;
+- }
+-
+ /*
+ ** Want two vectors: one for a queue,
+ ** plus an additional for mailbox.
+ */
+- if (pci_alloc_msix(dev, &want) == 0) {
++ want = 2;
++ if ((pci_alloc_msix(dev, &want) == 0) && (want == 2)) {
+ device_printf(adapter->dev,
+ "Using MSIX interrupts with %d vectors\n", want);
+ return (want);
+ }
++ /* Release in case alloc was insufficient */
++ pci_release_msi(dev);
+ out:
++ if (adapter->msix_mem != NULL) {
++ bus_release_resource(dev, SYS_RES_MEMORY,
++ rid, adapter->msix_mem);
++ adapter->msix_mem = NULL;
++ }
+ device_printf(adapter->dev,"MSIX config error\n");
+ return (ENXIO);
+ }
+--- a/sys/netinet/in_mcast.c
++++ b/sys/netinet/in_mcast.c
+@@ -1614,6 +1614,8 @@
+ * has asked for, but we always tell userland how big the
+ * buffer really needs to be.
+ */
++ if (msfr.msfr_nsrcs > in_mcast_maxsocksrc)
++ msfr.msfr_nsrcs = in_mcast_maxsocksrc;
+ tss = NULL;
+ if (msfr.msfr_srcs != NULL && msfr.msfr_nsrcs > 0) {
+ tss = malloc(sizeof(struct sockaddr_storage) * msfr.msfr_nsrcs,
+--- a/sys/netinet6/in6_mcast.c
++++ b/sys/netinet6/in6_mcast.c
+@@ -1625,6 +1625,8 @@
+ * has asked for, but we always tell userland how big the
+ * buffer really needs to be.
+ */
++ if (msfr.msfr_nsrcs > in6_mcast_maxsocksrc)
++ msfr.msfr_nsrcs = in6_mcast_maxsocksrc;
+ tss = NULL;
+ if (msfr.msfr_srcs != NULL && msfr.msfr_nsrcs > 0) {
+ tss = malloc(sizeof(struct sockaddr_storage) * msfr.msfr_nsrcs,
More information about the Glibc-bsd-commits
mailing list