[amd64] bump rt patch set to 3.2-rc4-rt6
svn path=/dists/trunk/linux-2.6/; revision=18362
This commit is contained in:
parent
c35b492ed9
commit
b2f1f81a01
|
@ -25,7 +25,7 @@ linux-2.6 (3.2~rc4-1~experimental.1) experimental; urgency=low
|
|||
- 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@decadent.org.uk> Sat, 03 Dec 2011 23:07:41 +0000
|
||||
|
||||
|
|
|
@ -0,0 +1,113 @@
|
|||
From: Clark Williams <williams@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@redhat.com>
|
||||
Link: http://lkml.kernel.org/r/20111203093537.7d805f64@redhat.com
|
||||
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
|
||||
Cc: stable-rt@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-----
|
||||
|
|
@ -14,4 +14,4 @@ Index: linux-3.2/localversion-rt
|
|||
--- /dev/null
|
||||
+++ linux-3.2/localversion-rt
|
||||
@@ -0,0 +1 @@
|
||||
+-rt5
|
||||
+-rt6
|
||||
|
|
|
@ -204,6 +204,7 @@ pci-access-use-__wake_up_all_locked.patch
|
|||
|
||||
# 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
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue