[kernel] r18362 - in dists/trunk/linux-2.6/debian: . patches/features/all/rt patches/series
Uwe Kleine-König
ukleinek-guest at alioth.debian.org
Wed Dec 7 08:48:42 UTC 2011
Author: ukleinek-guest
Date: Wed Dec 7 08:48:41 2011
New Revision: 18362
Log:
[amd64] bump rt patch set to 3.2-rc4-rt6
Added:
dists/trunk/linux-2.6/debian/patches/features/all/rt/acpi-make-ec-lock-raw-as-well.patch
Modified:
dists/trunk/linux-2.6/debian/changelog
dists/trunk/linux-2.6/debian/patches/features/all/rt/localversion.patch
dists/trunk/linux-2.6/debian/patches/features/all/rt/series
dists/trunk/linux-2.6/debian/patches/series/base-extra
Modified: dists/trunk/linux-2.6/debian/changelog
==============================================================================
--- dists/trunk/linux-2.6/debian/changelog Wed Dec 7 04:00:57 2011 (r18361)
+++ dists/trunk/linux-2.6/debian/changelog Wed Dec 7 08:48:41 2011 (r18362)
@@ -25,7 +25,7 @@
- blowfish is renamed to blowfish_generic
[ Uwe Kleine-König ]
- * [amd64] reenable rt featureset with 3.2-rc4-rt5
+ * [amd64] reenable rt featureset with 3.2-rc4-rt6
-- Ben Hutchings <ben at decadent.org.uk> Sat, 03 Dec 2011 23:07:41 +0000
Added: dists/trunk/linux-2.6/debian/patches/features/all/rt/acpi-make-ec-lock-raw-as-well.patch
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ dists/trunk/linux-2.6/debian/patches/features/all/rt/acpi-make-ec-lock-raw-as-well.patch Wed Dec 7 08:48:41 2011 (r18362)
@@ -0,0 +1,113 @@
+From: Clark Williams <williams at redhat.com>
+Date: Sat Dec 3 09:15:46 2011 -0600
+Subject: ACPI: Convert embedded controller lock to raw spinlock
+
+Was seeing multiple "scheduling while atomic" backtraces on the
+3.2-rc2-rt5 realtime kernel. This patch converts the spinlock in
+the ACPI embedded controller structure (curr_lock) to be a raw
+spinlock.
+
+Signed-off-by: Clark Williams <williams at redhat.com>
+Link: http://lkml.kernel.org/r/20111203093537.7d805f64@redhat.com
+Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
+Cc: stable-rt at vger.kernel.org
+diff --git a/drivers/acpi/ec.c b/drivers/acpi/ec.c
+index b19a18d..5812e01 100644
+--- a/drivers/acpi/ec.c
++++ b/drivers/acpi/ec.c
+@@ -152,10 +152,10 @@ static int ec_transaction_done(struct acpi_ec *ec)
+ {
+ unsigned long flags;
+ int ret = 0;
+- spin_lock_irqsave(&ec->curr_lock, flags);
++ raw_spin_lock_irqsave(&ec->curr_lock, flags);
+ if (!ec->curr || ec->curr->done)
+ ret = 1;
+- spin_unlock_irqrestore(&ec->curr_lock, flags);
++ raw_spin_unlock_irqrestore(&ec->curr_lock, flags);
+ return ret;
+ }
+
+@@ -169,7 +169,7 @@ static void start_transaction(struct acpi_ec *ec)
+ static void advance_transaction(struct acpi_ec *ec, u8 status)
+ {
+ unsigned long flags;
+- spin_lock_irqsave(&ec->curr_lock, flags);
++ raw_spin_lock_irqsave(&ec->curr_lock, flags);
+ if (!ec->curr)
+ goto unlock;
+ if (ec->curr->wlen > ec->curr->wi) {
+@@ -194,7 +194,7 @@ err:
+ if (in_interrupt())
+ ++ec->curr->irq_count;
+ unlock:
+- spin_unlock_irqrestore(&ec->curr_lock, flags);
++ raw_spin_unlock_irqrestore(&ec->curr_lock, flags);
+ }
+
+ static int acpi_ec_sync_query(struct acpi_ec *ec);
+@@ -232,9 +232,9 @@ static int ec_poll(struct acpi_ec *ec)
+ if (acpi_ec_read_status(ec) & ACPI_EC_FLAG_IBF)
+ break;
+ pr_debug(PREFIX "controller reset, restart transaction\n");
+- spin_lock_irqsave(&ec->curr_lock, flags);
++ raw_spin_lock_irqsave(&ec->curr_lock, flags);
+ start_transaction(ec);
+- spin_unlock_irqrestore(&ec->curr_lock, flags);
++ raw_spin_unlock_irqrestore(&ec->curr_lock, flags);
+ }
+ return -ETIME;
+ }
+@@ -247,17 +247,17 @@ static int acpi_ec_transaction_unlocked(struct acpi_ec *ec,
+ if (EC_FLAGS_MSI)
+ udelay(ACPI_EC_MSI_UDELAY);
+ /* start transaction */
+- spin_lock_irqsave(&ec->curr_lock, tmp);
++ raw_spin_lock_irqsave(&ec->curr_lock, tmp);
+ /* following two actions should be kept atomic */
+ ec->curr = t;
+ start_transaction(ec);
+ if (ec->curr->command == ACPI_EC_COMMAND_QUERY)
+ clear_bit(EC_FLAGS_QUERY_PENDING, &ec->flags);
+- spin_unlock_irqrestore(&ec->curr_lock, tmp);
++ raw_spin_unlock_irqrestore(&ec->curr_lock, tmp);
+ ret = ec_poll(ec);
+- spin_lock_irqsave(&ec->curr_lock, tmp);
++ raw_spin_lock_irqsave(&ec->curr_lock, tmp);
+ ec->curr = NULL;
+- spin_unlock_irqrestore(&ec->curr_lock, tmp);
++ raw_spin_unlock_irqrestore(&ec->curr_lock, tmp);
+ return ret;
+ }
+
+@@ -678,7 +678,7 @@ static struct acpi_ec *make_acpi_ec(void)
+ mutex_init(&ec->lock);
+ init_waitqueue_head(&ec->wait);
+ INIT_LIST_HEAD(&ec->list);
+- spin_lock_init(&ec->curr_lock);
++ raw_spin_lock_init(&ec->curr_lock);
+ return ec;
+ }
+
+diff --git a/drivers/acpi/internal.h b/drivers/acpi/internal.h
+index ca75b9c..68ed95f 100644
+--- a/drivers/acpi/internal.h
++++ b/drivers/acpi/internal.h
+@@ -62,7 +62,7 @@ struct acpi_ec {
+ wait_queue_head_t wait;
+ struct list_head list;
+ struct transaction *curr;
+- spinlock_t curr_lock;
++ raw_spinlock_t curr_lock;
+ };
+
+ extern struct acpi_ec *first_ec;
+
+-----BEGIN PGP SIGNATURE-----
+Version: GnuPG v2.0.18 (GNU/Linux)
+
+iEYEARECAAYFAk7aQc0ACgkQHyuj/+TTEp1wdQCdGi7huqfZZYwMBW91bICU9zew
+FZcAoM6leP805J/d5rruxEvbU1nNPQ6Z
+=+fyw
+-----END PGP SIGNATURE-----
+
Modified: dists/trunk/linux-2.6/debian/patches/features/all/rt/localversion.patch
==============================================================================
--- dists/trunk/linux-2.6/debian/patches/features/all/rt/localversion.patch Wed Dec 7 04:00:57 2011 (r18361)
+++ dists/trunk/linux-2.6/debian/patches/features/all/rt/localversion.patch Wed Dec 7 08:48:41 2011 (r18362)
@@ -14,4 +14,4 @@
--- /dev/null
+++ linux-3.2/localversion-rt
@@ -0,0 +1 @@
-+-rt5
++-rt6
Modified: dists/trunk/linux-2.6/debian/patches/features/all/rt/series
==============================================================================
--- dists/trunk/linux-2.6/debian/patches/features/all/rt/series Wed Dec 7 04:00:57 2011 (r18361)
+++ dists/trunk/linux-2.6/debian/patches/features/all/rt/series Wed Dec 7 08:48:41 2011 (r18362)
@@ -204,6 +204,7 @@
# ACPI
acpi-make-gbl-hardware-lock-raw.patch
+acpi-make-ec-lock-raw-as-well.patch
#####################################################
# Stuff which should go mainline, but wants some care
Modified: dists/trunk/linux-2.6/debian/patches/series/base-extra
==============================================================================
--- dists/trunk/linux-2.6/debian/patches/series/base-extra Wed Dec 7 04:00:57 2011 (r18361)
+++ dists/trunk/linux-2.6/debian/patches/series/base-extra Wed Dec 7 08:48:41 2011 (r18362)
@@ -62,6 +62,7 @@
+ features/all/rt/wait-provide-__wake_up_all_locked.patch featureset=rt
+ features/all/rt/pci-access-use-__wake_up_all_locked.patch featureset=rt
+ features/all/rt/acpi-make-gbl-hardware-lock-raw.patch featureset=rt
++ features/all/rt/acpi-make-ec-lock-raw-as-well.patch featureset=rt
+ features/all/rt/seqlock-raw-seqlock.patch featureset=rt
+ features/all/rt/timekeeping-covert-xtimelock.patch featureset=rt
+ features/all/rt/latency-hist.patch featureset=rt
More information about the Kernel-svn-changes
mailing list