Linux 2.6.38.7-rc1

Fix up context in utrace-ptrace.patch
Revert radeon patches already in our radeon update:
  drm-radeon-kms-fix-gart-setup-on-fusion-parts-v2-backport.patch
Drop merged patches:
  iwlwifi-add-_ack_plpc_check-module-parameters.patch
This commit is contained in:
Chuck Ebbert 2011-05-20 22:13:22 -04:00
parent 6c43c19fb8
commit cdf695a919
6 changed files with 125 additions and 116 deletions

View File

@ -1,96 +0,0 @@
From sgruszka@redhat.com Mon May 9 15:27:33 2011
From: Stanislaw Gruszka <sgruszka@redhat.com>
To: kernel@lists.fedoraproject.org, stable@kernel.org
Cc: Kyle McMartin <kmcmartin@redhat.com>,
Stanislaw Gruszka <sgruszka@redhat.com>
Subject: [PATCH 2.6.38] iwlwifi: add {ack,plpc}_check module parameters
Date: Mon, 9 May 2011 21:27:30 +0200
Message-Id: <1304969250-27725-1-git-send-email-sgruszka@redhat.com>
commit b7977ffaab5187ad75edaf04ac854615cea93828 upstream.
Add module ack_check, and plcp_check parameters. Ack_check is disabled
by default since is proved that check ack health can cause troubles.
Plcp_check is enabled by default.
This prevent connection hangs with "low ack count detected" messages.
Resolves:
https://bugzilla.redhat.com/show_bug.cgi?id=666646
Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
---
drivers/net/wireless/iwlwifi/iwl-agn-lib.c | 1 +
drivers/net/wireless/iwlwifi/iwl-agn.c | 6 ++++++
drivers/net/wireless/iwlwifi/iwl-core.h | 2 ++
drivers/net/wireless/iwlwifi/iwl-rx.c | 8 ++++++--
4 files changed, 15 insertions(+), 2 deletions(-)
diff --git a/drivers/net/wireless/iwlwifi/iwl-agn-lib.c b/drivers/net/wireless/iwlwifi/iwl-agn-lib.c
index 3dee87e..d9c87b3 100644
--- a/drivers/net/wireless/iwlwifi/iwl-agn-lib.c
+++ b/drivers/net/wireless/iwlwifi/iwl-agn-lib.c
@@ -604,6 +604,7 @@ const u8 *iwlagn_eeprom_query_addr(const struct iwl_priv *priv,
struct iwl_mod_params iwlagn_mod_params = {
.amsdu_size_8K = 1,
.restart_fw = 1,
+ .plcp_check = true,
/* the rest are 0 by default */
};
diff --git a/drivers/net/wireless/iwlwifi/iwl-agn.c b/drivers/net/wireless/iwlwifi/iwl-agn.c
index 35239f0..be07643 100644
--- a/drivers/net/wireless/iwlwifi/iwl-agn.c
+++ b/drivers/net/wireless/iwlwifi/iwl-agn.c
@@ -4586,3 +4586,9 @@ MODULE_PARM_DESC(antenna_coupling,
module_param_named(bt_ch_inhibition, iwlagn_bt_ch_announce, bool, S_IRUGO);
MODULE_PARM_DESC(bt_ch_inhibition,
"Disable BT channel inhibition (default: enable)");
+
+module_param_named(plcp_check, iwlagn_mod_params.plcp_check, bool, S_IRUGO);
+MODULE_PARM_DESC(plcp_check, "Check plcp health (default: 1 [enabled])");
+
+module_param_named(ack_check, iwlagn_mod_params.ack_check, bool, S_IRUGO);
+MODULE_PARM_DESC(ack_check, "Check ack health (default: 0 [disabled])");
diff --git a/drivers/net/wireless/iwlwifi/iwl-core.h b/drivers/net/wireless/iwlwifi/iwl-core.h
index a347437..5c0d5f7 100644
--- a/drivers/net/wireless/iwlwifi/iwl-core.h
+++ b/drivers/net/wireless/iwlwifi/iwl-core.h
@@ -263,6 +263,8 @@ struct iwl_mod_params {
int amsdu_size_8K; /* def: 1 = enable 8K amsdu size */
int antenna; /* def: 0 = both antennas (use diversity) */
int restart_fw; /* def: 1 = restart firmware */
+ bool plcp_check; /* def: true = enable plcp health check */
+ bool ack_check; /* def: false = disable ack health check */
};
/*
diff --git a/drivers/net/wireless/iwlwifi/iwl-rx.c b/drivers/net/wireless/iwlwifi/iwl-rx.c
index 87a6fd8..b707617 100644
--- a/drivers/net/wireless/iwlwifi/iwl-rx.c
+++ b/drivers/net/wireless/iwlwifi/iwl-rx.c
@@ -234,10 +234,13 @@ EXPORT_SYMBOL(iwl_rx_spectrum_measure_notif);
void iwl_recover_from_statistics(struct iwl_priv *priv,
struct iwl_rx_packet *pkt)
{
+ const struct iwl_mod_params *mod_params = priv->cfg->mod_params;
+
if (test_bit(STATUS_EXIT_PENDING, &priv->status))
return;
if (iwl_is_any_associated(priv)) {
- if (priv->cfg->ops->lib->check_ack_health) {
+ if (mod_params->ack_check &&
+ priv->cfg->ops->lib->check_ack_health) {
if (!priv->cfg->ops->lib->check_ack_health(
priv, pkt)) {
/*
@@ -250,7 +253,8 @@ void iwl_recover_from_statistics(struct iwl_priv *priv,
return;
}
}
- if (priv->cfg->ops->lib->check_plcp_health) {
+ if (mod_params->plcp_check &&
+ priv->cfg->ops->lib->check_plcp_health) {
if (!priv->cfg->ops->lib->check_plcp_health(
priv, pkt)) {
/*

View File

@ -51,7 +51,7 @@ Summary: The Linux kernel
# For non-released -rc kernels, this will be prepended with "0.", so
# for example a 3 here will become 0.3
#
%global baserelease 27
%global baserelease 28
%global fedora_build %{baserelease}
# base_sublevel is the kernel version we're starting with and patching
@ -63,9 +63,9 @@ Summary: The Linux kernel
%if 0%{?released_kernel}
# Do we have a -stable update to apply?
%define stable_update 6
%define stable_update 7
# Is it a -stable RC?
%define stable_rc 0
%define stable_rc 1
# Set rpm version accordingly
%if 0%{?stable_update}
%define stablerev .%{stable_update}
@ -741,9 +741,6 @@ Patch12403: x86-dumpstack-correct-stack-dump-info-when-frame-pointer-is-availabl
# Fix breakage of PCI network adapter names on older Dell systems
Patch12404: x86-pci-preserve-existing-pci-bfsort-whitelist-for-dell-systems.patch
# iwlwifi: add {ack,plpc}_check module parameters (#666646)
Patch12405: iwlwifi-add-_ack_plpc_check-module-parameters.patch
# intel_ips driver bug (#703511) causes cooling fan to run
Patch12406: ips-use-interruptible-waits-in-ips-monitor.patch
@ -1383,9 +1380,6 @@ ApplyPatch linux-2.6-netconsole-deadlock.patch
# CVE-2011-1581
ApplyPatch bonding-incorrect-tx-queue-offset.patch
# iwlwifi: add {ack,plpc}_check module parameters (#666646) queued for stable
ApplyPatch iwlwifi-add-_ack_plpc_check-module-parameters.patch
# intel_ips driver bug (#703511) causes cooling fan to run
ApplyPatch ips-use-interruptible-waits-in-ips-monitor.patch
@ -1999,6 +1993,14 @@ fi
# and build.
%changelog
* Fri May 20 2011 Chuck Ebbert <cebbert@redhat.com>
- Linux 2.6.38.7-rc1
- Fix up context in utrace-ptrace.patch
- Revert radeon patches already in our radeon update:
drm-radeon-kms-fix-gart-setup-on-fusion-parts-v2-backport.patch
- Drop merged patches:
iwlwifi-add-_ack_plpc_check-module-parameters.patch
* Fri May 13 2011 Kyle McMartin <kmcmartin@redhat.com> 2.6.38.6-28
- [fabbione@] Fix a deadlock when using hp_sw with an HP san.
(7a1e9d82 upstream)

View File

@ -1 +1,99 @@
nil
From alexdeucher@gmail.com Mon May 9 16:35:34 2011
From: Alex Deucher <alexdeucher@gmail.com>
Date: Fri, 6 May 2011 14:29:55 -0400
Subject: [stable] [PATCH] drm/radeon/kms: fix gart setup on fusion parts (v2) backport
To: stable@kernel.org
Cc: Alex Deucher <alexdeucher@gmail.com>, airlied@redhat.com, gregkh@suse.de
Message-ID: <1304706595-9781-1-git-send-email-alexdeucher@gmail.com>
From: Alex Deucher <alexdeucher@gmail.com>
Backport of 8aeb96f80232e9a701b5c4715504f4c9173978bd
(drm/radeon/kms: fix gart setup on fusion parts (v2))
to the stable tree.
Out of the entire GART/VM subsystem, the hw designers changed
the location of 3 regs.
v2: airlied: add parameter for userspace to work from.
Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
Signed-off-by: Jerome Glisse <jglisse@redhat.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
---
drivers/gpu/drm/radeon/evergreen.c | 17 +++++++++--------
drivers/gpu/drm/radeon/evergreend.h | 5 +++++
drivers/gpu/drm/radeon/radeon_kms.c | 3 +++
include/drm/radeon_drm.h | 1 +
4 files changed, 18 insertions(+), 8 deletions(-)
--- a/drivers/gpu/drm/radeon/evergreen.c
+++ b/drivers/gpu/drm/radeon/evergreen.c
@@ -869,9 +869,15 @@ int evergreen_pcie_gart_enable(struct ra
SYSTEM_ACCESS_MODE_NOT_IN_SYS |
SYSTEM_APERTURE_UNMAPPED_ACCESS_PASS_THRU |
EFFECTIVE_L1_TLB_SIZE(5) | EFFECTIVE_L1_QUEUE_SIZE(5);
- WREG32(MC_VM_MD_L1_TLB0_CNTL, tmp);
- WREG32(MC_VM_MD_L1_TLB1_CNTL, tmp);
- WREG32(MC_VM_MD_L1_TLB2_CNTL, tmp);
+ if (rdev->flags & RADEON_IS_IGP) {
+ WREG32(FUS_MC_VM_MD_L1_TLB0_CNTL, tmp);
+ WREG32(FUS_MC_VM_MD_L1_TLB1_CNTL, tmp);
+ WREG32(FUS_MC_VM_MD_L1_TLB2_CNTL, tmp);
+ } else {
+ WREG32(MC_VM_MD_L1_TLB0_CNTL, tmp);
+ WREG32(MC_VM_MD_L1_TLB1_CNTL, tmp);
+ WREG32(MC_VM_MD_L1_TLB2_CNTL, tmp);
+ }
WREG32(MC_VM_MB_L1_TLB0_CNTL, tmp);
WREG32(MC_VM_MB_L1_TLB1_CNTL, tmp);
WREG32(MC_VM_MB_L1_TLB2_CNTL, tmp);
@@ -2930,11 +2936,6 @@ static int evergreen_startup(struct rade
rdev->asic->copy = NULL;
dev_warn(rdev->dev, "failed blitter (%d) falling back to memcpy\n", r);
}
- /* XXX: ontario has problems blitting to gart at the moment */
- if (rdev->family == CHIP_PALM) {
- rdev->asic->copy = NULL;
- radeon_ttm_set_active_vram_size(rdev, rdev->mc.visible_vram_size);
- }
/* allocate wb buffer */
r = radeon_wb_init(rdev);
--- a/drivers/gpu/drm/radeon/evergreend.h
+++ b/drivers/gpu/drm/radeon/evergreend.h
@@ -221,6 +221,11 @@
#define MC_VM_MD_L1_TLB0_CNTL 0x2654
#define MC_VM_MD_L1_TLB1_CNTL 0x2658
#define MC_VM_MD_L1_TLB2_CNTL 0x265C
+
+#define FUS_MC_VM_MD_L1_TLB0_CNTL 0x265C
+#define FUS_MC_VM_MD_L1_TLB1_CNTL 0x2660
+#define FUS_MC_VM_MD_L1_TLB2_CNTL 0x2664
+
#define MC_VM_SYSTEM_APERTURE_DEFAULT_ADDR 0x203C
#define MC_VM_SYSTEM_APERTURE_HIGH_ADDR 0x2038
#define MC_VM_SYSTEM_APERTURE_LOW_ADDR 0x2034
--- a/drivers/gpu/drm/radeon/radeon_kms.c
+++ b/drivers/gpu/drm/radeon/radeon_kms.c
@@ -205,6 +205,9 @@ int radeon_info_ioctl(struct drm_device
/* return clock value in KHz */
value = rdev->clock.spll.reference_freq * 10;
break;
+ case RADEON_INFO_FUSION_GART_WORKING:
+ value = 1;
+ break;
default:
DRM_DEBUG_KMS("Invalid request %d\n", info->request);
return -EINVAL;
--- a/include/drm/radeon_drm.h
+++ b/include/drm/radeon_drm.h
@@ -908,6 +908,7 @@ struct drm_radeon_cs {
#define RADEON_INFO_WANT_HYPERZ 0x07
#define RADEON_INFO_WANT_CMASK 0x08 /* get access to CMASK on r300 */
#define RADEON_INFO_CLOCK_CRYSTAL_FREQ 0x09 /* clock crystal frequency */
+#define RADEON_INFO_FUSION_GART_WORKING 0x0c /* fusion writes to GTT were broken before this */
struct drm_radeon_info {
uint32_t request;

View File

@ -1249,8 +1249,8 @@ index e275608..72ea65c 100644
#include <linux/signal.h>
#include <linux/audit.h>
@@ -24,7 +23,320 @@
#include <linux/uaccess.h>
#include <linux/regset.h>
#include <linux/hw_breakpoint.h>
+int __ptrace_may_access(struct task_struct *task, unsigned int mode)
+{
@ -1955,7 +1955,7 @@ index e275608..72ea65c 100644
int compat_ptrace_request(struct task_struct *child, compat_long_t request,
compat_ulong_t addr, compat_ulong_t data)
{
@@ -851,42 +876,5 @@ int compat_ptrace_request(struct task_st
@@ -851,45 +876,8 @@ int compat_ptrace_request(struct task_st
return ret;
}
@ -1999,6 +1999,9 @@ index e275608..72ea65c 100644
-}
#endif /* CONFIG_COMPAT */
+#endif /* CONFIG_UTRACE */
#ifdef CONFIG_HAVE_HW_BREAKPOINT
int ptrace_get_breakpoints(struct task_struct *tsk)
diff --git a/kernel/utrace.c b/kernel/utrace.c
index 26d6faf..37dce16 100644
--- a/kernel/utrace.c

View File

@ -2,20 +2,21 @@ diff --git a/drivers/scsi/sd.c b/drivers/scsi/sd.c
index e567302..261638a 100644
--- a/drivers/scsi/sd.c
+++ b/drivers/scsi/sd.c
@@ -1988,11 +1988,11 @@ sd_read_cache_type(struct scsi_disk *sdkp, unsigned char *buffer)
@@ -1956,12 +1956,12 @@ sd_read_cache_type(struct scsi_disk *sdk
int offset = data.header_length + data.block_descriptor_length;
if (offset >= SD_BUF_SIZE - 2) {
- sd_printk(KERN_ERR, sdkp, "Malformed MODE SENSE response\n");
+ sd_printk(KERN_NOTICE, sdkp, "Malformed MODE SENSE response\n");
goto defaults;
}
if (modepage == 0x3F) {
- sd_printk(KERN_ERR, sdkp, "No Caching mode page "
+ sd_printk(KERN_NOTICE, sdkp, "No Caching mode page "
"present\n");
goto defaults;
} else if ((buffer[offset] & 0x3f) != modepage) {
if ((buffer[offset] & 0x3f) != modepage) {
- sd_printk(KERN_ERR, sdkp, "Got wrong page\n");
+ sd_printk(KERN_NOTICE, sdkp, "Got wrong page\n");
goto defaults;
}
Page_found:
@@ -2033,7 +2033,7 @@ bad_sense:
sd_printk(KERN_ERR, sdkp, "Asking for cache data failed\n");

View File

@ -1,2 +1,3 @@
7d471477bfa67546f902da62227fa976 linux-2.6.38.tar.bz2
527fab8162c682ad849eb21fc30d28ef patch-2.6.38.6.bz2
10c4659d759236f1e71fe2431adcc957 patch-2.6.38.7-rc1.bz2