Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 243579
b: refs/heads/master
c: 963e5d3
h: refs/heads/master
i:
  243577: b840a2e
  243575: b1b9b3e
v: v3
  • Loading branch information
Benjamin Herrenschmidt committed Apr 1, 2011
1 parent 25dec4b commit b3a1e53
Show file tree
Hide file tree
Showing 48 changed files with 277 additions and 580 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: afdef69c7ff7d0bf59e3cafc187aefb12878dbe3
refs/heads/master: 963e5d3b76d657f1ebcf3561446d2ba1872bbfa2
15 changes: 11 additions & 4 deletions trunk/arch/powerpc/kernel/time.c
Original file line number Diff line number Diff line change
Expand Up @@ -577,14 +577,21 @@ void timer_interrupt(struct pt_regs * regs)
struct clock_event_device *evt = &decrementer->event;
u64 now;

/* Ensure a positive value is written to the decrementer, or else
* some CPUs will continue to take decrementer exceptions.
*/
set_dec(DECREMENTER_MAX);

/* Some implementations of hotplug will get timer interrupts while
* offline, just ignore these
*/
if (!cpu_online(smp_processor_id()))
return;

trace_timer_interrupt_entry(regs);

__get_cpu_var(irq_stat).timer_irqs++;

/* Ensure a positive value is written to the decrementer, or else
* some CPUs will continuue to take decrementer exceptions */
set_dec(DECREMENTER_MAX);

#if defined(CONFIG_PPC32) && defined(CONFIG_PMAC)
if (atomic_read(&ppc_n_lost_interrupts) != 0)
do_IRQ(regs);
Expand Down
3 changes: 1 addition & 2 deletions trunk/arch/sparc/include/asm/unistd.h
Original file line number Diff line number Diff line change
Expand Up @@ -403,9 +403,8 @@
#define __NR_name_to_handle_at 332
#define __NR_open_by_handle_at 333
#define __NR_clock_adjtime 334
#define __NR_syncfs 335

#define NR_syscalls 336
#define NR_syscalls 335

