diff options
Diffstat (limited to 'arch/alpha/kernel')
| -rw-r--r-- | arch/alpha/kernel/core_t2.c | 2 | ||||
| -rw-r--r-- | arch/alpha/kernel/pci.c | 17 | ||||
| -rw-r--r-- | arch/alpha/kernel/traps.c | 3 |
3 files changed, 21 insertions, 1 deletions
diff --git a/arch/alpha/kernel/core_t2.c b/arch/alpha/kernel/core_t2.c index c0750291b44a..d9980d47ab81 100644 --- a/arch/alpha/kernel/core_t2.c +++ b/arch/alpha/kernel/core_t2.c | |||
| @@ -74,6 +74,8 @@ | |||
| 74 | # define DBG(args) | 74 | # define DBG(args) |
| 75 | #endif | 75 | #endif |
| 76 | 76 | ||
| 77 | DEFINE_SPINLOCK(t2_hae_lock); | ||
| 78 | |||
| 77 | static volatile unsigned int t2_mcheck_any_expected; | 79 | static volatile unsigned int t2_mcheck_any_expected; |
| 78 | static volatile unsigned int t2_mcheck_last_taken; | 80 | static volatile unsigned int t2_mcheck_last_taken; |
| 79 | 81 | ||
diff --git a/arch/alpha/kernel/pci.c b/arch/alpha/kernel/pci.c index 36ab22a7ea12..5cf45fc51343 100644 --- a/arch/alpha/kernel/pci.c +++ b/arch/alpha/kernel/pci.c | |||
| @@ -71,6 +71,23 @@ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82378, quirk_i | |||
| 71 | static void __init | 71 | static void __init |
| 72 | quirk_cypress(struct pci_dev *dev) | 72 | quirk_cypress(struct pci_dev *dev) |
| 73 | { | 73 | { |
| 74 | /* The Notorious Cy82C693 chip. */ | ||
| 75 | |||
| 76 | /* The generic legacy mode IDE fixup in drivers/pci/probe.c | ||
| 77 | doesn't work correctly with the Cypress IDE controller as | ||
| 78 | it has non-standard register layout. Fix that. */ | ||
| 79 | if (dev->class >> 8 == PCI_CLASS_STORAGE_IDE) { | ||
| 80 | dev->resource[2].start = dev->resource[3].start = 0; | ||
| 81 | dev->resource[2].end = dev->resource[3].end = 0; | ||
| 82 | dev->resource[2].flags = dev->resource[3].flags = 0; | ||
| 83 | if (PCI_FUNC(dev->devfn) == 2) { | ||
| 84 | dev->resource[0].start = 0x170; | ||
| 85 | dev->resource[0].end = 0x177; | ||
| 86 | dev->resource[1].start = 0x376; | ||
| 87 | dev->resource[1].end = 0x376; | ||
| 88 | } | ||
| 89 | } | ||
| 90 | |||
| 74 | /* The Cypress bridge responds on the PCI bus in the address range | 91 | /* The Cypress bridge responds on the PCI bus in the address range |
| 75 | 0xffff0000-0xffffffff (conventional x86 BIOS ROM). There is no | 92 | 0xffff0000-0xffffffff (conventional x86 BIOS ROM). There is no |
| 76 | way to turn this off. The bridge also supports several extended | 93 | way to turn this off. The bridge also supports several extended |
diff --git a/arch/alpha/kernel/traps.c b/arch/alpha/kernel/traps.c index dc57790250d2..c778779007fc 100644 --- a/arch/alpha/kernel/traps.c +++ b/arch/alpha/kernel/traps.c | |||
| @@ -447,7 +447,7 @@ struct unaligned_stat { | |||
| 447 | 447 | ||
| 448 | 448 | ||
| 449 | /* Macro for exception fixup code to access integer registers. */ | 449 | /* Macro for exception fixup code to access integer registers. */ |
| 450 | #define una_reg(r) (regs->regs[(r) >= 16 && (r) <= 18 ? (r)+19 : (r)]) | 450 | #define una_reg(r) (_regs[(r) >= 16 && (r) <= 18 ? (r)+19 : (r)]) |
| 451 | 451 | ||
| 452 | 452 | ||
| 453 | asmlinkage void | 453 | asmlinkage void |
| @@ -456,6 +456,7 @@ do_entUna(void * va, unsigned long opcode, unsigned long reg, | |||
| 456 | { | 456 | { |
| 457 | long error, tmp1, tmp2, tmp3, tmp4; | 457 | long error, tmp1, tmp2, tmp3, tmp4; |
| 458 | unsigned long pc = regs->pc - 4; | 458 | unsigned long pc = regs->pc - 4; |
| 459 | unsigned long *_regs = regs->regs; | ||
| 459 | const struct exception_table_entry *fixup; | 460 | const struct exception_table_entry *fixup; |
| 460 | 461 | ||
| 461 | unaligned[0].count++; | 462 | unaligned[0].count++; |
