Import of pkgsrc-2015Q2
This commit is contained in:
@@ -1,11 +1,11 @@
|
||||
# $NetBSD: Makefile,v 1.49 2014/12/27 00:27:11 gdt Exp $
|
||||
# $NetBSD: Makefile,v 1.52 2015/06/12 10:51:19 wiz Exp $
|
||||
#
|
||||
# VERSION is set in version.mk as it is shared with other packages
|
||||
.include "version.mk"
|
||||
|
||||
DISTNAME= xen-${VERSION}
|
||||
PKGNAME= xentools41-${VERSION}
|
||||
PKGREVISION= 6
|
||||
PKGREVISION= 9
|
||||
CATEGORIES= sysutils
|
||||
MASTER_SITES= http://bits.xensource.com/oss-xen/release/${VERSION}/
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
$NetBSD: distinfo,v 1.37 2014/08/28 14:30:03 bouyer Exp $
|
||||
$NetBSD: distinfo,v 1.39 2015/06/11 17:42:43 bouyer Exp $
|
||||
|
||||
SHA1 (ipxe-git-v1.0.0.tar.gz) = da052c8de5f3485fe0253c19cf52ed6d72528485
|
||||
RMD160 (ipxe-git-v1.0.0.tar.gz) = dcd9b6eaafa1ce05c1ebf2a15f2f73ad7a8c5547
|
||||
@@ -11,6 +11,8 @@ SHA1 (patch-.._.._ipxe_src_core_settings.c) = 240ff973757403b983f12b2cbed826584c
|
||||
SHA1 (patch-.._.._ipxe_src_net_tls.c) = c0cfbc2ab2b92c659c146601c4f80d58c951ca62
|
||||
SHA1 (patch-.._Config.mk) = 9b971a41f67bb3974d3a4459bb9d96fbbd636c96
|
||||
SHA1 (patch-CVE-2014-1950) = b0d900722fd0f59a50f1e1eda1471105d5b557e5
|
||||
SHA1 (patch-CVE-2015-2752) = f9bca0b8744233e20ff97c3e8e2e404522e87f49
|
||||
SHA1 (patch-CVE-2015-2756) = 07aaac4bcd0dfc6d708c1823288b9fc789ebd125
|
||||
SHA1 (patch-aa) = 9b53ba4a809dad7a1de34c8fa0dbe493d7256ada
|
||||
SHA1 (patch-ab) = 0906a5ec3a7450fc987b01289e2560e60966d00d
|
||||
SHA1 (patch-ac) = c3cc5335a1d6b066307c5f03fe72f513a9eb2bdb
|
||||
@@ -41,7 +43,7 @@ SHA1 (patch-db) = 4766f9925462023332793bcea4321072758e289d
|
||||
SHA1 (patch-dc) = d860fe3725978227278d58f09e7d5157001e463e
|
||||
SHA1 (patch-dd) = e66d9cc0028ba922b050fc142862b4095cd018f3
|
||||
SHA1 (patch-de) = fae94b61a430a1a7dd98c9a6a04e4513824c6d8d
|
||||
SHA1 (patch-df) = d20bf9d3fd05f5334f77c9154bf0fb9944c1292c
|
||||
SHA1 (patch-df) = e7b41242fcb4a0d4fb9e22376af6a50d1081f96c
|
||||
SHA1 (patch-firmware_hvmloader_Makefile) = b2914e4988ba004d45403d67f1580b1f9725d006
|
||||
SHA1 (patch-ioemu-qemu-xen_hw_pass-through.c) = 76185c239078f29cb42b953d6c2cd1f59e240989
|
||||
SHA1 (patch-ioemu-qemu-xen_hw_pass-through.h) = 98c26798d1ad99d3eee8b33deb08f747c958c886
|
||||
|
||||
83
sysutils/xentools41/patches/patch-CVE-2015-2752
Normal file
83
sysutils/xentools41/patches/patch-CVE-2015-2752
Normal file
@@ -0,0 +1,83 @@
|
||||
$NetBSD: patch-CVE-2015-2752,v 1.1 2015/04/19 13:13:21 spz Exp $
|
||||
|
||||
Patch for CVE-2015-2752 aka XSA-125 from
|
||||
http://xenbits.xenproject.org/xsa/xsa125-4.2.patch
|
||||
|
||||
--- libxc/xc_domain.c.orig 2013-09-10 06:42:18.000000000 +0000
|
||||
+++ libxc/xc_domain.c
|
||||
@@ -1322,6 +1322,13 @@ int xc_domain_bind_pt_isa_irq(
|
||||
PT_IRQ_TYPE_ISA, 0, 0, 0, machine_irq));
|
||||
}
|
||||
|
||||
+#ifndef min
|
||||
+#define min(X, Y) ({ \
|
||||
+ const typeof (X) _x = (X); \
|
||||
+ const typeof (Y) _y = (Y); \
|
||||
+ (void) (&_x == &_y); \
|
||||
+ (_x < _y) ? _x : _y; })
|
||||
+#endif
|
||||
int xc_domain_memory_mapping(
|
||||
xc_interface *xch,
|
||||
uint32_t domid,
|
||||
@@ -1331,17 +1338,55 @@ int xc_domain_memory_mapping(
|
||||
uint32_t add_mapping)
|
||||
{
|
||||
DECLARE_DOMCTL;
|
||||
+ int ret = 0, err;
|
||||
+ unsigned long done = 0, nr, max_batch_sz;
|
||||
+
|
||||
+ if ( !nr_mfns )
|
||||
+ return 0;
|
||||
|
||||
domctl.cmd = XEN_DOMCTL_memory_mapping;
|
||||
domctl.domain = domid;
|
||||
- domctl.u.memory_mapping.first_gfn = first_gfn;
|
||||
- domctl.u.memory_mapping.first_mfn = first_mfn;
|
||||
- domctl.u.memory_mapping.nr_mfns = nr_mfns;
|
||||
domctl.u.memory_mapping.add_mapping = add_mapping;
|
||||
+ max_batch_sz = nr_mfns;
|
||||
+ do
|
||||
+ {
|
||||
+ nr = min(nr_mfns - done, max_batch_sz);
|
||||
+ domctl.u.memory_mapping.nr_mfns = nr;
|
||||
+ domctl.u.memory_mapping.first_gfn = first_gfn + done;
|
||||
+ domctl.u.memory_mapping.first_mfn = first_mfn + done;
|
||||
+ err = do_domctl(xch, &domctl);
|
||||
+ if ( err && errno == E2BIG )
|
||||
+ {
|
||||
+ if ( max_batch_sz <= 1 )
|
||||
+ break;
|
||||
+ max_batch_sz >>= 1;
|
||||
+ continue;
|
||||
+ }
|
||||
+ /* Save the first error... */
|
||||
+ if ( !ret )
|
||||
+ ret = err;
|
||||
+ /* .. and ignore the rest of them when removing. */
|
||||
+ if ( err && add_mapping != DPCI_REMOVE_MAPPING )
|
||||
+ break;
|
||||
+
|
||||
+ done += nr;
|
||||
+ } while ( done < nr_mfns );
|
||||
+
|
||||
+ /*
|
||||
+ * Undo what we have done unless unmapping, by unmapping the entire region.
|
||||
+ * Errors here are ignored.
|
||||
+ */
|
||||
+ if ( ret && add_mapping != DPCI_REMOVE_MAPPING )
|
||||
+ xc_domain_memory_mapping(xch, domid, first_gfn, first_mfn, nr_mfns,
|
||||
+ DPCI_REMOVE_MAPPING);
|
||||
+
|
||||
+ /* We might get E2BIG so many times that we never advance. */
|
||||
+ if ( !done && !ret )
|
||||
+ ret = -1;
|
||||
|
||||
- return do_domctl(xch, &domctl);
|
||||
+ return ret;
|
||||
}
|
||||
-
|
||||
+#undef min
|
||||
int xc_domain_ioport_mapping(
|
||||
xc_interface *xch,
|
||||
uint32_t domid,
|
||||
|
||||
142
sysutils/xentools41/patches/patch-CVE-2015-2756
Normal file
142
sysutils/xentools41/patches/patch-CVE-2015-2756
Normal file
@@ -0,0 +1,142 @@
|
||||
$NetBSD: patch-CVE-2015-2756,v 1.1 2015/04/19 13:13:21 spz Exp $
|
||||
|
||||
patch for CVE-2015-2756 aka XSA-126 from
|
||||
http://xenbits.xenproject.org/xsa/xsa126-qemut.patch
|
||||
|
||||
--- ioemu-qemu-xen/hw/pass-through.c.orig 2013-07-17 10:59:40.000000000 +0000
|
||||
+++ ioemu-qemu-xen/hw/pass-through.c
|
||||
@@ -171,9 +171,6 @@ static int pt_word_reg_read(struct pt_de
|
||||
static int pt_long_reg_read(struct pt_dev *ptdev,
|
||||
struct pt_reg_tbl *cfg_entry,
|
||||
uint32_t *value, uint32_t valid_mask);
|
||||
-static int pt_cmd_reg_read(struct pt_dev *ptdev,
|
||||
- struct pt_reg_tbl *cfg_entry,
|
||||
- uint16_t *value, uint16_t valid_mask);
|
||||
static int pt_bar_reg_read(struct pt_dev *ptdev,
|
||||
struct pt_reg_tbl *cfg_entry,
|
||||
uint32_t *value, uint32_t valid_mask);
|
||||
@@ -277,9 +274,9 @@ static struct pt_reg_info_tbl pt_emu_reg
|
||||
.size = 2,
|
||||
.init_val = 0x0000,
|
||||
.ro_mask = 0xF880,
|
||||
- .emu_mask = 0x0740,
|
||||
+ .emu_mask = 0x0743,
|
||||
.init = pt_common_reg_init,
|
||||
- .u.w.read = pt_cmd_reg_read,
|
||||
+ .u.w.read = pt_word_reg_read,
|
||||
.u.w.write = pt_cmd_reg_write,
|
||||
.u.w.restore = pt_cmd_reg_restore,
|
||||
},
|
||||
@@ -1865,7 +1862,7 @@ static int pt_dev_is_virtfn(struct pci_d
|
||||
return rc;
|
||||
}
|
||||
|
||||
-static int pt_register_regions(struct pt_dev *assigned_device)
|
||||
+static int pt_register_regions(struct pt_dev *assigned_device, uint16_t *cmd)
|
||||
{
|
||||
int i = 0;
|
||||
uint32_t bar_data = 0;
|
||||
@@ -1885,17 +1882,26 @@ static int pt_register_regions(struct pt
|
||||
|
||||
/* Register current region */
|
||||
if ( pci_dev->base_addr[i] & PCI_ADDRESS_SPACE_IO )
|
||||
+ {
|
||||
pci_register_io_region((PCIDevice *)assigned_device, i,
|
||||
(uint32_t)pci_dev->size[i], PCI_ADDRESS_SPACE_IO,
|
||||
pt_ioport_map);
|
||||
+ *cmd |= PCI_COMMAND_IO;
|
||||
+ }
|
||||
else if ( pci_dev->base_addr[i] & PCI_ADDRESS_SPACE_MEM_PREFETCH )
|
||||
+ {
|
||||
pci_register_io_region((PCIDevice *)assigned_device, i,
|
||||
(uint32_t)pci_dev->size[i], PCI_ADDRESS_SPACE_MEM_PREFETCH,
|
||||
pt_iomem_map);
|
||||
+ *cmd |= PCI_COMMAND_MEMORY;
|
||||
+ }
|
||||
else
|
||||
+ {
|
||||
pci_register_io_region((PCIDevice *)assigned_device, i,
|
||||
(uint32_t)pci_dev->size[i], PCI_ADDRESS_SPACE_MEM,
|
||||
pt_iomem_map);
|
||||
+ *cmd |= PCI_COMMAND_MEMORY;
|
||||
+ }
|
||||
|
||||
PT_LOG("IO region registered (size=0x%08x base_addr=0x%08x)\n",
|
||||
(uint32_t)(pci_dev->size[i]),
|
||||
@@ -3221,27 +3227,6 @@ static int pt_long_reg_read(struct pt_de
|
||||
return 0;
|
||||
}
|
||||
|
||||
-/* read Command register */
|
||||
-static int pt_cmd_reg_read(struct pt_dev *ptdev,
|
||||
- struct pt_reg_tbl *cfg_entry,
|
||||
- uint16_t *value, uint16_t valid_mask)
|
||||
-{
|
||||
- struct pt_reg_info_tbl *reg = cfg_entry->reg;
|
||||
- uint16_t valid_emu_mask = 0;
|
||||
- uint16_t emu_mask = reg->emu_mask;
|
||||
-
|
||||
- if ( ptdev->is_virtfn )
|
||||
- emu_mask |= PCI_COMMAND_MEMORY;
|
||||
- if ( pt_is_iomul(ptdev) )
|
||||
- emu_mask |= PCI_COMMAND_IO;
|
||||
-
|
||||
- /* emulate word register */
|
||||
- valid_emu_mask = emu_mask & valid_mask;
|
||||
- *value = PT_MERGE_VALUE(*value, cfg_entry->data, ~valid_emu_mask);
|
||||
-
|
||||
- return 0;
|
||||
-}
|
||||
-
|
||||
/* read BAR */
|
||||
static int pt_bar_reg_read(struct pt_dev *ptdev,
|
||||
struct pt_reg_tbl *cfg_entry,
|
||||
@@ -3376,19 +3361,13 @@ static int pt_cmd_reg_write(struct pt_de
|
||||
uint16_t writable_mask = 0;
|
||||
uint16_t throughable_mask = 0;
|
||||
uint16_t wr_value = *value;
|
||||
- uint16_t emu_mask = reg->emu_mask;
|
||||
-
|
||||
- if ( ptdev->is_virtfn )
|
||||
- emu_mask |= PCI_COMMAND_MEMORY;
|
||||
- if ( pt_is_iomul(ptdev) )
|
||||
- emu_mask |= PCI_COMMAND_IO;
|
||||
|
||||
/* modify emulate register */
|
||||
writable_mask = ~reg->ro_mask & valid_mask;
|
||||
cfg_entry->data = PT_MERGE_VALUE(*value, cfg_entry->data, writable_mask);
|
||||
|
||||
/* create value for writing to I/O device register */
|
||||
- throughable_mask = ~emu_mask & valid_mask;
|
||||
+ throughable_mask = ~reg->emu_mask & valid_mask;
|
||||
|
||||
if (*value & PCI_COMMAND_DISABLE_INTx)
|
||||
{
|
||||
@@ -4151,6 +4130,7 @@ static struct pt_dev * register_real_dev
|
||||
struct pt_dev *assigned_device = NULL;
|
||||
struct pci_dev *pci_dev;
|
||||
uint8_t e_device, e_intx;
|
||||
+ uint16_t cmd = 0;
|
||||
char *key, *val;
|
||||
int msi_translate, power_mgmt;
|
||||
|
||||
@@ -4240,7 +4220,7 @@ static struct pt_dev * register_real_dev
|
||||
assigned_device->dev.config[i] = pci_read_byte(pci_dev, i);
|
||||
|
||||
/* Handle real device's MMIO/PIO BARs */
|
||||
- pt_register_regions(assigned_device);
|
||||
+ pt_register_regions(assigned_device, &cmd);
|
||||
|
||||
/* Setup VGA bios for passthroughed gfx */
|
||||
if ( setup_vga_pt(assigned_device) < 0 )
|
||||
@@ -4318,6 +4298,10 @@ static struct pt_dev * register_real_dev
|
||||
}
|
||||
|
||||
out:
|
||||
+ if (cmd)
|
||||
+ pci_write_word(pci_dev, PCI_COMMAND,
|
||||
+ *(uint16_t *)(&assigned_device->dev.config[PCI_COMMAND]) | cmd);
|
||||
+
|
||||
PT_LOG("Real physical device %02x:%02x.%x registered successfuly!\n"
|
||||
"IRQ type = %s\n", r_bus, r_dev, r_func,
|
||||
assigned_device->msi_trans_en? "MSI-INTx":"INTx");
|
||||
@@ -1,16 +1,26 @@
|
||||
$NetBSD: patch-df,v 1.1 2012/01/26 11:19:23 cegger Exp $
|
||||
$NetBSD: patch-df,v 1.2 2015/06/11 17:42:43 bouyer Exp $
|
||||
|
||||
--- ioemu-qemu-xen/hw/ide.c.orig 2011-02-11 17:54:51.000000000 +0000
|
||||
+++ ioemu-qemu-xen/hw/ide.c
|
||||
@@ -761,6 +761,7 @@ static void ide_identify(IDEState *s)
|
||||
put_le16(p + 61, s->nb_sectors >> 16);
|
||||
--- ioemu-qemu-xen/hw/ide.c.orig 2014-01-09 13:44:42.000000000 +0100
|
||||
+++ ioemu-qemu-xen/hw/ide.c 2015-06-11 16:15:49.000000000 +0200
|
||||
@@ -757,10 +757,15 @@
|
||||
put_le16(p + 58, oldsize >> 16);
|
||||
if (s->mult_sectors)
|
||||
put_le16(p + 59, 0x100 | s->mult_sectors);
|
||||
- put_le16(p + 60, s->nb_sectors);
|
||||
- put_le16(p + 61, s->nb_sectors >> 16);
|
||||
+ if (s->nb_sectors > 0x10000000)
|
||||
+ oldsize = 0x10000000; /* report only 128GB */
|
||||
+ else
|
||||
+ oldsize = s->nb_sectors;
|
||||
+ put_le16(p + 60, oldsize);
|
||||
+ put_le16(p + 61, oldsize >> 16);
|
||||
put_le16(p + 62, 0x07); /* single word dma0-2 supported */
|
||||
put_le16(p + 63, 0x07); /* mdma0-2 supported */
|
||||
+ put_le16(p + 64, 0x03); /* pio3-4 supported */
|
||||
put_le16(p + 65, 120);
|
||||
put_le16(p + 66, 120);
|
||||
put_le16(p + 67, 120);
|
||||
@@ -812,13 +813,12 @@ static void ide_atapi_identify(IDEState
|
||||
@@ -812,13 +817,12 @@
|
||||
put_le16(p + 53, 7); /* words 64-70, 54-58, 88 valid */
|
||||
put_le16(p + 62, 7); /* single word dma0-2 supported */
|
||||
put_le16(p + 63, 7); /* mdma0-2 supported */
|
||||
|
||||
Reference in New Issue
Block a user