#ifdef __32bit_syscall_numbers__
/* Sparc 32-bit only has the "setresuid32", "getresuid32" variants,
Expand Down
2 changes: 1 addition & 1 deletion trunk/arch/sparc/kernel/auxio_64.c
Original file line number Diff line number Diff line change
Expand Up @@ -93,7 +93,7 @@ void auxio_set_lte(int on)
}
EXPORT_SYMBOL(auxio_set_lte);

static const struct of_device_id auxio_match[] = {
static struct of_device_id __initdata auxio_match[] = {
{
.name = "auxio",
},
Expand Down
4 changes: 2 additions & 2 deletions trunk/arch/sparc/kernel/central.c
Original file line number Diff line number Diff line change
Expand Up @@ -140,7 +140,7 @@ static int __devinit clock_board_probe(struct platform_device *op)
goto out;
}

static const struct of_device_id clock_board_match[] = {
static struct of_device_id __initdata clock_board_match[] = {
{
.name = "clock-board",
},
Expand Down Expand Up @@ -245,7 +245,7 @@ static int __devinit fhc_probe(struct platform_device *op)
goto out;
}

static const struct of_device_id fhc_match[] = {
static struct of_device_id __initdata fhc_match[] = {
{
.name = "fhc",
},
Expand Down
2 changes: 1 addition & 1 deletion trunk/arch/sparc/kernel/ds.c
Original file line number Diff line number Diff line change
Expand Up @@ -1218,7 +1218,7 @@ static int ds_remove(struct vio_dev *vdev)
return 0;
}

static const struct vio_device_id ds_match[] = {
static struct vio_device_id __initdata ds_match[] = {
{
.type = "domain-services-port",
},
Expand Down
2 changes: 1 addition & 1 deletion trunk/arch/sparc/kernel/entry.S
Original file line number Diff line number Diff line change
Expand Up @@ -1283,7 +1283,7 @@ linux_syscall_trace:
.globl ret_from_fork
ret_from_fork:
call schedule_tail
ld [%g3 + TI_TASK], %o0
mov %g3, %o0
b ret_sys_call
ld [%sp + STACKFRAME_SZ + PT_I0], %o0

Expand Down
2 changes: 1 addition & 1 deletion trunk/arch/sparc/kernel/mdesc.c
Original file line number Diff line number Diff line change
Expand Up @@ -107,7 +107,7 @@ static struct mdesc_handle * __init mdesc_memblock_alloc(unsigned int mdesc_size
return hp;
}

static void __init mdesc_memblock_free(struct mdesc_handle *hp)
static void mdesc_memblock_free(struct mdesc_handle *hp)
{
unsigned int alloc_size;
unsigned long start;
Expand Down
2 changes: 1 addition & 1 deletion trunk/arch/sparc/kernel/pci_fire.c
Original file line number Diff line number Diff line change
Expand Up @@ -496,7 +496,7 @@ static int __devinit fire_probe(struct platform_device *op)
return err;
}

static const struct of_device_id fire_match[] = {
static struct of_device_id __initdata fire_match[] = {
{
.name = "pci",
.compatible = "pciex108e,80f0",
Expand Down
2 changes: 1 addition & 1 deletion trunk/arch/sparc/kernel/pci_psycho.c
Original file line number Diff line number Diff line change
Expand Up @@ -592,7 +592,7 @@ static int __devinit psycho_probe(struct platform_device *op)
return err;
}

static const struct of_device_id psycho_match[] = {
static struct of_device_id __initdata psycho_match[] = {
{
.name = "pci",
.compatible = "pci108e,8000",
Expand Down
2 changes: 1 addition & 1 deletion trunk/arch/sparc/kernel/pci_sabre.c
Original file line number Diff line number Diff line change
Expand Up @@ -581,7 +581,7 @@ static int __devinit sabre_probe(struct platform_device *op)
return err;
}

static const struct of_device_id sabre_match[] = {
static struct of_device_id __initdata sabre_match[] = {
{
.name = "pci",
.compatible = "pci108e,a001",
Expand Down
2 changes: 1 addition & 1 deletion trunk/arch/sparc/kernel/pci_schizo.c
Original file line number Diff line number Diff line change
Expand Up @@ -1470,7 +1470,7 @@ static int __devinit schizo_probe(struct platform_device *op)
* and pci108e,8001. So list the chips in reverse chronological
* order.
*/
static const struct of_device_id schizo_match[] = {
static struct of_device_id __initdata schizo_match[] = {
{
.name = "pci",
.compatible = "pci108e,a801",
Expand Down
2 changes: 1 addition & 1 deletion trunk/arch/sparc/kernel/pci_sun4v.c
Original file line number Diff line number Diff line change
Expand Up @@ -998,7 +998,7 @@ static int __devinit pci_sun4v_probe(struct platform_device *op)
return err;
}

static const struct of_device_id pci_sun4v_match[] = {
static struct of_device_id __initdata pci_sun4v_match[] = {
{
.name = "pci",
.compatible = "SUNW,sun4v-pci",
Expand Down
2 changes: 1 addition & 1 deletion trunk/arch/sparc/kernel/power.c
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ static int __devinit power_probe(struct platform_device *op)
return 0;
}

static const struct of_device_id power_match[] = {
static struct of_device_id __initdata power_match[] = {
{
.name = "power",
},
Expand Down
2 changes: 1 addition & 1 deletion trunk/arch/sparc/kernel/systbls_32.S
Original file line number Diff line number Diff line change
Expand Up @@ -84,4 +84,4 @@ sys_call_table:
/*320*/ .long sys_dup3, sys_pipe2, sys_inotify_init1, sys_accept4, sys_preadv
/*325*/ .long sys_pwritev, sys_rt_tgsigqueueinfo, sys_perf_event_open, sys_recvmmsg, sys_fanotify_init
/*330*/ .long sys_fanotify_mark, sys_prlimit64, sys_name_to_handle_at, sys_open_by_handle_at, sys_clock_adjtime
/*335*/ .long sys_syncfs

2 changes: 0 additions & 2 deletions trunk/arch/sparc/kernel/systbls_64.S
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,6 @@ sys_call_table32:
/*320*/ .word sys_dup3, sys_pipe2, sys_inotify_init1, sys_accept4, compat_sys_preadv
.word compat_sys_pwritev, compat_sys_rt_tgsigqueueinfo, sys_perf_event_open, compat_sys_recvmmsg, sys_fanotify_init
/*330*/ .word sys32_fanotify_mark, sys_prlimit64, sys_name_to_handle_at, compat_sys_open_by_handle_at, compat_sys_clock_adjtime
.word sys_syncfs

#endif /* CONFIG_COMPAT */

Expand Down Expand Up @@ -162,4 +161,3 @@ sys_call_table:
/*320*/ .word sys_dup3, sys_pipe2, sys_inotify_init1, sys_accept4, sys_preadv
.word sys_pwritev, sys_rt_tgsigqueueinfo, sys_perf_event_open, sys_recvmmsg, sys_fanotify_init
/*330*/ .word sys_fanotify_mark, sys_prlimit64, sys_name_to_handle_at, sys_open_by_handle_at, sys_clock_adjtime
.word sys_syncfs
6 changes: 3 additions & 3 deletions trunk/arch/sparc/kernel/time_64.c
Original file line number Diff line number Diff line change
Expand Up @@ -442,7 +442,7 @@ static int __devinit rtc_probe(struct platform_device *op)
return platform_device_register(&rtc_cmos_device);
}

static const struct of_device_id rtc_match[] = {
static struct of_device_id __initdata rtc_match[] = {
{
.name = "rtc",
.compatible = "m5819",
Expand Down Expand Up @@ -487,7 +487,7 @@ static int __devinit bq4802_probe(struct platform_device *op)
return platform_device_register(&rtc_bq4802_device);
}

static const struct of_device_id bq4802_match[] = {
static struct of_device_id __initdata bq4802_match[] = {
{
.name = "rtc",
.compatible = "bq4802",
Expand Down Expand Up @@ -552,7 +552,7 @@ static int __devinit mostek_probe(struct platform_device *op)
return platform_device_register(&m48t59_rtc);
}

static const struct of_device_id mostek_match[] = {
static struct of_device_id __initdata mostek_match[] = {
{
.name = "eeprom",
},
Expand Down
39 changes: 28 additions & 11 deletions trunk/drivers/atm/solos-pci.c
Original file line number Diff line number Diff line change
Expand Up @@ -165,6 +165,7 @@ static uint32_t fpga_tx(struct solos_card *);
static irqreturn_t solos_irq(int irq, void *dev_id);
static struct atm_vcc* find_vcc(struct atm_dev *dev, short vpi, int vci);
static int list_vccs(int vci);
static void release_vccs(struct atm_dev *dev);
static int atm_init(struct solos_card *, struct device *);
static void atm_remove(struct solos_card *);
static int send_command(struct solos_card *card, int dev, const char *buf, size_t size);
Expand Down Expand Up @@ -383,6 +384,7 @@ static int process_status(struct solos_card *card, int port, struct sk_buff *skb
/* Anything but 'Showtime' is down */
if (strcmp(state_str, "Showtime")) {
atm_dev_signal_change(card->atmdev[port], ATM_PHY_SIG_LOST);
release_vccs(card->atmdev[port]);
dev_info(&card->dev->dev, "Port %d: %s\n", port, state_str);
return 0;
}
Expand Down Expand Up @@ -695,7 +697,7 @@ void solos_bh(unsigned long card_arg)
size);
}
if (atmdebug) {
dev_info(&card->dev->dev, "Received: port %d\n", port);
dev_info(&card->dev->dev, "Received: device %d\n", port);
dev_info(&card->dev->dev, "size: %d VPI: %d VCI: %d\n",
size, le16_to_cpu(header->vpi),
le16_to_cpu(header->vci));
Expand All @@ -708,8 +710,8 @@ void solos_bh(unsigned long card_arg)
le16_to_cpu(header->vci));
if (!vcc) {
if (net_ratelimit())
dev_warn(&card->dev->dev, "Received packet for unknown VPI.VCI %d.%d on port %d\n",
le16_to_cpu(header->vpi), le16_to_cpu(header->vci),
dev_warn(&card->dev->dev, "Received packet for unknown VCI.VPI %d.%d on port %d\n",
le16_to_cpu(header->vci), le16_to_cpu(header->vpi),
port);
continue;
}
Expand Down Expand Up @@ -828,6 +830,28 @@ static int list_vccs(int vci)
return num_found;
}

static void release_vccs(struct atm_dev *dev)
{
int i;

write_lock_irq(&vcc_sklist_lock);
for (i = 0; i < VCC_HTABLE_SIZE; i++) {
struct hlist_head *head = &vcc_hash[i];
struct hlist_node *node, *tmp;
struct sock *s;
struct atm_vcc *vcc;

sk_for_each_safe(s, node, tmp, head) {
vcc = atm_sk(s);
if (vcc->dev == dev) {
vcc_release_async(vcc, -EPIPE);
sk_del_node_init(s);
}
}
}
write_unlock_irq(&vcc_sklist_lock);
}


static int popen(struct atm_vcc *vcc)
{
Expand Down Expand Up @@ -994,15 +1018,8 @@ static uint32_t fpga_tx(struct solos_card *card)

/* Clean up and free oldskb now it's gone */
if (atmdebug) {
struct pkt_hdr *header = (void *)oldskb->data;
int size = le16_to_cpu(header->size);

skb_pull(oldskb, sizeof(*header));
dev_info(&card->dev->dev, "Transmitted: port %d\n",
port);
dev_info(&card->dev->dev, "size: %d VPI: %d VCI: %d\n",
size, le16_to_cpu(header->vpi),
le16_to_cpu(header->vci));
print_buffer(oldskb);
}

Expand Down Expand Up @@ -1245,7 +1262,7 @@ static int atm_init(struct solos_card *card, struct device *parent)
card->atmdev[i]->ci_range.vci_bits = 16;
card->atmdev[i]->dev_data = card;
card->atmdev[i]->phy_data = (void *)(unsigned long)i;
atm_dev_signal_change(card->atmdev[i], ATM_PHY_SIG_FOUND);
atm_dev_signal_change(card->atmdev[i], ATM_PHY_SIG_UNKNOWN);

skb = alloc_skb(sizeof(*header), GFP_ATOMIC);
if (!skb) {
Expand Down
Loading

0 comments on commit b3a1e53

Please sign in to comment.