[kernel] r15947 - in dists/sid/linux-2.6/debian: . patches/bugfix/all/stable patches/series
Ben Hutchings
benh at alioth.debian.org
Mon Jul 5 21:13:24 UTC 2010
Author: benh
Date: Mon Jul 5 21:13:21 2010
New Revision: 15947
Log:
Replace stable pre-patches 2.6.32.16-rc1 and 2.6.33.6-rc1 with final versions
Added:
dists/sid/linux-2.6/debian/patches/bugfix/all/stable/2.6.32.16.patch
- copied, changed from r15946, dists/sid/linux-2.6/debian/patches/bugfix/all/stable/2.6.32.16-rc1.patch
dists/sid/linux-2.6/debian/patches/bugfix/all/stable/2.6.33.6.patch
- copied unchanged from r15946, dists/sid/linux-2.6/debian/patches/bugfix/all/stable/2.6.33.6-rc1.patch
Deleted:
dists/sid/linux-2.6/debian/patches/bugfix/all/stable/2.6.32.16-rc1.patch
dists/sid/linux-2.6/debian/patches/bugfix/all/stable/2.6.33.6-rc1.patch
Modified:
dists/sid/linux-2.6/debian/changelog
dists/sid/linux-2.6/debian/patches/series/16
Modified: dists/sid/linux-2.6/debian/changelog
==============================================================================
--- dists/sid/linux-2.6/debian/changelog Mon Jul 5 20:11:30 2010 (r15946)
+++ dists/sid/linux-2.6/debian/changelog Mon Jul 5 21:13:21 2010 (r15947)
@@ -42,11 +42,11 @@
* ipv6: Clamp reported valid_lft to a minimum of 0 (Closes: #514644)
* ipv6: Use interface max_desync_factor instead of static default
(Closes: #514646)
- * Add stable 2.6.32.16-rc1
+ * Add stable 2.6.32.16:
- Fixes CVE-2010-1641, CVE-2010-1187, CVE-2010-1148, CVE-2010-1173
and CVE-2010-2071
- libata: disable ATAPI AN by default (Closes: #582737)
- * Add drm changes from stable 2.6.33.6-rc1
+ * Add drm changes from stable 2.6.33.6
* [ia64, powerpc, sparc, x86] Enable KPROBES and KRETPROBES
(Closes: #584130)
* r8192s_usb: Fix various bugs:
Copied and modified: dists/sid/linux-2.6/debian/patches/bugfix/all/stable/2.6.32.16.patch (from r15946, dists/sid/linux-2.6/debian/patches/bugfix/all/stable/2.6.32.16-rc1.patch)
==============================================================================
--- dists/sid/linux-2.6/debian/patches/bugfix/all/stable/2.6.32.16-rc1.patch Mon Jul 5 20:11:30 2010 (r15946, copy source)
+++ dists/sid/linux-2.6/debian/patches/bugfix/all/stable/2.6.32.16.patch Mon Jul 5 21:13:21 2010 (r15947)
@@ -51,6 +51,8 @@
(4a) Interpretation of error messages and common problems
+diff --git a/Makefile b/Makefile
+index 36fead3..9797439 100644
diff --git a/arch/arm/common/sa1111.c b/arch/arm/common/sa1111.c
index 8ba7044..b07bfee 100644
--- a/arch/arm/common/sa1111.c
@@ -322,11 +324,114 @@
index = ENTRIES-1;
return initial_lfsr[index];
+diff --git a/arch/powerpc/platforms/pseries/hotplug-cpu.c b/arch/powerpc/platforms/pseries/hotplug-cpu.c
+index ebff6d9..c2c1720 100644
+--- a/arch/powerpc/platforms/pseries/hotplug-cpu.c
++++ b/arch/powerpc/platforms/pseries/hotplug-cpu.c
+@@ -66,30 +66,6 @@ static void pseries_mach_cpu_die(void)
+ for(;;);
+ }
+
+-static int qcss_tok; /* query-cpu-stopped-state token */
+-
+-/* Get state of physical CPU.
+- * Return codes:
+- * 0 - The processor is in the RTAS stopped state
+- * 1 - stop-self is in progress
+- * 2 - The processor is not in the RTAS stopped state
+- * -1 - Hardware Error
+- * -2 - Hardware Busy, Try again later.
+- */
+-static int query_cpu_stopped(unsigned int pcpu)
+-{
+- int cpu_status, status;
+-
+- status = rtas_call(qcss_tok, 1, 2, &cpu_status, pcpu);
+- if (status != 0) {
+- printk(KERN_ERR
+- "RTAS query-cpu-stopped-state failed: %i\n", status);
+- return status;
+- }
+-
+- return cpu_status;
+-}
+-
+ static int pseries_cpu_disable(void)
+ {
+ int cpu = smp_processor_id();
+@@ -113,8 +89,9 @@ static void pseries_cpu_die(unsigned int cpu)
+ unsigned int pcpu = get_hard_smp_processor_id(cpu);
+
+ for (tries = 0; tries < 25; tries++) {
+- cpu_status = query_cpu_stopped(pcpu);
+- if (cpu_status == 0 || cpu_status == -1)
++ cpu_status = smp_query_cpu_stopped(pcpu);
++ if (cpu_status == QCSS_STOPPED ||
++ cpu_status == QCSS_HARDWARE_ERROR)
+ break;
+ cpu_relax();
+ }
+@@ -256,6 +233,7 @@ static int __init pseries_cpu_hotplug_init(void)
+ {
+ struct device_node *np;
+ const char *typep;
++ int qcss_tok;
+
+ for_each_node_by_name(np, "interrupt-controller") {
+ typep = of_get_property(np, "compatible", NULL);
+diff --git a/arch/powerpc/platforms/pseries/plpar_wrappers.h b/arch/powerpc/platforms/pseries/plpar_wrappers.h
+index a24a6b2..45f634c 100644
+--- a/arch/powerpc/platforms/pseries/plpar_wrappers.h
++++ b/arch/powerpc/platforms/pseries/plpar_wrappers.h
+@@ -4,6 +4,14 @@
+ #include <asm/hvcall.h>
+ #include <asm/page.h>
+
++/* Get state of physical CPU from query_cpu_stopped */
++int smp_query_cpu_stopped(unsigned int pcpu);
++#define QCSS_STOPPED 0
++#define QCSS_STOPPING 1
++#define QCSS_NOT_STOPPED 2
++#define QCSS_HARDWARE_ERROR -1
++#define QCSS_HARDWARE_BUSY -2
++
+ static inline long poll_pending(void)
+ {
+ return plpar_hcall_norets(H_POLL_PENDING);
diff --git a/arch/powerpc/platforms/pseries/smp.c b/arch/powerpc/platforms/pseries/smp.c
-index 440000c..e4822fe 100644
+index 440000c..3afa079 100644
--- a/arch/powerpc/platforms/pseries/smp.c
+++ b/arch/powerpc/platforms/pseries/smp.c
-@@ -81,6 +81,12 @@ static inline int __devinit smp_startup_cpu(unsigned int lcpu)
+@@ -56,6 +56,28 @@
+ */
+ static cpumask_t of_spin_map;
+
++/* Query where a cpu is now. Return codes #defined in plpar_wrappers.h */
++int smp_query_cpu_stopped(unsigned int pcpu)
++{
++ int cpu_status, status;
++ int qcss_tok = rtas_token("query-cpu-stopped-state");
++
++ if (qcss_tok == RTAS_UNKNOWN_SERVICE) {
++ printk(KERN_INFO "Firmware doesn't support "
++ "query-cpu-stopped-state\n");
++ return QCSS_HARDWARE_ERROR;
++ }
++
++ status = rtas_call(qcss_tok, 1, 2, &cpu_status, pcpu);
++ if (status != 0) {
++ printk(KERN_ERR
++ "RTAS query-cpu-stopped-state failed: %i\n", status);
++ return status;
++ }
++
++ return cpu_status;
++}
++
+ /**
+ * smp_startup_cpu() - start the given cpu
+ *
+@@ -81,6 +103,12 @@ static inline int __devinit smp_startup_cpu(unsigned int lcpu)
pcpu = get_hard_smp_processor_id(lcpu);
@@ -1438,6 +1543,26 @@
u16 flags; /* custom mode flags */
u8 ocr; /* output control register */
+diff --git a/drivers/net/ixgbe/ixgbe_main.c b/drivers/net/ixgbe/ixgbe_main.c
+index 6339d65..a873c5d 100644
+--- a/drivers/net/ixgbe/ixgbe_main.c
++++ b/drivers/net/ixgbe/ixgbe_main.c
+@@ -5241,9 +5241,13 @@ static int ixgbe_maybe_stop_tx(struct net_device *netdev,
+ static u16 ixgbe_select_queue(struct net_device *dev, struct sk_buff *skb)
+ {
+ struct ixgbe_adapter *adapter = netdev_priv(dev);
++ int txq = smp_processor_id();
+
+- if (adapter->flags & IXGBE_FLAG_FDIR_HASH_CAPABLE)
+- return smp_processor_id();
++ if (adapter->flags & IXGBE_FLAG_FDIR_HASH_CAPABLE) {
++ while (unlikely(txq >= dev->real_num_tx_queues))
++ txq -= dev->real_num_tx_queues;
++ return txq;
++ }
+
+ if (adapter->flags & IXGBE_FLAG_DCB_ENABLED)
+ return (skb->vlan_tci & IXGBE_TX_FLAGS_VLAN_PRIO_MASK) >> 13;
diff --git a/drivers/net/mlx4/icm.c b/drivers/net/mlx4/icm.c
index 04b382f..83eef8e 100644
--- a/drivers/net/mlx4/icm.c
@@ -3296,34 +3421,6 @@
err = exofs_commit_chunk(page, 0, chunk_size);
fail:
page_cache_release(page);
-diff --git a/fs/ext4/move_extent.c b/fs/ext4/move_extent.c
-index f5b03a1..d55b15c 100644
---- a/fs/ext4/move_extent.c
-+++ b/fs/ext4/move_extent.c
-@@ -964,6 +964,9 @@ mext_check_arguments(struct inode *orig_inode,
- return -EINVAL;
- }
-
-+ if (IS_IMMUTABLE(donor_inode) || IS_APPEND(donor_inode))
-+ return -EPERM;
-+
- /* Ext4 move extent does not support swapfile */
- if (IS_SWAPFILE(orig_inode) || IS_SWAPFILE(donor_inode)) {
- ext4_debug("ext4 move extent: The argument files should "
-diff --git a/fs/ext4/resize.c b/fs/ext4/resize.c
-index 3b2c554..433ea27 100644
---- a/fs/ext4/resize.c
-+++ b/fs/ext4/resize.c
-@@ -930,7 +930,8 @@ int ext4_group_add(struct super_block *sb, struct ext4_new_group_data *input)
- percpu_counter_add(&sbi->s_freeinodes_counter,
- EXT4_INODES_PER_GROUP(sb));
-
-- if (EXT4_HAS_INCOMPAT_FEATURE(sb, EXT4_FEATURE_INCOMPAT_FLEX_BG)) {
-+ if (EXT4_HAS_INCOMPAT_FEATURE(sb, EXT4_FEATURE_INCOMPAT_FLEX_BG) &&
-+ sbi->s_log_groups_per_flex) {
- ext4_group_t flex_group;
- flex_group = ext4_flex_group(sbi, input->group);
- atomic_add(input->free_blocks_count,
diff --git a/fs/fs-writeback.c b/fs/fs-writeback.c
index bff5f77..ef2acd2 100644
--- a/fs/fs-writeback.c
Copied: dists/sid/linux-2.6/debian/patches/bugfix/all/stable/2.6.33.6.patch (from r15946, dists/sid/linux-2.6/debian/patches/bugfix/all/stable/2.6.33.6-rc1.patch)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ dists/sid/linux-2.6/debian/patches/bugfix/all/stable/2.6.33.6.patch Mon Jul 5 21:13:21 2010 (r15947, copy of r15946, dists/sid/linux-2.6/debian/patches/bugfix/all/stable/2.6.33.6-rc1.patch)
@@ -0,0 +1,160 @@
+--- a/drivers/gpu/drm/drm_edid.c
++++ b/drivers/gpu/drm/drm_edid.c
+@@ -334,7 +334,7 @@ static struct drm_display_mode drm_dmt_modes[] = {
+ DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC) },
+ /* 1024x768 at 85Hz */
+ { DRM_MODE("1024x768", DRM_MODE_TYPE_DRIVER, 94500, 1024, 1072,
+- 1072, 1376, 0, 768, 769, 772, 808, 0,
++ 1168, 1376, 0, 768, 769, 772, 808, 0,
+ DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC) },
+ /* 1152x864 at 75Hz */
+ { DRM_MODE("1152x864", DRM_MODE_TYPE_DRIVER, 108000, 1152, 1216,
+--- a/drivers/gpu/drm/i915/i915_drv.c
++++ b/drivers/gpu/drm/i915/i915_drv.c
+@@ -68,7 +68,8 @@ const static struct intel_device_info intel_845g_info = {
+ };
+
+ const static struct intel_device_info intel_i85x_info = {
+- .is_i8xx = 1, .is_mobile = 1, .cursor_needs_physical = 1,
++ .is_i8xx = 1, .is_i85x = 1, .is_mobile = 1,
++ .cursor_needs_physical = 1,
+ };
+
+ const static struct intel_device_info intel_i865g_info = {
+@@ -140,7 +141,7 @@ const static struct pci_device_id pciidlist[] = {
+ INTEL_VGA_DEVICE(0x3577, &intel_i830_info),
+ INTEL_VGA_DEVICE(0x2562, &intel_845g_info),
+ INTEL_VGA_DEVICE(0x3582, &intel_i85x_info),
+- INTEL_VGA_DEVICE(0x35e8, &intel_i85x_info),
++ INTEL_VGA_DEVICE(0x358e, &intel_i85x_info),
+ INTEL_VGA_DEVICE(0x2572, &intel_i865g_info),
+ INTEL_VGA_DEVICE(0x2582, &intel_i915g_info),
+ INTEL_VGA_DEVICE(0x258a, &intel_i915g_info),
+--- a/drivers/gpu/drm/i915/i915_drv.h
++++ b/drivers/gpu/drm/i915/i915_drv.h
+@@ -175,6 +175,7 @@ struct intel_overlay;
+ struct intel_device_info {
+ u8 is_mobile : 1;
+ u8 is_i8xx : 1;
++ u8 is_i85x : 1;
+ u8 is_i915g : 1;
+ u8 is_i9xx : 1;
+ u8 is_i945gm : 1;
+@@ -1027,7 +1028,7 @@ extern int i915_wait_ring(struct drm_device * dev, int n, const char *caller);
+
+ #define IS_I830(dev) ((dev)->pci_device == 0x3577)
+ #define IS_845G(dev) ((dev)->pci_device == 0x2562)
+-#define IS_I85X(dev) ((dev)->pci_device == 0x3582)
++#define IS_I85X(dev) (INTEL_INFO(dev)->is_i85x)
+ #define IS_I865G(dev) ((dev)->pci_device == 0x2572)
+ #define IS_GEN2(dev) (INTEL_INFO(dev)->is_i8xx)
+ #define IS_I915G(dev) (INTEL_INFO(dev)->is_i915g)
+--- a/drivers/gpu/drm/i915/i915_gem.c
++++ b/drivers/gpu/drm/i915/i915_gem.c
+@@ -2641,6 +2641,14 @@ i915_gem_object_bind_to_gtt(struct drm_gem_object *obj, unsigned alignment)
+ return -EINVAL;
+ }
+
++ /* If the object is bigger than the entire aperture, reject it early
++ * before evicting everything in a vain attempt to find space.
++ */
++ if (obj->size > dev->gtt_total) {
++ DRM_ERROR("Attempting to bind an object larger than the aperture\n");
++ return -E2BIG;
++ }
++
+ search_free:
+ free_space = drm_mm_search_free(&dev_priv->mm.gtt_space,
+ obj->size, alignment, 0);
+@@ -4175,6 +4183,17 @@ i915_gem_object_pin(struct drm_gem_object *obj, uint32_t alignment)
+ int ret;
+
+ i915_verify_inactive(dev, __FILE__, __LINE__);
++
++ if (obj_priv->gtt_space != NULL) {
++ if (alignment == 0)
++ alignment = i915_gem_get_gtt_alignment(obj);
++ if (obj_priv->gtt_offset & (alignment - 1)) {
++ ret = i915_gem_object_unbind(obj);
++ if (ret)
++ return ret;
++ }
++ }
++
+ if (obj_priv->gtt_space == NULL) {
+ ret = i915_gem_object_bind_to_gtt(obj, alignment);
+ if (ret)
+--- a/drivers/gpu/drm/radeon/radeon_atombios.c
++++ b/drivers/gpu/drm/radeon/radeon_atombios.c
+@@ -514,6 +514,8 @@ bool radeon_get_atom_connector_info_from_object_table(struct drm_device *dev)
+ }
+
+ /* look up gpio for ddc, hpd */
++ ddc_bus.valid = false;
++ hpd.hpd = RADEON_HPD_NONE;
+ if ((le16_to_cpu(path->usDeviceTag) &
+ (ATOM_DEVICE_TV_SUPPORT | ATOM_DEVICE_CV_SUPPORT)) == 0) {
+ for (j = 0; j < con_obj->ucNumberOfObjects; j++) {
+@@ -569,9 +571,6 @@ bool radeon_get_atom_connector_info_from_object_table(struct drm_device *dev)
+ break;
+ }
+ }
+- } else {
+- hpd.hpd = RADEON_HPD_NONE;
+- ddc_bus.valid = false;
+ }
+
+ conn_id = le16_to_cpu(path->usConnObjectId);
+@@ -1137,7 +1136,7 @@ struct radeon_encoder_atom_dig *radeon_atombios_get_lvds_info(struct
+ lvds->native_mode.vtotal = lvds->native_mode.vdisplay +
+ le16_to_cpu(lvds_info->info.sLCDTiming.usVBlanking_Time);
+ lvds->native_mode.vsync_start = lvds->native_mode.vdisplay +
+- le16_to_cpu(lvds_info->info.sLCDTiming.usVSyncWidth);
++ le16_to_cpu(lvds_info->info.sLCDTiming.usVSyncOffset);
+ lvds->native_mode.vsync_end = lvds->native_mode.vsync_start +
+ le16_to_cpu(lvds_info->info.sLCDTiming.usVSyncWidth);
+ lvds->panel_pwr_delay =
+--- a/drivers/gpu/drm/radeon/radeon_cp.c
++++ b/drivers/gpu/drm/radeon/radeon_cp.c
+@@ -1646,6 +1646,7 @@ static int radeon_do_resume_cp(struct drm_device *dev, struct drm_file *file_pri
+ radeon_cp_load_microcode(dev_priv);
+ radeon_cp_init_ring_buffer(dev, dev_priv, file_priv);
+
++ dev_priv->have_z_offset = 0;
+ radeon_do_engine_reset(dev);
+ radeon_irq_set_state(dev, RADEON_SW_INT_ENABLE, 1);
+
+--- a/drivers/gpu/drm/radeon/radeon_drv.h
++++ b/drivers/gpu/drm/radeon/radeon_drv.h
+@@ -268,6 +268,8 @@ typedef struct drm_radeon_private {
+
+ u32 scratch_ages[5];
+
++ int have_z_offset;
++
+ /* starting from here on, data is preserved accross an open */
+ uint32_t flags; /* see radeon_chip_flags */
+ resource_size_t fb_aper_offset;
+--- a/drivers/gpu/drm/radeon/radeon_state.c
++++ b/drivers/gpu/drm/radeon/radeon_state.c
+@@ -101,6 +101,7 @@ static __inline__ int radeon_check_and_fixup_packets(drm_radeon_private_t *
+ DRM_ERROR("Invalid depth buffer offset\n");
+ return -EINVAL;
+ }
++ dev_priv->have_z_offset = 1;
+ break;
+
+ case RADEON_EMIT_PP_CNTL:
+@@ -876,6 +877,12 @@ static void radeon_cp_dispatch_clear(struct drm_device * dev,
+ if (tmp & RADEON_BACK)
+ flags |= RADEON_FRONT;
+ }
++ if (flags & (RADEON_DEPTH|RADEON_STENCIL)) {
++ if (!dev_priv->have_z_offset) {
++ printk_once(KERN_ERR "radeon: illegal depth clear request. Buggy mesa detected - please update.\n");
++ flags &= ~(RADEON_DEPTH | RADEON_STENCIL);
++ }
++ }
+
+ if (flags & (RADEON_FRONT | RADEON_BACK)) {
+
Modified: dists/sid/linux-2.6/debian/patches/series/16
==============================================================================
--- dists/sid/linux-2.6/debian/patches/series/16 Mon Jul 5 20:11:30 2010 (r15946)
+++ dists/sid/linux-2.6/debian/patches/series/16 Mon Jul 5 21:13:21 2010 (r15947)
@@ -174,11 +174,11 @@
- bugfix/all/dmfe-tulip-Let-dmfe-handle-DM910x-except-SPARC-onboard.patch
- bugfix/all/via-velocity-give-rx-descriptors-later.patch
- features/all/atl1e-allow-offload-disable.patch
-+ bugfix/all/stable/2.6.32.16-rc1.patch
++ bugfix/all/stable/2.6.32.16.patch
+ features/all/USB-option-Use-generic-USB-wwan-code-2.patch
+ debian/revert-wrong-type-for-magic-argument-in-simple_fill_super.patch
- bugfix/all/drm-edid-Fix-1024x768 at 85Hz.patch
-+ bugfix/all/stable/2.6.33.6-rc1.patch
++ bugfix/all/stable/2.6.33.6.patch
+ bugfix/all/rtl8192su-check-for-skb-NULL.patch
+ bugfix/all/rtl8192su-led-update.patch
+ bugfix/all/rtl8192su-Clean-up-in-case-of-an-error-in-mo.patch
More information about the Kernel-svn-changes
mailing list