Skip to content

Commit

Permalink
Merge branch 'release' of git://git.kernel.org/pub/scm/linux/kernel/g…
Browse files Browse the repository at this point in the history
…it/aegl/linux-2.6

* 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux-2.6:
  [IA64] Cannot use register_percpu_irq() from ia64_mca_init()
  [IA64] Initialize interrupts later (from init_IRQ())
  [IA64] enable ARCH_DMA_ADDR_T_64BIT
  [IA64] ioc3_serial: release resources in error return path
  [IA64] Stop using the deprecated __do_IRQ() code path
  [IA64] Remove unnecessary casts of private_data in perfmon.c
  [IA64] Fix missing iounmap in error path in cyclone.c
  [IA64] salinfo: sema_init instead of init_MUTEX
  [IA64] xen: use ARRAY_SIZE macro in xen_pv_ops.c
  [IA64] Use static const char * const in palinfo.c
  [IA64] remove asm/compat.h
  [IA64] Add CONFIG_STACKTRACE_SUPPORT
  [IA64] Move local_softirq_pending() definition
  [IA64] iommu: Add a dummy iommu_table.h file in IA64.
  [IA64] unwind - optimise linked-list searches for modules
  [IA64] unwind: remove preprocesser noise, and correct comment
  • Loading branch information
Linus Torvalds committed Oct 21, 2010
2 parents b653788 + c0f37d2 commit b22793f
Show file tree
Hide file tree
Showing 15 changed files with 117 additions and 300 deletions.
12 changes: 10 additions & 2 deletions arch/ia64/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,9 @@ config MMU
bool
default y

config ARCH_DMA_ADDR_T_64BIT
def_bool y

config NEED_DMA_MAP_STATE
def_bool y

Expand All @@ -62,6 +65,9 @@ config NEED_SG_DMA_LENGTH
config SWIOTLB
bool

config STACKTRACE_SUPPORT
def_bool y

config GENERIC_LOCKBREAK
def_bool n

Expand Down Expand Up @@ -683,8 +689,10 @@ source "lib/Kconfig"
# Use the generic interrupt handling code in kernel/irq/:
#
config GENERIC_HARDIRQS
bool
default y
def_bool y

config GENERIC_HARDIRQS_NO__DO_IRQ
def_bool y

config GENERIC_IRQ_PROBE
bool
Expand Down
208 changes: 0 additions & 208 deletions arch/ia64/include/asm/compat.h

This file was deleted.

1 change: 1 addition & 0 deletions arch/ia64/kernel/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ obj-$(CONFIG_AUDIT) += audit.o
obj-$(CONFIG_PCI_MSI) += msi_ia64.o
mca_recovery-y += mca_drv.o mca_drv_asm.o
obj-$(CONFIG_IA64_MC_ERR_INJECT)+= err_inject.o
obj-$(CONFIG_STACKTRACE) += stacktrace.o

obj-$(CONFIG_PARAVIRT) += paravirt.o paravirtentry.o \
paravirt_patch.o
Expand Down
2 changes: 1 addition & 1 deletion arch/ia64/kernel/cyclone.c
Original file line number Diff line number Diff line change
Expand Up @@ -59,13 +59,13 @@ int __init init_cyclone_clock(void)
return -ENODEV;
}
base = readq(reg);
iounmap(reg);
if(!base){
printk(KERN_ERR "Summit chipset: Could not find valid CBAR"
" value.\n");
use_cyclone = 0;
return -ENODEV;
}
iounmap(reg);

/* setup PMCC */
offset = (base + CYCLONE_PMCC_OFFSET);
Expand Down
60 changes: 9 additions & 51 deletions arch/ia64/kernel/iosapic.c
Original file line number Diff line number Diff line change
Expand Up @@ -108,10 +108,6 @@
#define DBG(fmt...)
#endif

#define NR_PREALLOCATE_RTE_ENTRIES \
(PAGE_SIZE / sizeof(struct iosapic_rte_info))
#define RTE_PREALLOCATED (1)

static DEFINE_SPINLOCK(iosapic_lock);

/*
Expand All @@ -136,7 +132,6 @@ struct iosapic_rte_info {
struct list_head rte_list; /* RTEs sharing the same vector */
char rte_index; /* IOSAPIC RTE index */
int refcnt; /* reference counter */
unsigned int flags; /* flags */
struct iosapic *iosapic;
} ____cacheline_aligned;

