rpms/kernel/devel linux-2.6-ext4-inode-alloc-race.patch, NONE, 1.1.2.2 config-generic, 1.238.6.7, 1.238.6.8 drm-modesetting-radeon.patch, 1.54.6.3, 1.54.6.4 drm-nouveau.patch, 1.8.6.1, 1.8.6.2 kernel.spec, 1.1294.2.9, 1.1294.2.10 linux-2.6-v4l-dvb-update.patch, 1.1.2.3, 1.1.2.4 xen.pvops.patch, 1.1.2.8, 1.1.2.9
Michael Young
myoung at fedoraproject.org
Thu Mar 5 22:45:54 UTC 2009
- Previous message (by thread): rpms/gdm/devel gdm-2.25.2-multistack-but-boring.patch, 1.5, 1.6 gdm.spec, 1.446, 1.447
- Next message (by thread): rpms/rkhunter/devel rkhunter-1.3.4-fedoraconfig.patch, NONE, 1.1 rkhunter.spec, 1.20, 1.21 01-rkhunter, 1.5, 1.6
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
Author: myoung
Update of /cvs/pkgs/rpms/kernel/devel
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv7176
Modified Files:
Tag: private-myoung-dom0-branch
config-generic drm-modesetting-radeon.patch drm-nouveau.patch
kernel.spec linux-2.6-v4l-dvb-update.patch xen.pvops.patch
Added Files:
Tag: private-myoung-dom0-branch
linux-2.6-ext4-inode-alloc-race.patch
Log Message:
Another pvops update
linux-2.6-ext4-inode-alloc-race.patch:
--- NEW FILE linux-2.6-ext4-inode-alloc-race.patch ---
Date: Tue, 03 Mar 2009 22:38:41 -0600
From: Eric Sandeen <sandeen at redhat.com>
To: ext4 development <linux-ext4 at vger.kernel.org>
CC: "Aneesh Kumar K.V" <aneesh.kumar at linux.vnet.ibm.com>
Subject: [PATCH] fix ext4_free_inode vs. ext4_claim_inode race
I was seeing fsck errors on inode bitmaps after a 4 thread
dbench run on a 4 cpu machine:
Inode bitmap differences: -50736 -(50752--50753) etc...
I believe that this is because ext4_free_inode() uses atomic
bitops, and although ext4_new_inode() *used* to also use atomic
bitops for synchronization, commit
393418676a7602e1d7d3f6e560159c65c8cbd50e changed this to use
the sb_bgl_lock, so that we could also synchronize against
read_inode_bitmap and initialization of uninit inode tables.
However, that change left ext4_free_inode using atomic bitops,
which I think leaves no synchronization between setting &
unsetting bits in the inode table.
The below patch fixes it for me, although I wonder if we're
getting at all heavy-handed with this spinlock...
Signed-off-by: Eric Sandeen <sandeen at redhat.com>
---
Index: linux-2.6/fs/ext4/ialloc.c
===================================================================
--- linux-2.6.orig/fs/ext4/ialloc.c
+++ linux-2.6/fs/ext4/ialloc.c
@@ -188,7 +188,7 @@ void ext4_free_inode(handle_t *handle, s
struct ext4_group_desc *gdp;
struct ext4_super_block *es;
struct ext4_sb_info *sbi;
- int fatal = 0, err, count;
+ int fatal = 0, err, count, cleared;
ext4_group_t flex_group;
if (atomic_read(&inode->i_count) > 1) {
@@ -248,8 +248,10 @@ void ext4_free_inode(handle_t *handle, s
goto error_return;
/* Ok, now we can actually update the inode bitmaps.. */
- if (!ext4_clear_bit_atomic(sb_bgl_lock(sbi, block_group),
- bit, bitmap_bh->b_data))
+ spin_lock(sb_bgl_lock(sbi, block_group));
+ cleared = ext4_clear_bit(bit, bitmap_bh->b_data);
+ spin_unlock(sb_bgl_lock(sbi, block_group));
+ if (!cleared)
ext4_error(sb, "ext4_free_inode",
"bit already cleared for inode %lu", ino);
else {
Index: config-generic
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/config-generic,v
retrieving revision 1.238.6.7
retrieving revision 1.238.6.8
diff -u -r1.238.6.7 -r1.238.6.8
--- config-generic 5 Mar 2009 01:30:21 -0000 1.238.6.7
+++ config-generic 5 Mar 2009 22:45:07 -0000 1.238.6.8
@@ -2355,6 +2355,8 @@
CONFIG_DVB_LGS8GL5=m
# CONFIG_DVB_DUMMY_FE is not set
CONFIG_DVB_AF9013=m
+CONFIG_DVB_STV6110=m
+CONFIG_DVB_STV0900=m
#
# Supported SAA7146 based PCI Adapters
@@ -3948,7 +3950,7 @@
CONFIG_XEN_NETDEV_BACKEND=y
# CONFIG_CC_STACKPROTECTOR is not set
# CONFIG_X86_X2APIC is not set
-# CONFIG_RD_GZIP is not set
+CONFIG_RD_GZIP=y
# CONFIG_RD_BZIP2 is not set
# CONFIG_RD_LZMA is not set
# CONFIG_XEN_GNTDEV is not set
drm-modesetting-radeon.patch:
Index: drm-modesetting-radeon.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/drm-modesetting-radeon.patch,v
retrieving revision 1.54.6.3
retrieving revision 1.54.6.4
diff -u -r1.54.6.3 -r1.54.6.4
--- drm-modesetting-radeon.patch 5 Mar 2009 01:30:21 -0000 1.54.6.3
+++ drm-modesetting-radeon.patch 5 Mar 2009 22:45:08 -0000 1.54.6.4
@@ -1,3 +1,11 @@
+commit fef48d5013f761faec24ee1044282b6098318237
+Author: Dave Airlie <airlied at redhat.com>
+Date: Thu Mar 5 15:57:18 2009 +1000
+
+ radeon: add special relocation for WAIT_VLINE
+
+ This is half ways between a hack and really neat.
+
commit 530ebda60cb7270795b7edd72930ab2d0e4db102
Author: Dave Airlie <airlied at redhat.com>
Date: Tue Mar 3 18:23:22 2009 +1000
@@ -14369,7 +14377,7 @@
+ drm_crtc_helper_add(&radeon_crtc->base, &atombios_helper_funcs);
+}
diff --git a/drivers/gpu/drm/radeon/r300_cmdbuf.c b/drivers/gpu/drm/radeon/r300_cmdbuf.c
-index 3efa633..c97d529 100644
+index 3efa633..54ecf36 100644
--- a/drivers/gpu/drm/radeon/r300_cmdbuf.c
+++ b/drivers/gpu/drm/radeon/r300_cmdbuf.c
@@ -35,6 +35,7 @@
@@ -14450,20 +14458,24 @@
if ((dev_priv->flags & RADEON_FAMILY_MASK) >= CHIP_RV515) {
ADD_RANGE(R500_VAP_INDEX_OFFSET, 1);
ADD_RANGE(R500_US_CONFIG, 2);
-@@ -258,7 +265,8 @@ void r300_init_reg_flags(struct drm_device *dev)
+@@ -258,7 +265,10 @@ void r300_init_reg_flags(struct drm_device *dev)
ADD_RANGE(R500_RS_INST_0, 16);
ADD_RANGE(R500_RB3D_COLOR_CLEAR_VALUE_AR, 2);
ADD_RANGE(R500_RB3D_CONSTANT_COLOR_AR, 2);
- ADD_RANGE(R500_ZB_FIFO_SIZE, 2);
+// ADD_RANGE(R500_ZB_FIFO_SIZE 2);
+ ADD_RANGE(R500_GA_US_VECTOR_INDEX, 2);
++
++ ADD_RANGE_MARK(AVIVO_D1MODE_VLINE_START_END, 1, MARK_CHECK_WAIT_VLINE);
} else {
ADD_RANGE(R300_PFS_CNTL_0, 3);
ADD_RANGE(R300_PFS_NODE_0, 4);
-@@ -271,9 +279,122 @@ void r300_init_reg_flags(struct drm_device *dev)
+@@ -270,10 +280,124 @@ void r300_init_reg_flags(struct drm_device *dev)
+ ADD_RANGE(R300_RS_INTERP_0, 8);
ADD_RANGE(R300_RS_ROUTE_0, 8);
- }
++ ADD_RANGE_MARK(RADEON_CRTC_GUI_TRIG_VLINE, 1, MARK_CHECK_WAIT_VLINE);
++ }
+
+ /* add 2d blit engine registers for DDX */
+ ADD_RANGE(RADEON_SRC_Y_X, 3); /* 1434, 1438, 143c,
@@ -14576,7 +14588,7 @@
+ ADD_RANGE_MARK(RADEON_PP_TXOFFSET_1, 1, MARK_CHECK_OFFSET);
+ ADD_RANGE_MARK(RADEON_PP_TXOFFSET_2, 1, MARK_CHECK_OFFSET);
+ }
-+ }
+ }
}
-static __inline__ int r300_check_range(unsigned reg, int count)
@@ -14584,7 +14596,7 @@
{
int i;
if (reg & ~0xffff)
-@@ -284,6 +405,13 @@ static __inline__ int r300_check_range(unsigned reg, int count)
+@@ -284,6 +408,13 @@ static __inline__ int r300_check_range(unsigned reg, int count)
return 0;
}
@@ -19946,10 +19958,10 @@
+}
diff --git a/drivers/gpu/drm/radeon/radeon_cs.c b/drivers/gpu/drm/radeon/radeon_cs.c
new file mode 100644
-index 0000000..3084639
+index 0000000..823b82f
--- /dev/null
+++ b/drivers/gpu/drm/radeon/radeon_cs.c
-@@ -0,0 +1,593 @@
+@@ -0,0 +1,667 @@
+/*
+ * Copyright 2008 Jerome Glisse.
+ * All Rights Reserved.
@@ -20142,6 +20154,71 @@
+ *offset = reloc[1];
+ return 0;
+}
++
++/* special case CRTC relocation for vline waits
++ * userspace doesn't know which CRTC it controls so we have a special sequence
++ * packet0 VLINE_START_END, value
++ * packet0 WAIT_UNTIL, crtc line | crtc_num
++ * packet0 NOP, crtc_id
++ * we relocate the vline register and the wait until crtc_num bit
++ */
++static int radeon_cs_relocate_crtc(struct drm_radeon_cs_parser *parser, uint32_t offset_dw)
++{
++ struct drm_device *dev = parser->dev;
++ struct drm_mode_object *obj;
++ struct drm_crtc *crtc;
++ struct radeon_crtc *radeon_crtc;
++ uint32_t hdr, reg, val, packet3_hdr;
++ int ret = 0;
++ int crtc_id;
++ struct drm_radeon_kernel_chunk *ib_chunk;
++
++ ib_chunk = &parser->chunks[parser->ib_index];
++
++ hdr = ib_chunk->kdata[offset_dw];
++ reg = (hdr & R300_CP_PACKET0_REG_MASK) << 2;
++ val = ib_chunk->kdata[offset_dw + 1];
++ packet3_hdr = ib_chunk->kdata[offset_dw + 4];
++
++ mutex_lock(&dev->mode_config.mutex);
++ obj = drm_mode_object_find(parser->dev, ib_chunk->kdata[offset_dw + 5], DRM_MODE_OBJECT_CRTC);
++ if (!obj) {
++ ret = -EINVAL;
++ goto out;
++ }
++ crtc = obj_to_crtc(obj);
++ radeon_crtc = to_radeon_crtc(crtc);
++
++ crtc_id = radeon_crtc->crtc_id;
++
++ /*
++ * need to edit both packets
++ */
++ /* vline start end - for crtc0 no work to do */
++ if (crtc_id == 1) {
++ switch (reg) {
++ case AVIVO_D1MODE_VLINE_START_END:
++ hdr &= R300_CP_PACKET0_REG_MASK;
++ hdr |= AVIVO_D2MODE_VLINE_START_END >> 2;
++ break;
++ case RADEON_CRTC_GUI_TRIG_VLINE:
++ hdr &= R300_CP_PACKET0_REG_MASK;
++ hdr |= RADEON_CRTC2_GUI_TRIG_VLINE >> 2;
++ break;
++ default:
++ DRM_ERROR("unknown CRTC relocation\n");
++ ret = -EINVAL;
++ goto out;
++ }
++ /* relocate the WAIT_UNTIL */
++ ib_chunk->kdata[offset_dw] = hdr;
++ ib_chunk->kdata[offset_dw + 3] |= RADEON_ENG_DISPLAY_SELECT_CRTC1;
++ }
++out:
++ mutex_unlock(&dev->mode_config.mutex);
++ return ret;
++}
++
+#define RELOC_SIZE 2
+#define RELOC_SIZE_NEW 0
+#define RADEON_2D_OFFSET_MASK 0x3fffff
@@ -20304,12 +20381,14 @@
+ return 0;
+}
+
-+int radeon_cs_packet0(struct drm_radeon_cs_parser *parser, uint32_t offset_dw)
++int radeon_cs_packet0(struct drm_radeon_cs_parser *parser, uint32_t *offset_dw_p)
+{
+ uint32_t hdr, num_dw, reg;
+ int count_dw = 1;
+ int ret;
+ bool one_reg;
++ uint32_t offset_dw = *offset_dw_p;
++ int incr = 2;
+
+ hdr = parser->chunks[parser->ib_index].kdata[offset_dw];
+ num_dw = ((hdr & RADEON_CP_PACKET_COUNT_MASK) >> 16) + 2;
@@ -20345,6 +20424,13 @@
+ /* okay it should be followed by a NOP */
+ } else if (flags == MARK_CHECK_SCISSOR) {
+ DRM_DEBUG("need to validate scissor %x %d\n", reg, flags);
++ } else if (flags == MARK_CHECK_WAIT_VLINE) {
++ ret = radeon_cs_relocate_crtc(parser, offset_dw);
++ if (ret) {
++ DRM_ERROR("failed to relocate packet\n");
++ return ret;
++ }
++ incr = 4;
+ } else {
+ DRM_ERROR("illegal register %x %d %d\n", reg, flags, offset_dw);
+ return -EINVAL;
@@ -20357,6 +20443,7 @@
+ count_dw++;
+ reg += 4;
+ }
++ *offset_dw_p += incr;
+ return 0;
+}
+
@@ -20378,8 +20465,7 @@
+
+ switch (hdr & RADEON_CP_PACKET_MASK) {
+ case RADEON_CP_PACKET0:
-+ ret = radeon_cs_packet0(parser, count_dw);
-+ num_dw += 2;
++ ret = radeon_cs_packet0(parser, &count_dw);
+ break;
+ case RADEON_CP_PACKET1:
+ case RADEON_CP_PACKET2:
@@ -21725,7 +21811,7 @@
}
diff --git a/drivers/gpu/drm/radeon/radeon_drv.h b/drivers/gpu/drm/radeon/radeon_drv.h
-index 7091aaf..44acdd7 100644
+index 7091aaf..e2b94a4 100644
--- a/drivers/gpu/drm/radeon/radeon_drv.h
+++ b/drivers/gpu/drm/radeon/radeon_drv.h
@@ -34,6 +34,8 @@
@@ -22327,7 +22413,7 @@
} while (0)
#define RADEON_WAIT_UNTIL_3D_IDLE() do { \
-@@ -2036,4 +2203,158 @@ extern void radeon_commit_ring(drm_radeon_private_t *dev_priv);
+@@ -2036,4 +2203,159 @@ extern void radeon_commit_ring(drm_radeon_private_t *dev_priv);
write &= mask; \
} while (0)
@@ -22473,6 +22559,7 @@
+#define MARK_SAFE 1
+#define MARK_CHECK_OFFSET 2
+#define MARK_CHECK_SCISSOR 3
++#define MARK_CHECK_WAIT_VLINE 4 /* VLINE on a crtc relocation */
+
+struct _radeon_pkt_s {
+ int start;
@@ -29766,10 +29853,10 @@
+
diff --git a/drivers/gpu/drm/radeon/radeon_reg.h b/drivers/gpu/drm/radeon/radeon_reg.h
new file mode 100644
-index 0000000..bb9ad4a
+index 0000000..9ccf839
--- /dev/null
+++ b/drivers/gpu/drm/radeon/radeon_reg.h
-@@ -0,0 +1,5335 @@
+@@ -0,0 +1,5337 @@
+/*
+ * Copyright 2000 ATI Technologies Inc., Markham, Ontario, and
+ * VA Linux Systems Inc., Fremont, California.
@@ -33431,6 +33518,7 @@
+#define AVIVO_D1MODE_DATA_FORMAT 0x6528
+# define AVIVO_D1MODE_INTERLEAVE_EN (1 << 0)
+#define AVIVO_D1MODE_DESKTOP_HEIGHT 0x652C
++#define AVIVO_D1MODE_VLINE_START_END 0x6538
+#define AVIVO_D1MODE_VIEWPORT_START 0x6580
+#define AVIVO_D1MODE_VIEWPORT_SIZE 0x6584
+#define AVIVO_D1MODE_EXT_OVERSCAN_LEFT_RIGHT 0x6588
@@ -33482,6 +33570,7 @@
+#define AVIVO_D2CUR_SIZE 0x6c10
+#define AVIVO_D2CUR_POSITION 0x6c14
+
++#define AVIVO_D2MODE_VLINE_START_END 0x6d38
+#define AVIVO_D2MODE_VIEWPORT_START 0x6d80
+#define AVIVO_D2MODE_VIEWPORT_SIZE 0x6d84
+#define AVIVO_D2MODE_EXT_OVERSCAN_LEFT_RIGHT 0x6d88
drm-nouveau.patch:
Index: drm-nouveau.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/drm-nouveau.patch,v
retrieving revision 1.8.6.1
retrieving revision 1.8.6.2
diff -u -r1.8.6.1 -r1.8.6.2
--- drm-nouveau.patch 5 Mar 2009 01:30:22 -0000 1.8.6.1
+++ drm-nouveau.patch 5 Mar 2009 22:45:08 -0000 1.8.6.2
@@ -2355,10 +2355,10 @@
+#endif
diff --git a/drivers/gpu/drm/nouveau/nouveau_drv.c b/drivers/gpu/drm/nouveau/nouveau_drv.c
new file mode 100644
-index 0000000..f5adfef
+index 0000000..7147114
--- /dev/null
+++ b/drivers/gpu/drm/nouveau/nouveau_drv.c
-@@ -0,0 +1,160 @@
+@@ -0,0 +1,163 @@
+/*
+ * Copyright 2005 Stephane Marchesin.
+ * All Rights Reserved.
@@ -2398,6 +2398,9 @@
+int nouveau_fbpercrtc = 0;
+module_param_named(fbpercrtc, nouveau_fbpercrtc, int, 0400);
+
++int nouveau_noagp = 0;
++module_param_named(noagp, nouveau_noagp, int, 0400);
++
+static struct pci_device_id pciidlist[] = {
+ {
+ PCI_DEVICE(PCI_VENDOR_ID_NVIDIA, PCI_ANY_ID),
@@ -6593,10 +6596,10 @@
+}
diff --git a/drivers/gpu/drm/nouveau/nouveau_mem.c b/drivers/gpu/drm/nouveau/nouveau_mem.c
new file mode 100644
-index 0000000..abc00ec
+index 0000000..a15a106
--- /dev/null
+++ b/drivers/gpu/drm/nouveau/nouveau_mem.c
-@@ -0,0 +1,1067 @@
+@@ -0,0 +1,1073 @@
+/*
+ * Copyright (C) The Weather Channel, Inc. 2002. All Rights Reserved.
+ * Copyright 2005 Stephane Marchesin
@@ -6634,6 +6637,8 @@
+#include "drm_sarea.h"
+#include "nouveau_drv.h"
+
++extern int nouveau_noagp;
++
+static struct mem_block *
+split_block(struct mem_block *p, uint64_t start, uint64_t size,
+ struct drm_file *file_priv)
@@ -7093,6 +7098,9 @@
+ struct drm_agp_mode mode;
+ int ret;
+
++ if (nouveau_noagp)
++ return 0;
++
+ nouveau_mem_reset_agp(dev);
+
+ ret = drm_agp_acquire(dev);
@@ -7244,10 +7252,7 @@
+ /* Init FB */
+ dev_priv->fb_phys=drm_get_resource_start(dev,1);
+ fb_size = nouveau_mem_fb_amount(dev);
-+ /* On at least NV40, RAMIN is actually at the end of vram.
-+ * We don't want to allocate this... */
-+ if (dev_priv->card_type >= NV_40)
-+ fb_size -= dev_priv->ramin_rsvd_vram;
++ fb_size -= dev_priv->ramin_rsvd_vram;
+ dev_priv->fb_available_size = fb_size;
+ DRM_DEBUG("Available VRAM: %dKiB\n", fb_size>>10);
+
@@ -7606,14 +7611,18 @@
+ NOUVEAU_CHECK_MM_DISABLED_WITH_RETURN;
+
+ block=NULL;
-+ if (memfree->flags & NOUVEAU_MEM_FB)
++ if (dev_priv->fb_heap && memfree->flags & NOUVEAU_MEM_FB)
+ block = find_block(dev_priv->fb_heap, memfree->offset);
-+ else if (memfree->flags & NOUVEAU_MEM_AGP)
++ else
++ if (dev_priv->agp_heap && memfree->flags & NOUVEAU_MEM_AGP)
+ block = find_block(dev_priv->agp_heap, memfree->offset);
-+ else if (memfree->flags & NOUVEAU_MEM_PCI)
++ else
++ if (dev_priv->pci_heap && memfree->flags & NOUVEAU_MEM_PCI)
+ block = find_block(dev_priv->pci_heap, memfree->offset);
++
+ if (!block)
+ return -EFAULT;
++
+ if (block->file_priv != file_priv)
+ return -EPERM;
+
@@ -7848,10 +7857,10 @@
+}
diff --git a/drivers/gpu/drm/nouveau/nouveau_object.c b/drivers/gpu/drm/nouveau/nouveau_object.c
new file mode 100644
-index 0000000..5bbcc59
+index 0000000..48ff77e
--- /dev/null
+++ b/drivers/gpu/drm/nouveau/nouveau_object.c
-@@ -0,0 +1,1228 @@
+@@ -0,0 +1,1229 @@
+/*
+ * Copyright (C) 2006 Ben Skeggs.
+ *
@@ -8046,6 +8055,7 @@
+ if (co >= dev_priv->ramht_size)
+ co = 0;
+ } while (co != ho);
++ list_del(&ref->list);
+ instmem->finish_access(dev);
+
+ DRM_ERROR("RAMHT entry not found. ch=%d, handle=0x%08x\n",
@@ -8916,9 +8926,9 @@
+ chan->vm_vram_pt[i]->instance | 0x61);
+ INSTANCE_WR(chan->vm_pd, pde++, 0x00000000);
+ }
-+ }
+
-+ instmem->finish_access(dev);
++ instmem->finish_access(dev);
++ }
+
+ /* RAMHT */
+ if (dev_priv->card_type < NV_50) {
@@ -10291,10 +10301,10 @@
+}
diff --git a/drivers/gpu/drm/nouveau/nouveau_state.c b/drivers/gpu/drm/nouveau/nouveau_state.c
new file mode 100644
-index 0000000..19c8861
+index 0000000..6b7fed1
--- /dev/null
+++ b/drivers/gpu/drm/nouveau/nouveau_state.c
-@@ -0,0 +1,935 @@
+@@ -0,0 +1,942 @@
+/*
+ * Copyright 2005 Stephane Marchesin
+ * Copyright 2008 Stuart Bennett
@@ -10761,25 +10771,6 @@
+ nv_wr32(NV03_PMC_BOOT_1,0x00000001);
+
+ DRM_MEMORYBARRIER();
-+
-+ /* if we have an OF card, copy vbios to RAMIN */
-+ dn = pci_device_to_OF_node(dev->pdev);
-+ if (dn)
-+ {
-+ int size;
-+ const uint32_t *bios = of_get_property(dn, "NVDA,BMP", &size);
-+ if (bios)
-+ {
-+ int i;
-+ for(i=0;i<size;i+=4)
-+ nv_wi32(i, bios[i/4]);
-+ DRM_INFO("OF bios successfully copied (%d bytes)\n",size);
-+ }
-+ else
-+ DRM_INFO("Unable to get the OF bios\n");
-+ }
-+ else
-+ DRM_INFO("Unable to get the OF node\n");
+#endif
+
+ /* Time to determine the card architecture */
@@ -10866,6 +10857,28 @@
+ }
+ }
+
++#if defined(__powerpc__)
++ /* if we have an OF card, copy vbios to RAMIN */
++ dn = pci_device_to_OF_node(dev->pdev);
++ if (dn)
++ {
++ int size;
++ const uint32_t *bios = of_get_property(dn, "NVDA,BMP", &size);
++ if (bios)
++ {
++ int i;
++ dev_priv->engine.instmem.prepare_access(dev, true);
++ for(i=0;i<size;i+=4)
++ nv_wi32(i, bios[i/4]);
++ dev_priv->engine.instmem.finish_access(dev);
++ DRM_INFO("OF bios successfully copied (%d bytes)\n",size);
++ }
++ else
++ DRM_INFO("Unable to get the OF bios\n");
++ }
++ else
++ DRM_INFO("Unable to get the OF node\n");
++#endif
+
+ /* For those who think they want to be funny. */
+ if (dev_priv->card_type < NV_50)
@@ -11160,8 +11173,10 @@
+ }
+ }
+
++ dev_priv->engine.instmem.prepare_access(dev, true);
+ for (i = 0; i < susres->ramin_size / 4; i++)
+ nv_wi32(i << 2, susres->ramin_copy[i]);
++ dev_priv->engine.instmem.finish_access(dev);
+
+ engine->mc.init(dev);
+ engine->timer.init(dev);
@@ -11180,8 +11195,10 @@
+ /* PMC power cycling PFIFO in init clobbers some of the stuff stored in
+ * PRAMIN (such as NV04_PFIFO_CACHE1_DMA_INSTANCE). this is unhelpful
+ */
++ dev_priv->engine.instmem.prepare_access(dev, true);
+ for (i = 0; i < susres->ramin_size / 4; i++)
+ nv_wi32(i << 2, susres->ramin_copy[i]);
++ dev_priv->engine.instmem.finish_access(dev);
+
+ engine->fifo.load_context(dev_priv->fifos[0]);
+ nv_wr32(NV04_PFIFO_MODE, susres->fifo_mode);
@@ -12172,10 +12189,10 @@
+}
diff --git a/drivers/gpu/drm/nouveau/nv04_instmem.c b/drivers/gpu/drm/nouveau/nv04_instmem.c
new file mode 100644
-index 0000000..7d902d8
+index 0000000..a83d271
--- /dev/null
+++ b/drivers/gpu/drm/nouveau/nv04_instmem.c
-@@ -0,0 +1,188 @@
+@@ -0,0 +1,189 @@
+#include "drmP.h"
+#include "drm.h"
+#include "nouveau_drv.h"
@@ -12205,16 +12222,17 @@
+ break;
+ }
+ } else {
-+ /*XXX: what *are* the limits on <NV40 cards?, and does RAMIN
-+ * exist in vram on those cards as well?
++ /*XXX: what *are* the limits on <NV40 cards?
+ */
+ dev_priv->ramin_rsvd_vram = (512*1024);
+ }
+ DRM_DEBUG("RAMIN size: %dKiB\n", dev_priv->ramin_rsvd_vram>>10);
+
+ /* Clear all of it, except the BIOS image that's in the first 64KiB */
++ dev_priv->engine.instmem.prepare_access(dev, true);
+ for (i=(64*1024); i<dev_priv->ramin_rsvd_vram; i+=4)
+ nv_wi32(i, 0x00000000);
++ dev_priv->engine.instmem.finish_access(dev);
+}
+
+static void
Index: kernel.spec
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/kernel.spec,v
retrieving revision 1.1294.2.9
retrieving revision 1.1294.2.10
diff -u -r1.1294.2.9 -r1.1294.2.10
--- kernel.spec 5 Mar 2009 01:30:23 -0000 1.1294.2.9
+++ kernel.spec 5 Mar 2009 22:45:09 -0000 1.1294.2.10
@@ -246,7 +246,7 @@
# no need to build headers again for these arches,
# they can just use i586 and ppc64 headers
-%ifarch i686 ppc64iseries ppc ppc64
+%ifarch i686 ppc64iseries
%define with_headers 0
%endif
@@ -259,9 +259,9 @@
%endif
# bootwrapper is only on ppc
-#%ifnarch ppc ppc64
+%ifnarch ppc ppc64
%define with_bootwrapper 0
-#%endif
+%endif
# sparse blows up on ppc64 alpha and sparc64
%ifarch ppc64 ppc alpha sparc64
@@ -464,7 +464,7 @@
Release: %{pkg_release}
# DO NOT CHANGE THE 'ExclusiveArch' LINE TO TEMPORARILY EXCLUDE AN ARCHITECTURE BUILD.
# SET %%nobuildarches (ABOVE) INSTEAD
-ExclusiveArch: noarch %{all_x86} x86_64 ppc ppc64 ia64 sparc sparc64 s390x alpha alphaev56 %{arm}
+ExclusiveArch: noarch %{all_x86} x86_64 ia64 sparc sparc64 s390x alpha alphaev56 %{arm}
ExclusiveOS: Linux
%kernel_reqprovconf
@@ -674,6 +674,9 @@
Patch2899: linux-2.6-v4l-dvb-fixes.patch
Patch2900: linux-2.6-v4l-dvb-update.patch
+# ext4 fixes
+Patch2910: linux-2.6-ext4-inode-alloc-race.patch
+
Patch9001: revert-fix-modules_install-via-nfs.patch
Patch9997: xen.pvops.pre.patch
@@ -1089,6 +1092,7 @@
#
# ext4
+ApplyPatch linux-2.6-ext4-inode-alloc-race.patch
# xfs
@@ -1188,7 +1192,7 @@
#ApplyPatch drm-radeon-pm.patch
ApplyPatch drm-no-gem-on-i8xx.patch
ApplyPatch drm-i915-resume-force-mode.patch
-ApplyPatch drm-fix-setmaster-deadlock.patch
+#ApplyPatch drm-fix-setmaster-deadlock.patch
# linux1394 git patches
ApplyPatch linux-2.6-firewire-git-update.patch
@@ -1798,7 +1802,28 @@
# and build.
%changelog
-* Wed Mar 4 2009 <m.a.young at durham.ac.uk>
+* Wed Mar 05 2009 Michael Young <m.a.young at durham.ac.uk>
+- update pvops patch
+- disable drm-fix-setmaster-deadlock.patch as included in pvops patch
+- set CONFIG_RD_GZIP for non-xen boot
+- take ppc and ppc64 out of ExclusiveArch and hope it doesn't break anything
+
+* Thu Mar 05 2009 Dave Airlie <airlied at redhat.com>
+- drm-radeon-modesetting.patch: add new relocation for Xv sync
+
+* Thu Mar 05 2009 Ben Skeggs <bskeggs at redhat.com>
+- drm-nouveau.patch: fix some issues mainly seen on earlier chipsets
+
+* Thu Mar 05 2009 Eric Sandeen <sandeen at redhat.com>
+- Fix ext4 race between inode bitmap set/clear
+
+* Thu Mar 05 2009 Ben Skeggs <bskeggs at redhat.com>
+- drm-nouveau.patch: fix <nv50 chipsets, and ppc.
+
+* Wed Mar 4 2009 Mauro Carvalho Chehab <mchehab at redhat.com>
+- drivers/media: fixes and improvements on devel tree
+
+* Wed Mar 4 2009 Michael Young <m.a.young at durham.ac.uk>
- update to latest pvops patch
- merge conflict from drm-next.patch
- disable ppc and ppc64 packages
linux-2.6-v4l-dvb-update.patch:
View full diff with command:
/usr/bin/cvs -f diff -kk -u -N -r 1.1.2.3 -r 1.1.2.4 linux-2.6-v4l-dvb-update.patch
Index: linux-2.6-v4l-dvb-update.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/linux-2.6-v4l-dvb-update.patch,v
retrieving revision 1.1.2.3
retrieving revision 1.1.2.4
diff -u -r1.1.2.3 -r1.1.2.4
--- linux-2.6-v4l-dvb-update.patch 5 Mar 2009 01:30:24 -0000 1.1.2.3
+++ linux-2.6-v4l-dvb-update.patch 5 Mar 2009 22:45:10 -0000 1.1.2.4
@@ -11,25 +11,28 @@
'f' 00-1F linux/ext2_fs.h
'h' 00-7F Charon filesystem
diff --git a/Documentation/video4linux/CARDLIST.bttv b/Documentation/video4linux/CARDLIST.bttv
-index 0d93fa1..4dfe626 100644
+index 0d93fa1..1da2c62 100644
--- a/Documentation/video4linux/CARDLIST.bttv
+++ b/Documentation/video4linux/CARDLIST.bttv
-@@ -154,3 +154,4 @@
+@@ -154,3 +154,6 @@
153 -> PHYTEC VD-012 (bt878)
154 -> PHYTEC VD-012-X1 (bt878)
155 -> PHYTEC VD-012-X2 (bt878)
+156 -> IVCE-8784 [0000:f050,0001:f050,0002:f050,0003:f050]
++157 -> Geovision GV-800(S) (master) [800a:763d]
++158 -> Geovision GV-800(S) (slave) [800b:763d,800c:763d,800d:763d]
diff --git a/Documentation/video4linux/CARDLIST.cx23885 b/Documentation/video4linux/CARDLIST.cx23885
-index 35ea130..5937ff9 100644
+index 35ea130..91aa3c0 100644
--- a/Documentation/video4linux/CARDLIST.cx23885
+++ b/Documentation/video4linux/CARDLIST.cx23885
-@@ -12,3 +12,6 @@
+@@ -12,3 +12,7 @@
11 -> DViCO FusionHDTV DVB-T Dual Express [18ac:db78]
12 -> Leadtek Winfast PxDVR3200 H [107d:6681]
13 -> Compro VideoMate E650F [185b:e800]
+ 14 -> TurboSight TBS 6920 [6920:8888]
+ 15 -> TeVii S470 [d470:9022]
+ 16 -> DVBWorld DVB-S2 2005 [0001:2005]
++ 17 -> NetUP Dual DVB-S2 CI [1b55:2a2c]
diff --git a/Documentation/video4linux/CARDLIST.em28xx b/Documentation/video4linux/CARDLIST.em28xx
index 75bded8..78d0a6e 100644
--- a/Documentation/video4linux/CARDLIST.em28xx
@@ -854,7 +857,7 @@
i2c_adapter->algo = &saa7146_algo;
i2c_adapter->algo_data = NULL;
diff --git a/drivers/media/common/saa7146_video.c b/drivers/media/common/saa7146_video.c
-index 47fee05..8d8cb7f 100644
+index 47fee05..8035285 100644
--- a/drivers/media/common/saa7146_video.c
+++ b/drivers/media/common/saa7146_video.c
@@ -1,4 +1,5 @@
@@ -1281,7 +1284,7 @@
/********************************************************************************/
/* common pagetable functions */
-@@ -829,231 +497,451 @@ static int video_end(struct saa7146_fh *fh, struct file *file)
+@@ -829,231 +497,448 @@ static int video_end(struct saa7146_fh *fh, struct file *file)
return 0;
}
@@ -1384,11 +1387,6 @@
+ return 0;
+}
+
-+static int vidioc_enum_fmt_vid_overlay(struct file *file, void *fh, struct v4l2_fmtdesc *f)
-+{
-+ return vidioc_enum_fmt_vid_cap(file, fh, f);
-+}
-+
+static int vidioc_queryctrl(struct file *file, void *fh, struct v4l2_queryctrl *c)
+{
+ const struct v4l2_queryctrl *ctrl;
@@ -1468,11 +1466,7 @@
- /* fixme: add handle "after" case (is it still needed?) */
+ mutex_lock(&dev->lock);
-
-- switch (fh->type) {
-- case V4L2_BUF_TYPE_VIDEO_CAPTURE: {
-- ops = &saa7146_video_uops;
-- q = &fh->video_q;
++
+ switch (ctrl->type) {
+ case V4L2_CTRL_TYPE_BOOLEAN:
+ case V4L2_CTRL_TYPE_MENU:
@@ -1481,11 +1475,15 @@
+ c->value = ctrl->minimum;
+ if (c->value > ctrl->maximum)
+ c->value = ctrl->maximum;
- break;
++ break;
+ default:
+ /* nothing */;
+ }
-+
+
+- switch (fh->type) {
+- case V4L2_BUF_TYPE_VIDEO_CAPTURE: {
+- ops = &saa7146_video_uops;
+- q = &fh->video_q;
+ switch (c->id) {
+ case V4L2_CID_BRIGHTNESS: {
+ u32 value = saa7146_read(dev, BCS_CTRL);
@@ -1493,7 +1491,7 @@
+ value |= (c->value << 24);
+ saa7146_write(dev, BCS_CTRL, value);
+ saa7146_write(dev, MC2, MASK_22 | MASK_06);
-+ break;
+ break;
+ }
+ case V4L2_CID_CONTRAST: {
+ u32 value = saa7146_read(dev, BCS_CTRL);
@@ -1565,19 +1563,8 @@
- case VIDIOC_G_FBUF:
- {
- struct v4l2_framebuffer *fb = arg;
-+ return 0;
-+}
-
+-
- DEB_EE(("VIDIOC_G_FBUF\n"));
-+static int vidioc_g_parm(struct file *file, void *fh,
-+ struct v4l2_streamparm *parm)
-+{
-+ if (parm->type != V4L2_BUF_TYPE_VIDEO_CAPTURE)
-+ return -EINVAL;
-+ parm->parm.capture.readbuffers = 1;
-+ /* fixme: only for PAL! */
-+ parm->parm.capture.timeperframe.numerator = 1;
-+ parm->parm.capture.timeperframe.denominator = 25;
+ return 0;
+}
@@ -1589,25 +1576,27 @@
- {
- struct v4l2_framebuffer *fb = arg;
- struct saa7146_format *fmt;
-+static int vidioc_g_fmt_vid_cap(struct file *file, void *fh, struct v4l2_format *f)
++static int vidioc_g_parm(struct file *file, void *fh,
++ struct v4l2_streamparm *parm)
+{
-+ f->fmt.pix = ((struct saa7146_fh *)fh)->video_fmt;
-+ return 0;
-+}
++ struct saa7146_dev *dev = ((struct saa7146_fh *)fh)->dev;
++ struct saa7146_vv *vv = dev->vv_data;
- DEB_EE(("VIDIOC_S_FBUF\n"));
-+static int vidioc_g_fmt_vid_overlay(struct file *file, void *fh, struct v4l2_format *f)
-+{
-+ f->fmt.win = ((struct saa7146_fh *)fh)->ov.win;
++ if (parm->type != V4L2_BUF_TYPE_VIDEO_CAPTURE)
++ return -EINVAL;
++ parm->parm.capture.readbuffers = 1;
++ v4l2_video_std_frame_period(vv->standard->id,
++ &parm->parm.capture.timeperframe);
+ return 0;
+}
- if(!capable(CAP_SYS_ADMIN) &&
- !capable(CAP_SYS_RAWIO))
- return -EPERM;
-+static int vidioc_g_fmt_vbi_cap(struct file *file, void *fh, struct v4l2_format *f)
++static int vidioc_g_fmt_vid_cap(struct file *file, void *fh, struct v4l2_format *f)
+{
-+ f->fmt.vbi = ((struct saa7146_fh *)fh)->vbi_fmt;
++ f->fmt.pix = ((struct saa7146_fh *)fh)->video_fmt;
+ return 0;
+}
@@ -1616,20 +1605,21 @@
- if (NULL == fmt) {
- return -EINVAL;
- }
-+static int vidioc_try_fmt_vid_cap(struct file *file, void *fh, struct v4l2_format *f)
++static int vidioc_g_fmt_vid_overlay(struct file *file, void *fh, struct v4l2_format *f)
+{
-+ struct saa7146_dev *dev = ((struct saa7146_fh *)fh)->dev;
-+ struct saa7146_vv *vv = dev->vv_data;
-+ struct saa7146_format *fmt;
-+ enum v4l2_field field;
-+ int maxw, maxh;
-+ int calc_bpl;
++ f->fmt.win = ((struct saa7146_fh *)fh)->ov.win;
++ return 0;
++}
- /* planar formats are not allowed for overlay video, clipping and video dma would clash */
- if (0 != (fmt->flags & FORMAT_IS_PLANAR)) {
- DEB_S(("planar pixelformat '%4.4s' not allowed for overlay\n",(char *)&fmt->pixelformat));
- }
-+ DEB_EE(("V4L2_BUF_TYPE_VIDEO_CAPTURE: dev:%p, fh:%p\n", dev, fh));
++static int vidioc_g_fmt_vbi_cap(struct file *file, void *fh, struct v4l2_format *f)
++{
++ f->fmt.vbi = ((struct saa7146_fh *)fh)->vbi_fmt;
++ return 0;
++}
- /* check if overlay is running */
- if (IS_OVERLAY_ACTIVE(fh) != 0) {
@@ -1638,43 +1628,17 @@
[...16650 lines suppressed...]
+- break;
+static int zoran_s_ctrl(struct file *file, void *__fh, struct v4l2_control *ctrl)
+{
+ struct zoran_fh *fh = __fh;
+ struct zoran *zr = fh->zr;
-- dprintk(3, KERN_DEBUG "%s: VIDIOC_S_OUTPUT - output=%d\n",
-- ZR_DEVNAME(zr), *output);
+- case VIDIOC_S_OUTPUT:
+- {
+- int *output = arg;
+ /* we only support hue/saturation/contrast/brightness */
+ if (ctrl->id < V4L2_CID_BRIGHTNESS ||
+ ctrl->id > V4L2_CID_HUE)
+ return -EINVAL;
-- if (*output != 0)
-- return -EINVAL;
+- dprintk(3, KERN_DEBUG "%s: VIDIOC_S_OUTPUT - output=%d\n",
+- ZR_DEVNAME(zr), *output);
+ mutex_lock(&zr->resource_lock);
+ decoder_call(zr, core, s_ctrl, ctrl);
+ mutex_unlock(&zr->resource_lock);
+- if (*output != 0)
+- return -EINVAL;
++ return 0;
++}
+
- return 0;
- }
- break;
-+ return 0;
-+}
++static int zoran_g_std(struct file *file, void *__fh, v4l2_std_id *std)
++{
++ struct zoran_fh *fh = __fh;
++ struct zoran *zr = fh->zr;
- /* cropping (sub-frame capture) */
- case VIDIOC_CROPCAP:
- {
- struct v4l2_cropcap *cropcap = arg;
- int type = cropcap->type, res = 0;
-+static int zoran_g_std(struct file *file, void *__fh, v4l2_std_id *std)
-+{
-+ struct zoran_fh *fh = __fh;
-+ struct zoran *zr = fh->zr;
-
-- dprintk(3, KERN_ERR "%s: VIDIOC_CROPCAP - type=%d\n",
-- ZR_DEVNAME(zr), cropcap->type);
+ mutex_lock(&zr->resource_lock);
+ *std = zr->norm;
+ mutex_unlock(&zr->resource_lock);
+ return 0;
+}
-- memset(cropcap, 0, sizeof(*cropcap));
-- cropcap->type = type;
+- dprintk(3, KERN_ERR "%s: VIDIOC_CROPCAP - type=%d\n",
+- ZR_DEVNAME(zr), cropcap->type);
+static int zoran_s_std(struct file *file, void *__fh, v4l2_std_id *std)
+{
+ struct zoran_fh *fh = __fh;
+ struct zoran *zr = fh->zr;
+ int res = 0;
-- mutex_lock(&zr->resource_lock);
+- memset(cropcap, 0, sizeof(*cropcap));
+- cropcap->type = type;
+ mutex_lock(&zr->resource_lock);
+ res = zoran_set_norm(zr, *std);
+ if (res)
+ goto sstd_unlock_and_return;
+- mutex_lock(&zr->resource_lock);
++ res = wait_grab_pending(zr);
++sstd_unlock_and_return:
++ mutex_unlock(&zr->resource_lock);
++ return res;
++}
+
- if (cropcap->type != V4L2_BUF_TYPE_VIDEO_OUTPUT &&
- (cropcap->type != V4L2_BUF_TYPE_VIDEO_CAPTURE ||
- fh->map_mode == ZORAN_MAP_MODE_RAW)) {
@@ -51832,11 +65728,11 @@
- res = -EINVAL;
- goto cropcap_unlock_and_return;
- }
-+ res = wait_grab_pending(zr);
-+sstd_unlock_and_return:
-+ mutex_unlock(&zr->resource_lock);
-+ return res;
-+}
++static int zoran_enum_input(struct file *file, void *__fh,
++ struct v4l2_input *inp)
++{
++ struct zoran_fh *fh = __fh;
++ struct zoran *zr = fh->zr;
- cropcap->bounds.top = cropcap->bounds.left = 0;
- cropcap->bounds.width = BUZ_MAX_WIDTH;
@@ -51847,33 +65743,27 @@
- cropcap_unlock_and_return:
- mutex_unlock(&zr->resource_lock);
- return res;
-- }
-- break;
-+static int zoran_enum_input(struct file *file, void *__fh,
-+ struct v4l2_input *inp)
-+{
-+ struct zoran_fh *fh = __fh;
-+ struct zoran *zr = fh->zr;
-
-- case VIDIOC_G_CROP:
-- {
-- struct v4l2_crop *crop = arg;
-- int type = crop->type, res = 0;
+ if (inp->index < 0 || inp->index >= zr->card.inputs)
+ return -EINVAL;
+ else {
+ int id = inp->index;
+ memset(inp, 0, sizeof(*inp));
+ inp->index = id;
-+ }
+ }
+- break;
-- dprintk(3, KERN_ERR "%s: VIDIOC_G_CROP - type=%d\n",
-- ZR_DEVNAME(zr), crop->type);
+- case VIDIOC_G_CROP:
+- {
+- struct v4l2_crop *crop = arg;
+- int type = crop->type, res = 0;
+ strncpy(inp->name, zr->card.input[inp->index].name,
+ sizeof(inp->name) - 1);
+ inp->type = V4L2_INPUT_TYPE_CAMERA;
+ inp->std = V4L2_STD_ALL;
+- dprintk(3, KERN_ERR "%s: VIDIOC_G_CROP - type=%d\n",
+- ZR_DEVNAME(zr), crop->type);
+-
- memset(crop, 0, sizeof(*crop));
- crop->type = type;
+ /* Get status of video decoder */
@@ -52381,7 +66271,7 @@
}
static unsigned int
-@@ -4300,10 +3260,7 @@ zoran_vm_close (struct vm_area_struct *vma)
+@@ -4300,10 +3255,7 @@ zoran_vm_close (struct vm_area_struct *vma)
fh->jpg_buffers.active =
ZORAN_FREE;
}
@@ -52393,7 +66283,7 @@
mutex_unlock(&zr->resource_lock);
}
-@@ -4340,10 +3297,7 @@ zoran_vm_close (struct vm_area_struct *vma)
+@@ -4340,10 +3292,7 @@ zoran_vm_close (struct vm_area_struct *vma)
ZORAN_FREE;
spin_unlock_irqrestore(&zr->spinlock, flags);
}
@@ -52405,7 +66295,7 @@
mutex_unlock(&zr->resource_lock);
}
-@@ -4582,11 +3536,56 @@ zoran_mmap (struct file *file,
+@@ -4582,11 +3531,56 @@ zoran_mmap (struct file *file,
return 0;
}
@@ -52463,7 +66353,7 @@
.read = zoran_read,
.write = zoran_write,
.mmap = zoran_mmap,
-@@ -4596,7 +3595,9 @@ static const struct v4l2_file_operations zoran_fops = {
+@@ -4596,7 +3590,9 @@ static const struct v4l2_file_operations zoran_fops = {
struct video_device zoran_template __devinitdata = {
.name = ZORAN_NAME,
.fops = &zoran_fops,
@@ -53087,6 +66977,18 @@
!(grpid) || sd->grp_id == (grpid), o, f , ##args)
#endif
+diff --git a/include/media/v4l2-ioctl.h b/include/media/v4l2-ioctl.h
+index b01c044..a8b4c0b 100644
+--- a/include/media/v4l2-ioctl.h
++++ b/include/media/v4l2-ioctl.h
+@@ -267,6 +267,7 @@ struct v4l2_ioctl_ops {
+
+ /* Video standard functions */
+ extern const char *v4l2_norm_to_name(v4l2_std_id id);
++extern void v4l2_video_std_frame_period(int id, struct v4l2_fract *frameperiod);
+ extern int v4l2_video_std_construct(struct v4l2_standard *vs,
+ int id, const char *name);
+ /* Prints the ioctl in a human-readable format */
diff --git a/include/media/v4l2-subdev.h b/include/media/v4l2-subdev.h
index 37b09e5..05b6965 100644
--- a/include/media/v4l2-subdev.h
xen.pvops.patch:
View full diff with command:
/usr/bin/cvs -f diff -kk -u -N -r 1.1.2.8 -r 1.1.2.9 xen.pvops.patch
Index: xen.pvops.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/Attic/xen.pvops.patch,v
retrieving revision 1.1.2.8
retrieving revision 1.1.2.9
diff -u -r1.1.2.8 -r1.1.2.9
--- xen.pvops.patch 5 Mar 2009 01:30:26 -0000 1.1.2.8
+++ xen.pvops.patch 5 Mar 2009 22:45:11 -0000 1.1.2.9
@@ -7768,6 +7768,21 @@
*(.data.percpu)
*(.data.percpu.shared_aligned)
__per_cpu_end = .;
+diff --git a/arch/powerpc/platforms/86xx/gef_sbc610.c b/arch/powerpc/platforms/86xx/gef_sbc610.c
+index fb371f5..d6b772b 100644
+--- a/arch/powerpc/platforms/86xx/gef_sbc610.c
++++ b/arch/powerpc/platforms/86xx/gef_sbc610.c
+@@ -142,6 +142,10 @@ static void __init gef_sbc610_nec_fixup(struct pci_dev *pdev)
+ {
+ unsigned int val;
+
++ /* Do not do the fixup on other platforms! */
++ if (!machine_is(gef_sbc610))
++ return;
++
+ printk(KERN_INFO "Running NEC uPD720101 Fixup\n");
+
+ /* Ensure ports 1, 2, 3, 4 & 5 are enabled */
diff --git a/arch/powerpc/platforms/Kconfig.cputype b/arch/powerpc/platforms/Kconfig.cputype
index e868b5c..dc0f3c9 100644
--- a/arch/powerpc/platforms/Kconfig.cputype
@@ -7940,7 +7955,7 @@
seq_printf(p, " %14s", irq_desc[i].chip->typename);
seq_printf(p, " %s", action->name);
diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
-index bc2fbad..a866e76 100644
+index bc2fbad..2030a80 100644
--- a/arch/x86/Kconfig
+++ b/arch/x86/Kconfig
@@ -5,7 +5,7 @@ mainmenu "Linux Kernel Configuration for x86"
@@ -8595,7 +8610,7 @@
Additional support for intel specific MCE features such as
the thermal monitor.
-@@ -747,14 +782,14 @@ config X86_MCE_AMD
+@@ -747,14 +782,19 @@ config X86_MCE_AMD
def_bool y
prompt "AMD MCE features"
depends on X86_64 && X86_MCE && X86_LOCAL_APIC
@@ -8604,6 +8619,11 @@
Additional support for AMD specific MCE features such as
the DRAM Error Threshold.
++config X86_MCE_THRESHOLD
++ depends on X86_MCE_AMD || X86_MCE_INTEL
++ bool
++ default y
++
config X86_MCE_NONFATAL
tristate "Check for non-fatal errors on AMD Athlon/Duron / Intel Pentium 4"
depends on X86_32 && X86_MCE
@@ -8612,7 +8632,7 @@
Enabling this feature starts a timer that triggers every 5 seconds which
will look at the machine check registers to see if anything happened.
Non-fatal problems automatically get corrected (but still logged).
-@@ -767,7 +802,7 @@ config X86_MCE_NONFATAL
+@@ -767,7 +807,7 @@ config X86_MCE_NONFATAL
config X86_MCE_P4THERMAL
bool "check for P4 thermal throttling interrupt."
depends on X86_32 && X86_MCE && (X86_UP_APIC || SMP)
@@ -8621,7 +8641,7 @@
Enabling this feature will cause a message to be printed when the P4
enters thermal throttling.
-@@ -775,11 +810,11 @@ config VM86
+@@ -775,11 +815,11 @@ config VM86
bool "Enable VM86 support" if EMBEDDED
default y
depends on X86_32
@@ -8637,7 +8657,7 @@
config TOSHIBA
tristate "Toshiba Laptop support"
-@@ -853,33 +888,33 @@ config MICROCODE
+@@ -853,33 +893,33 @@ config MICROCODE
module will be called microcode.
config MICROCODE_INTEL
@@ -8690,7 +8710,7 @@
This device gives privileged processes access to the x86
Model-Specific Registers (MSRs). It is a character device with
major 202 and minors 0 to 31 for /dev/cpu/0/msr to /dev/cpu/31/msr.
-@@ -888,7 +923,7 @@ config X86_MSR
+@@ -888,7 +928,7 @@ config X86_MSR
config X86_CPUID
tristate "/dev/cpu/*/cpuid - CPU information support"
@@ -8699,7 +8719,7 @@
This device gives processes access to the x86 CPUID instruction to
be executed on a specific processor. It is a character device
with major 203 and minors 0 to 31 for /dev/cpu/0/cpuid to
-@@ -940,7 +975,7 @@ config NOHIGHMEM
+@@ -940,7 +980,7 @@ config NOHIGHMEM
config HIGHMEM4G
bool "4GB"
depends on !X86_NUMAQ
@@ -8708,7 +8728,7 @@
Select this if you have a 32-bit processor and between 1 and 4
gigabytes of physical RAM.
-@@ -948,7 +983,7 @@ config HIGHMEM64G
+@@ -948,7 +988,7 @@ config HIGHMEM64G
bool "64GB"
depends on !M386 && !M486
select X86_PAE
@@ -8717,7 +8737,7 @@
Select this if you have a 32-bit processor and more than 4
gigabytes of physical RAM.
-@@ -959,7 +994,7 @@ choice
+@@ -959,7 +999,7 @@ choice
prompt "Memory split" if EMBEDDED
default VMSPLIT_3G
depends on X86_32
@@ -8726,7 +8746,7 @@
Select the desired split between kernel and user memory.
If the address range available to the kernel is less than the
-@@ -1005,20 +1040,20 @@ config HIGHMEM
+@@ -1005,20 +1045,20 @@ config HIGHMEM
config X86_PAE
bool "PAE (Physical Address Extension) Support"
depends on X86_32 && !HIGHMEM4G
@@ -8750,7 +8770,7 @@
Allow the kernel linear mapping to use 1GB pages on CPUs that
support it. This can improve the kernel's performance a tiny bit by
reducing TLB pressure. If in doubt, say "Y".
-@@ -1028,9 +1063,8 @@ config NUMA
+@@ -1028,9 +1068,8 @@ config NUMA
bool "Numa Memory Allocation and Scheduler Support"
depends on SMP
depends on X86_64 || (X86_32 && HIGHMEM64G && (X86_NUMAQ || X86_BIGSMP || X86_SUMMIT && ACPI) && EXPERIMENTAL)
@@ -8761,7 +8781,7 @@
Enable NUMA (Non Uniform Memory Access) support.
The kernel will try to allocate memory used by a CPU on the
-@@ -1053,19 +1087,19 @@ config K8_NUMA
+@@ -1053,19 +1092,19 @@ config K8_NUMA
def_bool y
prompt "Old style AMD Opteron NUMA detection"
depends on X86_64 && NUMA && PCI
@@ -8788,7 +8808,7 @@
Enable ACPI SRAT based node topology detection.
# Some NUMA nodes have memory ranges that span
-@@ -1080,7 +1114,7 @@ config NODES_SPAN_OTHER_NODES
+@@ -1080,7 +1119,7 @@ config NODES_SPAN_OTHER_NODES
config NUMA_EMU
bool "NUMA emulation"
depends on X86_64 && NUMA
@@ -8797,7 +8817,7 @@
Enable NUMA emulation. A flat machine will be split
into virtual nodes when booted with "numa=fake=N", where N is the
number of nodes. This is only useful for debugging.
-@@ -1093,11 +1127,11 @@ config NODES_SHIFT
+@@ -1093,11 +1132,11 @@ config NODES_SHIFT
default "4" if X86_NUMAQ
default "3"
depends on NEED_MULTIPLE_NODES
@@ -8811,7 +8831,7 @@
def_bool y
depends on X86_32 && NUMA
-@@ -1131,7 +1165,7 @@ config ARCH_SPARSEMEM_DEFAULT
+@@ -1131,7 +1170,7 @@ config ARCH_SPARSEMEM_DEFAULT
config ARCH_SPARSEMEM_ENABLE
def_bool y
@@ -8820,7 +8840,7 @@
select SPARSEMEM_STATIC if X86_32
select SPARSEMEM_VMEMMAP_ENABLE if X86_64
-@@ -1143,66 +1177,71 @@ config ARCH_MEMORY_PROBE
+@@ -1143,66 +1182,71 @@ config ARCH_MEMORY_PROBE
def_bool X86_64
depends on MEMORY_HOTPLUG
@@ -8931,7 +8951,7 @@
config MATH_EMULATION
bool
-@@ -1268,7 +1307,7 @@ config MTRR_SANITIZER
+@@ -1268,7 +1312,7 @@ config MTRR_SANITIZER
def_bool y
prompt "MTRR cleanup support"
depends on MTRR
@@ -8940,7 +8960,7 @@
Convert MTRR layout from continuous to discrete, so X drivers can
add writeback entries.
-@@ -1283,7 +1322,7 @@ config MTRR_SANITIZER_ENABLE_DEFAULT
[...5797 lines suppressed...]
+@@ -280,6 +299,10 @@ extern void __ftrace_bad_type(void);
TRACE_GRAPH_RET); \
IF_ASSIGN(var, ent, struct hw_branch_entry, TRACE_HW_BRANCHES);\
IF_ASSIGN(var, ent, struct trace_power, TRACE_POWER); \
@@ -115431,7 +117663,7 @@
__ftrace_bad_type(); \
} while (0)
-@@ -287,7 +309,8 @@ extern void __ftrace_bad_type(void);
+@@ -287,7 +310,8 @@ extern void __ftrace_bad_type(void);
enum print_line_t {
TRACE_TYPE_PARTIAL_LINE = 0, /* Retry after flushing the seq */
TRACE_TYPE_HANDLED = 1,
@@ -115441,7 +117673,7 @@
};
-@@ -313,22 +336,45 @@ struct tracer_flags {
+@@ -313,22 +337,45 @@ struct tracer_flags {
/* Makes more easy to define a tracer opt */
#define TRACER_OPT(s, b) .name = #s, .bit = b
@@ -115490,7 +117722,7 @@
#ifdef CONFIG_FTRACE_STARTUP_TEST
int (*selftest)(struct tracer *trace,
struct trace_array *tr);
-@@ -340,6 +386,7 @@ struct tracer {
+@@ -340,6 +387,7 @@ struct tracer {
struct tracer *next;
int print_max;
struct tracer_flags *flags;
@@ -115498,7 +117730,7 @@
};
struct trace_seq {
-@@ -348,6 +395,16 @@ struct trace_seq {
+@@ -348,6 +396,16 @@ struct trace_seq {
unsigned int readpos;
};
@@ -115515,7 +117747,7 @@
/*
* Trace iterator - used by printout routines who present trace
* results to users and which routines might sleep, etc:
-@@ -356,6 +413,8 @@ struct trace_iterator {
+@@ -356,6 +414,8 @@ struct trace_iterator {
struct trace_array *tr;
struct tracer *trace;
void *private;
@@ -115524,7 +117756,7 @@
struct ring_buffer_iter *buffer_iter[NR_CPUS];
/* The below is zeroed out in pipe_read */
-@@ -371,6 +430,7 @@ struct trace_iterator {
+@@ -371,6 +431,7 @@ struct trace_iterator {
cpumask_var_t started;
};
@@ -115532,7 +117764,7 @@
int tracing_is_enabled(void);
void trace_wake_up(void);
void tracing_reset(struct trace_array *tr, int cpu);
-@@ -379,26 +439,48 @@ int tracing_open_generic(struct inode *inode, struct file *filp);
+@@ -379,26 +440,48 @@ int tracing_open_generic(struct inode *inode, struct file *filp);
struct dentry *tracing_init_dentry(void);
void init_tracer_sysprof_debugfs(struct dentry *d_tracer);
@@ -115583,7 +117815,7 @@
struct task_struct *wakee,
struct task_struct *cur,
unsigned long flags, int pc);
-@@ -408,14 +490,12 @@ void trace_special(struct trace_array *tr,
+@@ -408,14 +491,12 @@ void trace_special(struct trace_array *tr,
unsigned long arg2,
unsigned long arg3, int pc);
void trace_function(struct trace_array *tr,
@@ -115598,7 +117830,7 @@
void tracing_start_cmdline_record(void);
void tracing_stop_cmdline_record(void);
-@@ -434,15 +514,11 @@ void update_max_tr(struct trace_array *tr, struct task_struct *tsk, int cpu);
+@@ -434,15 +515,11 @@ void update_max_tr(struct trace_array *tr, struct task_struct *tsk, int cpu);
void update_max_tr_single(struct trace_array *tr,
struct task_struct *tsk, int cpu);
@@ -115618,7 +117850,7 @@
#ifdef CONFIG_CONTEXT_SWITCH_TRACER
typedef void
-@@ -456,10 +532,10 @@ struct tracer_switch_ops {
+@@ -456,10 +533,10 @@ struct tracer_switch_ops {
void *private;
struct tracer_switch_ops *next;
};
@@ -115631,7 +117863,7 @@
#ifdef CONFIG_DYNAMIC_FTRACE
extern unsigned long ftrace_update_tot_cnt;
#define DYN_FTRACE_TEST_NAME trace_selftest_dynamic_test_func
-@@ -469,6 +545,8 @@ extern int DYN_FTRACE_TEST_NAME(void);
+@@ -469,6 +546,8 @@ extern int DYN_FTRACE_TEST_NAME(void);
#ifdef CONFIG_FTRACE_STARTUP_TEST
extern int trace_selftest_startup_function(struct tracer *trace,
struct trace_array *tr);
@@ -115640,7 +117872,7 @@
extern int trace_selftest_startup_irqsoff(struct tracer *trace,
struct trace_array *tr);
extern int trace_selftest_startup_preemptoff(struct tracer *trace,
-@@ -488,15 +566,6 @@ extern int trace_selftest_startup_branch(struct tracer *trace,
+@@ -488,15 +567,6 @@ extern int trace_selftest_startup_branch(struct tracer *trace,
#endif /* CONFIG_FTRACE_STARTUP_TEST */
extern void *head_page(struct trace_array_cpu *data);
@@ -115656,7 +117888,7 @@
extern long ns2usecs(cycle_t nsec);
extern int
trace_vprintk(unsigned long ip, int depth, const char *fmt, va_list args);
-@@ -580,7 +649,8 @@ enum trace_iterator_flags {
+@@ -580,7 +650,8 @@ enum trace_iterator_flags {
TRACE_ITER_ANNOTATE = 0x2000,
TRACE_ITER_USERSTACKTRACE = 0x4000,
TRACE_ITER_SYM_USEROBJ = 0x8000,
@@ -115666,7 +117898,7 @@
};
/*
-@@ -601,12 +671,12 @@ extern struct tracer nop_trace;
+@@ -601,12 +672,12 @@ extern struct tracer nop_trace;
* preempt_enable (after a disable), a schedule might take place
* causing an infinite recursion.
*
@@ -115681,7 +117913,7 @@
* and we have yet to reschedule, we are either in an atomic location
* (where we do not need to check for scheduling) or we are inside
* the scheduler and do not want to resched.
-@@ -627,7 +697,7 @@ static inline int ftrace_preempt_disable(void)
+@@ -627,7 +698,7 @@ static inline int ftrace_preempt_disable(void)
*
* This is a scheduler safe way to enable preemption and not miss
* any preemption checks. The disabled saved the state of preemption.
@@ -115690,7 +117922,7 @@
* are inside the scheduler (we would have already scheduled
* otherwise). In this case, we do not want to call normal
* preempt_enable, but preempt_enable_no_resched instead.
-@@ -664,4 +734,31 @@ static inline void trace_branch_disable(void)
+@@ -664,4 +735,31 @@ static inline void trace_branch_disable(void)
}
#endif /* CONFIG_BRANCH_TRACER */
@@ -117266,7 +119498,7 @@
+#include <trace/trace_event_types.h>
diff --git a/kernel/trace/trace_events_stage_3.h b/kernel/trace/trace_events_stage_3.h
new file mode 100644
-index 0000000..041789f
+index 0000000..2c8d76c
--- /dev/null
+++ b/kernel/trace/trace_events_stage_3.h
@@ -0,0 +1,235 @@
@@ -117277,7 +119509,7 @@
+ *
+ * static void ftrace_event_<call>(proto)
+ * {
-+ * event_trace_printk(_RET_IP_, "(<call>) " <fmt>);
++ * event_trace_printk(_RET_IP_, "<call>: " <fmt>);
+ * }
+ *
+ * static int ftrace_reg_event_<call>(void)
@@ -117384,7 +119616,7 @@
+#define _TRACE_FORMAT(call, proto, args, fmt) \
+static void ftrace_event_##call(proto) \
+{ \
-+ event_trace_printk(_RET_IP_, "(" #call ") " fmt); \
++ event_trace_printk(_RET_IP_, #call ": " fmt); \
+} \
+ \
+static int ftrace_reg_event_##call(void) \
@@ -121791,7 +124023,7 @@
boolean
depends on !NO_IOMEM
diff --git a/lib/Kconfig.debug b/lib/Kconfig.debug
-index 1bcf9cd..e57f8e7 100644
+index 1bcf9cd..86c9ba0 100644
--- a/lib/Kconfig.debug
+++ b/lib/Kconfig.debug
@@ -9,8 +9,20 @@ config PRINTK_TIME
@@ -121901,6 +124133,15 @@
default n
help
Boot with debugging on by default. SLUB boots by default with
+@@ -402,7 +452,7 @@ config LOCKDEP
+ bool
+ depends on DEBUG_KERNEL && TRACE_IRQFLAGS_SUPPORT && STACKTRACE_SUPPORT && LOCKDEP_SUPPORT
+ select STACKTRACE
+- select FRAME_POINTER if !X86 && !MIPS && !PPC
++ select FRAME_POINTER if !MIPS && !PPC
+ select KALLSYMS
+ select KALLSYMS_ALL
+
@@ -905,3 +955,5 @@ config DYNAMIC_PRINTK_DEBUG
source "samples/Kconfig"
- Previous message (by thread): rpms/gdm/devel gdm-2.25.2-multistack-but-boring.patch, 1.5, 1.6 gdm.spec, 1.446, 1.447
- Next message (by thread): rpms/rkhunter/devel rkhunter-1.3.4-fedoraconfig.patch, NONE, 1.1 rkhunter.spec, 1.20, 1.21 01-rkhunter, 1.5, 1.6
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
More information about the fedora-extras-commits
mailing list