Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 300768
b: refs/heads/master
c: 2a9bc71
h: refs/heads/master
v: v3
  • Loading branch information
Tony Zelenoff authored and David S. Miller committed Apr 15, 2012
1 parent 1a76039 commit 993a8e8
Show file tree
Hide file tree
Showing 3 changed files with 53 additions and 58 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: 73650f28ae60b7a9e38b1612012f92a6c3b9941c
refs/heads/master: 2a9bc71e9a1a099e1aab745f1755a3c15a745ad8
105 changes: 48 additions & 57 deletions trunk/drivers/net/ethernet/atheros/atlx/atl1.c
Original file line number Diff line number Diff line change
Expand Up @@ -2499,77 +2499,68 @@ static irqreturn_t atl1_intr(int irq, void *data)
{
struct atl1_adapter *adapter = netdev_priv(data);
u32 status;
int max_ints = 10;

status = adapter->cmb.cmb->int_stats;
if (!status)
return IRQ_NONE;

do {
/* clear CMB interrupt status at once */
adapter->cmb.cmb->int_stats = 0;

if (status & ISR_GPHY) /* clear phy status */
atlx_clear_phy_int(adapter);
/* clear CMB interrupt status at once */
adapter->cmb.cmb->int_stats = 0;

/* clear ISR status, and Enable CMB DMA/Disable Interrupt */
iowrite32(status | ISR_DIS_INT, adapter->hw.hw_addr + REG_ISR);
if (status & ISR_GPHY) /* clear phy status */
atlx_clear_phy_int(adapter);

/* check if SMB intr */
if (status & ISR_SMB)
atl1_inc_smb(adapter);
/* clear ISR status, and Enable CMB DMA/Disable Interrupt */
iowrite32(status | ISR_DIS_INT, adapter->hw.hw_addr + REG_ISR);

/* check if PCIE PHY Link down */
if (status & ISR_PHY_LINKDOWN) {
if (netif_msg_intr(adapter))
dev_printk(KERN_DEBUG, &adapter->pdev->dev,
"pcie phy link down %x\n", status);
if (netif_running(adapter->netdev)) { /* reset MAC */
atlx_irq_disable(adapter);
schedule_work(&adapter->pcie_dma_to_rst_task);
return IRQ_HANDLED;
}
}
/* check if SMB intr */
if (status & ISR_SMB)
atl1_inc_smb(adapter);

/* check if DMA read/write error ? */
if (status & (ISR_DMAR_TO_RST | ISR_DMAW_TO_RST)) {
if (netif_msg_intr(adapter))
dev_printk(KERN_DEBUG, &adapter->pdev->dev,
"pcie DMA r/w error (status = 0x%x)\n",
status);
/* check if PCIE PHY Link down */
if (status & ISR_PHY_LINKDOWN) {
if (netif_msg_intr(adapter))
dev_printk(KERN_DEBUG, &adapter->pdev->dev,
"pcie phy link down %x\n", status);
if (netif_running(adapter->netdev)) { /* reset MAC */
atlx_irq_disable(adapter);
schedule_work(&adapter->pcie_dma_to_rst_task);
return IRQ_HANDLED;
}
}

/* link event */
if (status & ISR_GPHY) {
adapter->soft_stats.tx_carrier_errors++;
atl1_check_for_link(adapter);
}

/* transmit or receive event */
if (status & (ISR_CMB_TX | ISR_CMB_RX) &&
atl1_sched_rings_clean(adapter))
break;

/* rx exception */
if (unlikely(status & (ISR_RXF_OV | ISR_RFD_UNRUN |
ISR_RRD_OV | ISR_HOST_RFD_UNRUN |
ISR_HOST_RRD_OV))) {
if (netif_msg_intr(adapter))
dev_printk(KERN_DEBUG,
&adapter->pdev->dev,
"rx exception, ISR = 0x%x\n",
status);
if (atl1_sched_rings_clean(adapter))
break;
}

if (--max_ints < 0)
break;

} while ((status = adapter->cmb.cmb->int_stats));
/* check if DMA read/write error ? */
if (status & (ISR_DMAR_TO_RST | ISR_DMAW_TO_RST)) {
if (netif_msg_intr(adapter))
dev_printk(KERN_DEBUG, &adapter->pdev->dev,
"pcie DMA r/w error (status = 0x%x)\n",
status);
atlx_irq_disable(adapter);
schedule_work(&adapter->pcie_dma_to_rst_task);
return IRQ_HANDLED;
}

/* link event */
if (status & ISR_GPHY) {
adapter->soft_stats.tx_carrier_errors++;
atl1_check_for_link(adapter);
}

/* transmit or receive event */
if (status & (ISR_CMB_TX | ISR_CMB_RX))
atl1_sched_rings_clean(adapter);

/* rx exception */
if (unlikely(status & (ISR_RXF_OV | ISR_RFD_UNRUN |
ISR_RRD_OV | ISR_HOST_RFD_UNRUN |
ISR_HOST_RRD_OV))) {
if (netif_msg_intr(adapter))
dev_printk(KERN_DEBUG,
&adapter->pdev->dev,
"rx exception, ISR = 0x%x\n",
status);
atl1_sched_rings_clean(adapter);
}

/* re-enable Interrupt */
iowrite32(ISR_DIS_SMB | ISR_DIS_DMA, adapter->hw.hw_addr + REG_ISR);
Expand Down
4 changes: 4 additions & 0 deletions trunk/scripts/mod/file2alias.c
Original file line number Diff line number Diff line change
Expand Up @@ -1100,6 +1100,10 @@ void handle_moddevtable(struct module *mod, struct elf_info *info,
if (!sym->st_shndx || get_secindex(info, sym) >= info->num_sections)
return;

/* We're looking for an object */
if (ELF_ST_TYPE(sym->st_info) != STT_OBJECT)
return;

/* All our symbols are of form <prefix>__mod_XXX_device_table. */
name = strstr(symname, "__mod_");
if (!name)
Expand Down

0 comments on commit 993a8e8

Please sign in to comment.