mirror of
https://github.com/torvalds/linux.git
synced 2024-11-11 06:31:49 +00:00
xen: branch for v5.12-rc7
-----BEGIN PGP SIGNATURE----- iHUEABYIAB0WIQRTLbB6QfY48x44uB6AXGG7T9hjvgUCYHB+3wAKCRCAXGG7T9hj vktXAQCV+BbqlrLdQwsoWqFCrPB9PLMOsMRw5q9BykUDihscEgD/RwnJlIGGwgvE MzAcCyXWukL8epStIWbBxTBHM12eJw8= =7jyu -----END PGP SIGNATURE----- Merge tag 'for-linus-5.12b-rc7-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip Pull xen fix from Juergen Gross: "A single fix of a 5.12 patch for the rather uncommon problem of running as a Xen guest with a real time kernel config" * tag 'for-linus-5.12b-rc7-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip: xen/evtchn: Change irq_info lock to raw_spinlock_t
This commit is contained in:
commit
0b76088799
@ -110,7 +110,7 @@ struct irq_info {
|
|||||||
unsigned short eoi_cpu; /* EOI must happen on this cpu-1 */
|
unsigned short eoi_cpu; /* EOI must happen on this cpu-1 */
|
||||||
unsigned int irq_epoch; /* If eoi_cpu valid: irq_epoch of event */
|
unsigned int irq_epoch; /* If eoi_cpu valid: irq_epoch of event */
|
||||||
u64 eoi_time; /* Time in jiffies when to EOI. */
|
u64 eoi_time; /* Time in jiffies when to EOI. */
|
||||||
spinlock_t lock;
|
raw_spinlock_t lock;
|
||||||
|
|
||||||
union {
|
union {
|
||||||
unsigned short virq;
|
unsigned short virq;
|
||||||
@ -312,7 +312,7 @@ static int xen_irq_info_common_setup(struct irq_info *info,
|
|||||||
info->evtchn = evtchn;
|
info->evtchn = evtchn;
|
||||||
info->cpu = cpu;
|
info->cpu = cpu;
|
||||||
info->mask_reason = EVT_MASK_REASON_EXPLICIT;
|
info->mask_reason = EVT_MASK_REASON_EXPLICIT;
|
||||||
spin_lock_init(&info->lock);
|
raw_spin_lock_init(&info->lock);
|
||||||
|
|
||||||
ret = set_evtchn_to_irq(evtchn, irq);
|
ret = set_evtchn_to_irq(evtchn, irq);
|
||||||
if (ret < 0)
|
if (ret < 0)
|
||||||
@ -472,28 +472,28 @@ static void do_mask(struct irq_info *info, u8 reason)
|
|||||||
{
|
{
|
||||||
unsigned long flags;
|
unsigned long flags;
|
||||||
|
|
||||||
spin_lock_irqsave(&info->lock, flags);
|
raw_spin_lock_irqsave(&info->lock, flags);
|
||||||
|
|
||||||
if (!info->mask_reason)
|
if (!info->mask_reason)
|
||||||
mask_evtchn(info->evtchn);
|
mask_evtchn(info->evtchn);
|
||||||
|
|
||||||
info->mask_reason |= reason;
|
info->mask_reason |= reason;
|
||||||
|
|
||||||
spin_unlock_irqrestore(&info->lock, flags);
|
raw_spin_unlock_irqrestore(&info->lock, flags);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void do_unmask(struct irq_info *info, u8 reason)
|
static void do_unmask(struct irq_info *info, u8 reason)
|
||||||
{
|
{
|
||||||
unsigned long flags;
|
unsigned long flags;
|
||||||
|
|
||||||
spin_lock_irqsave(&info->lock, flags);
|
raw_spin_lock_irqsave(&info->lock, flags);
|
||||||
|
|
||||||
info->mask_reason &= ~reason;
|
info->mask_reason &= ~reason;
|
||||||
|
|
||||||
if (!info->mask_reason)
|
if (!info->mask_reason)
|
||||||
unmask_evtchn(info->evtchn);
|
unmask_evtchn(info->evtchn);
|
||||||
|
|
||||||
spin_unlock_irqrestore(&info->lock, flags);
|
raw_spin_unlock_irqrestore(&info->lock, flags);
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef CONFIG_X86
|
#ifdef CONFIG_X86
|
||||||
|
Loading…
Reference in New Issue
Block a user