Expand All @@ -155,9 +150,6 @@ static struct iosapic_intr_info {

static unsigned char pcat_compat __devinitdata; /* 8259 compatibility flag */

static int iosapic_kmalloc_ok;
static LIST_HEAD(free_rte_list);

static inline void
iosapic_write(struct iosapic *iosapic, unsigned int reg, u32 val)
{
Expand Down Expand Up @@ -394,7 +386,7 @@ iosapic_startup_level_irq (unsigned int irq)
}

static void
iosapic_end_level_irq (unsigned int irq)
iosapic_unmask_level_irq (unsigned int irq)
{
ia64_vector vec = irq_to_vector(irq);
struct iosapic_rte_info *rte;
Expand All @@ -404,7 +396,8 @@ iosapic_end_level_irq (unsigned int irq)
if (unlikely(irq_desc[irq].status & IRQ_MOVE_PENDING)) {
do_unmask_irq = 1;
mask_irq(irq);
}
} else
unmask_irq(irq);

list_for_each_entry(rte, &iosapic_intr_info[irq].rtes, rte_list)
iosapic_eoi(rte->iosapic->addr, vec);
Expand All @@ -427,9 +420,8 @@ static struct irq_chip irq_type_iosapic_level = {
.enable = iosapic_enable_level_irq,
.disable = iosapic_disable_level_irq,
.ack = iosapic_ack_level_irq,
.end = iosapic_end_level_irq,
.mask = mask_irq,
.unmask = unmask_irq,
.unmask = iosapic_unmask_level_irq,
.set_affinity = iosapic_set_affinity
};

Expand Down Expand Up @@ -552,37 +544,6 @@ iosapic_reassign_vector (int irq)
}
}

static struct iosapic_rte_info * __init_refok iosapic_alloc_rte (void)
{
int i;
struct iosapic_rte_info *rte;
int preallocated = 0;

if (!iosapic_kmalloc_ok && list_empty(&free_rte_list)) {
rte = alloc_bootmem(sizeof(struct iosapic_rte_info) *
NR_PREALLOCATE_RTE_ENTRIES);
for (i = 0; i < NR_PREALLOCATE_RTE_ENTRIES; i++, rte++)
list_add(&rte->rte_list, &free_rte_list);
}

if (!list_empty(&free_rte_list)) {
rte = list_entry(free_rte_list.next, struct iosapic_rte_info,
rte_list);
list_del(&rte->rte_list);
preallocated++;
} else {
rte = kmalloc(sizeof(struct iosapic_rte_info), GFP_ATOMIC);
if (!rte)
return NULL;
}

memset(rte, 0, sizeof(struct iosapic_rte_info));
if (preallocated)
rte->flags |= RTE_PREALLOCATED;

return rte;
}

static inline int irq_is_shared (int irq)
{
return (iosapic_intr_info[irq].count > 1);
Expand Down Expand Up @@ -615,7 +576,7 @@ register_intr (unsigned int gsi, int irq, unsigned char delivery,

rte = find_rte(irq, gsi);
if (!rte) {
rte = iosapic_alloc_rte();
rte = kzalloc(sizeof (*rte), GFP_ATOMIC);
if (!rte) {
printk(KERN_WARNING "%s: cannot allocate memory\n",
__func__);
Expand Down Expand Up @@ -658,6 +619,10 @@ register_intr (unsigned int gsi, int irq, unsigned char delivery,
idesc->chip->name, irq_type->name);
idesc->chip = irq_type;
}
if (trigger == IOSAPIC_EDGE)
__set_irq_handler_unlocked(irq, handle_edge_irq);
else
__set_irq_handler_unlocked(irq, handle_level_irq);
return 0;
}

Expand Down Expand Up @@ -1161,10 +1126,3 @@ map_iosapic_to_node(unsigned int gsi_base, int node)
return;
}
#endif

static int __init iosapic_enable_kmalloc (void)
{
iosapic_kmalloc_ok = 1;
return 0;
}
core_initcall (iosapic_enable_kmalloc);
Loading

0 comments on commit b22793f

Please sign in to comment.