From: Greg Kroah-Hartman Date: Tue, 25 Jul 2006 03:12:37 +0000 (-0700) Subject: refresh and remove the tpm patch, and fix the merge mess (hopefully) X-Git-Tag: v2.6.17.7~1 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=3e42fa8eb4fbdc7ac82960bd45ba2991e6cef4d5;p=thirdparty%2Fkernel%2Fstable-queue.git refresh and remove the tpm patch, and fix the merge mess (hopefully) --- diff --git a/review-2.6.17/tpm-interrupt-clear-fix.patch b/rejects/tpm-interrupt-clear-fix.patch similarity index 100% rename from review-2.6.17/tpm-interrupt-clear-fix.patch rename to rejects/tpm-interrupt-clear-fix.patch diff --git a/review-2.6.17/alsa-fix-missing-array-terminators-in-ad1988-codec-support.patch b/review-2.6.17/alsa-fix-missing-array-terminators-in-ad1988-codec-support.patch index f39c5b0ee14..41f88ffc853 100644 --- a/review-2.6.17/alsa-fix-missing-array-terminators-in-ad1988-codec-support.patch +++ b/review-2.6.17/alsa-fix-missing-array-terminators-in-ad1988-codec-support.patch @@ -22,7 +22,7 @@ Signed-off-by: Greg Kroah-Hartman --- linux-2.6.17.6.orig/sound/pci/hda/patch_analog.c +++ linux-2.6.17.6/sound/pci/hda/patch_analog.c -@@ -1582,6 +1582,7 @@ static struct snd_kcontrol_new ad1988_6s +@@ -1579,6 +1579,7 @@ static struct snd_kcontrol_new ad1988_6s HDA_CODEC_VOLUME_MONO("Center Playback Volume", 0x05, 1, 0x0, HDA_OUTPUT), HDA_CODEC_VOLUME_MONO("LFE Playback Volume", 0x05, 2, 0x0, HDA_OUTPUT), HDA_CODEC_VOLUME("Side Playback Volume", 0x0a, 0x0, HDA_OUTPUT), @@ -30,7 +30,7 @@ Signed-off-by: Greg Kroah-Hartman }; static struct snd_kcontrol_new ad1988_6stack_mixers1_rev2[] = { -@@ -1590,6 +1591,7 @@ static struct snd_kcontrol_new ad1988_6s +@@ -1587,6 +1588,7 @@ static struct snd_kcontrol_new ad1988_6s HDA_CODEC_VOLUME_MONO("Center Playback Volume", 0x0a, 1, 0x0, HDA_OUTPUT), HDA_CODEC_VOLUME_MONO("LFE Playback Volume", 0x0a, 2, 0x0, HDA_OUTPUT), HDA_CODEC_VOLUME("Side Playback Volume", 0x06, 0x0, HDA_OUTPUT), @@ -38,7 +38,7 @@ Signed-off-by: Greg Kroah-Hartman }; static struct snd_kcontrol_new ad1988_6stack_mixers2[] = { -@@ -1628,6 +1630,7 @@ static struct snd_kcontrol_new ad1988_3s +@@ -1625,6 +1627,7 @@ static struct snd_kcontrol_new ad1988_3s HDA_CODEC_VOLUME("Surround Playback Volume", 0x0a, 0x0, HDA_OUTPUT), HDA_CODEC_VOLUME_MONO("Center Playback Volume", 0x05, 1, 0x0, HDA_OUTPUT), HDA_CODEC_VOLUME_MONO("LFE Playback Volume", 0x05, 2, 0x0, HDA_OUTPUT), @@ -46,7 +46,7 @@ Signed-off-by: Greg Kroah-Hartman }; static struct snd_kcontrol_new ad1988_3stack_mixers1_rev2[] = { -@@ -1635,6 +1638,7 @@ static struct snd_kcontrol_new ad1988_3s +@@ -1632,6 +1635,7 @@ static struct snd_kcontrol_new ad1988_3s HDA_CODEC_VOLUME("Surround Playback Volume", 0x0a, 0x0, HDA_OUTPUT), HDA_CODEC_VOLUME_MONO("Center Playback Volume", 0x06, 1, 0x0, HDA_OUTPUT), HDA_CODEC_VOLUME_MONO("LFE Playback Volume", 0x06, 2, 0x0, HDA_OUTPUT), diff --git a/review-2.6.17/alsa-fix-workaround-for-ad1988a-rev2-codec.patch b/review-2.6.17/alsa-fix-workaround-for-ad1988a-rev2-codec.patch index f40402fc442..a0d3bf81753 100644 --- a/review-2.6.17/alsa-fix-workaround-for-ad1988a-rev2-codec.patch +++ b/review-2.6.17/alsa-fix-workaround-for-ad1988a-rev2-codec.patch @@ -33,7 +33,7 @@ Signed-off-by: Greg Kroah-Hartman /* * mixers -@@ -2138,7 +2141,7 @@ static inline hda_nid_t ad1988_idx_to_da +@@ -2142,7 +2145,7 @@ static inline hda_nid_t ad1988_idx_to_da /* A B C D E F G H */ 0x04, 0x05, 0x0a, 0x04, 0x06, 0x05, 0x0a, 0x06 }; @@ -42,7 +42,7 @@ Signed-off-by: Greg Kroah-Hartman return idx_to_dac_rev2[idx]; else return idx_to_dac[idx]; -@@ -2507,7 +2510,7 @@ static int patch_ad1988(struct hda_codec +@@ -2511,7 +2514,7 @@ static int patch_ad1988(struct hda_codec mutex_init(&spec->amp_mutex); codec->spec = spec; @@ -51,7 +51,7 @@ Signed-off-by: Greg Kroah-Hartman snd_printk(KERN_INFO "patch_analog: AD1988A rev.2 is detected, enable workarounds\n"); board_config = snd_hda_check_board_config(codec, ad1988_cfg_tbl); -@@ -2533,13 +2536,13 @@ static int patch_ad1988(struct hda_codec +@@ -2537,13 +2540,13 @@ static int patch_ad1988(struct hda_codec case AD1988_6STACK_DIG: spec->multiout.max_channels = 8; spec->multiout.num_dacs = 4; @@ -67,7 +67,7 @@ Signed-off-by: Greg Kroah-Hartman spec->mixers[0] = ad1988_6stack_mixers1_rev2; else spec->mixers[0] = ad1988_6stack_mixers1; -@@ -2555,7 +2558,7 @@ static int patch_ad1988(struct hda_codec +@@ -2559,7 +2562,7 @@ static int patch_ad1988(struct hda_codec case AD1988_3STACK_DIG: spec->multiout.max_channels = 6; spec->multiout.num_dacs = 3; @@ -76,7 +76,7 @@ Signed-off-by: Greg Kroah-Hartman spec->multiout.dac_nids = ad1988_3stack_dac_nids_rev2; else spec->multiout.dac_nids = ad1988_3stack_dac_nids; -@@ -2563,7 +2566,7 @@ static int patch_ad1988(struct hda_codec +@@ -2567,7 +2570,7 @@ static int patch_ad1988(struct hda_codec spec->channel_mode = ad1988_3stack_modes; spec->num_channel_mode = ARRAY_SIZE(ad1988_3stack_modes); spec->num_mixers = 2; diff --git a/review-2.6.17/fix-ondemand-vs-suspend-deadlock.patch b/review-2.6.17/fix-ondemand-vs-suspend-deadlock.patch deleted file mode 100644 index d312a4e8619..00000000000 --- a/review-2.6.17/fix-ondemand-vs-suspend-deadlock.patch +++ /dev/null @@ -1,142 +0,0 @@ -From stable-bounces@linux.kernel.org Fri Jun 30 19:10:22 2006 -Date: Fri, 23 Jun 2006 06:10:02 GMT -Message-Id: <200606230610.k5N6A2PQ015237@hera.kernel.org> -From: Linux Kernel Mailing List -To: git-commits-head@vger.kernel.org -Cc: -Subject: [CPUFREQ] Fix ondemand vs suspend deadlock - -From: Venkatesh Pallipadi - -[CPUFREQ] Fix ondemand vs suspend deadlock - -Rootcaused the bug to a deadlock in cpufreq and ondemand. Due to non-existent -ordering between cpu_hotplug lock and dbs_mutex. Basically a race condition -between cpu_down() and do_dbs_timer(). - -cpu_down() flow: -* cpu_down() call for CPU 1 -* Takes hot plug lock -* Calls pre down notifier -* cpufreq notifier handler calls cpufreq_driver_target() which takes - cpu_hotplug lock again. OK as cpu_hotplug lock is recursive in same - process context -* CPU 1 goes down -* Calls post down notifier -* cpufreq notifier handler calls ondemand event stop which takes dbs_mutex - -So, cpu_hotplug lock is taken before dbs_mutex in this flow. - -do_dbs_timer is triggerred by a periodic timer event. -It first takes dbs_mutex and then takes cpu_hotplug lock in -cpufreq_driver_target(). -Note the reverse order here compared to above. So, if this timer event happens -at right moment during cpu_down, system will deadlok. - -Attached patch fixes the issue for both ondemand and conservative. - -Signed-off-by: Venkatesh Pallipadi -Signed-off-by: Dave Jones -Signed-off-by: Greg Kroah-Hartman - ---- - drivers/cpufreq/cpufreq_conservative.c | 12 ++++++++++++ - drivers/cpufreq/cpufreq_ondemand.c | 12 ++++++++++++ - 2 files changed, 24 insertions(+) - ---- linux-2.6.17.4.orig/drivers/cpufreq/cpufreq_conservative.c -+++ linux-2.6.17.4/drivers/cpufreq/cpufreq_conservative.c -@@ -72,6 +72,14 @@ static DEFINE_PER_CPU(struct cpu_dbs_inf - - static unsigned int dbs_enable; /* number of CPUs using this policy */ - -+/* -+ * DEADLOCK ALERT! There is a ordering requirement between cpu_hotplug -+ * lock and dbs_mutex. cpu_hotplug lock should always be held before -+ * dbs_mutex. If any function that can potentially take cpu_hotplug lock -+ * (like __cpufreq_driver_target()) is being called with dbs_mutex taken, then -+ * cpu_hotplug lock should be taken before that. Note that cpu_hotplug lock -+ * is recursive for the same process. -Venki -+ */ - static DEFINE_MUTEX (dbs_mutex); - static DECLARE_WORK (dbs_work, do_dbs_timer, NULL); - -@@ -414,12 +422,14 @@ static void dbs_check_cpu(int cpu) - static void do_dbs_timer(void *data) - { - int i; -+ lock_cpu_hotplug(); - mutex_lock(&dbs_mutex); - for_each_online_cpu(i) - dbs_check_cpu(i); - schedule_delayed_work(&dbs_work, - usecs_to_jiffies(dbs_tuners_ins.sampling_rate)); - mutex_unlock(&dbs_mutex); -+ unlock_cpu_hotplug(); - } - - static inline void dbs_timer_init(void) -@@ -514,6 +524,7 @@ static int cpufreq_governor_dbs(struct c - break; - - case CPUFREQ_GOV_LIMITS: -+ lock_cpu_hotplug(); - mutex_lock(&dbs_mutex); - if (policy->max < this_dbs_info->cur_policy->cur) - __cpufreq_driver_target( -@@ -524,6 +535,7 @@ static int cpufreq_governor_dbs(struct c - this_dbs_info->cur_policy, - policy->min, CPUFREQ_RELATION_L); - mutex_unlock(&dbs_mutex); -+ unlock_cpu_hotplug(); - break; - } - return 0; ---- linux-2.6.17.4.orig/drivers/cpufreq/cpufreq_ondemand.c -+++ linux-2.6.17.4/drivers/cpufreq/cpufreq_ondemand.c -@@ -71,6 +71,14 @@ static DEFINE_PER_CPU(struct cpu_dbs_inf - - static unsigned int dbs_enable; /* number of CPUs using this policy */ - -+/* -+ * DEADLOCK ALERT! There is a ordering requirement between cpu_hotplug -+ * lock and dbs_mutex. cpu_hotplug lock should always be held before -+ * dbs_mutex. If any function that can potentially take cpu_hotplug lock -+ * (like __cpufreq_driver_target()) is being called with dbs_mutex taken, then -+ * cpu_hotplug lock should be taken before that. Note that cpu_hotplug lock -+ * is recursive for the same process. -Venki -+ */ - static DEFINE_MUTEX (dbs_mutex); - static DECLARE_WORK (dbs_work, do_dbs_timer, NULL); - -@@ -363,12 +371,14 @@ static void dbs_check_cpu(int cpu) - static void do_dbs_timer(void *data) - { - int i; -+ lock_cpu_hotplug(); - mutex_lock(&dbs_mutex); - for_each_online_cpu(i) - dbs_check_cpu(i); - queue_delayed_work(dbs_workq, &dbs_work, - usecs_to_jiffies(dbs_tuners_ins.sampling_rate)); - mutex_unlock(&dbs_mutex); -+ unlock_cpu_hotplug(); - } - - static inline void dbs_timer_init(void) -@@ -469,6 +479,7 @@ static int cpufreq_governor_dbs(struct c - break; - - case CPUFREQ_GOV_LIMITS: -+ lock_cpu_hotplug(); - mutex_lock(&dbs_mutex); - if (policy->max < this_dbs_info->cur_policy->cur) - __cpufreq_driver_target( -@@ -479,6 +490,7 @@ static int cpufreq_governor_dbs(struct c - this_dbs_info->cur_policy, - policy->min, CPUFREQ_RELATION_L); - mutex_unlock(&dbs_mutex); -+ unlock_cpu_hotplug(); - break; - } - return 0; diff --git a/review-2.6.17/series b/review-2.6.17/series index e9263127739..827a6169fac 100644 --- a/review-2.6.17/series +++ b/review-2.6.17/series @@ -20,10 +20,27 @@ v4l-dvb-backport-the-budget-driver-diseqc-instability-fix.patch v4l-dvb-stradis-dont-export-module_device_table.patch dvb-bt8xx-fix-frontend-detection-for-dvico-fusionhdtv-dvb-t-lite-rev-1.2.patch make-powernow-k7-work-on-smp-kernels.patch -fix-ondemand-vs-suspend-deadlock.patch fix-powernow-k8-smp-kernel-on-up-hardware-bug.patch cdrom-fix-bad-cgc.buflen-assignment.patch splice-fix-problems-with-sys_tee.patch USB-serial-ftdi_sio-Prevent-userspace-DoS.patch generic_file_buffered_write-deadlock-on-vectored-write.patch generic_file_buffered_write-handle-zero-length-iovec-segments.patch +add-missing-ufo-initialisations.patch +alsa-au88x0-fix-64bit-address-of-mpu401-mmio-port.patch +alsa-fix-a-deadlock-in-snd-rtctimer.patch +alsa-fix-missing-array-terminators-in-ad1988-codec-support.patch +alsa-fix-model-for-hp-dc7600.patch +alsa-fix-mute-switch-on-vaio-laptops-with-stac7661.patch +alsa-fix-the-snd_fm801_tea575x-dependencies.patch +alsa-fix-undefined-references-in-isa-miro-sound-driver.patch +alsa-fix-workaround-for-ad1988a-rev2-codec.patch +alsa-hda-intel-fix-race-in-remove.patch +alsa-rme-hdsp-fixed-proc-interface.patch +alsa-suppress-irq-handler-mismatch-messages-in-alsa-isa-drivers.patch +fix-fdset-leakage.patch +fix-ipv4-decnet-routing-rule-dumping.patch +ieee80211-tkip-requires-crc32.patch +pdflush-handle-resume-wakeups.patch +serial-8250-sysrq-deadlock-fix.patch +struct-file-leakage.patch