Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 66514
b: refs/heads/master
c: c77dd43
h: refs/heads/master
v: v3
  • Loading branch information
Sivakumar Subramani authored and David S. Miller committed Oct 10, 2007
1 parent c9d33e5 commit 2db5dcf
Show file tree
Hide file tree
Showing 3 changed files with 21 additions and 1 deletion.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 8abc4d5b84f23edccf405aa591aae7d9b967e8d2
refs/heads/master: c77dd43e77c530a12a466865805d2068ede96860
19 changes: 19 additions & 0 deletions trunk/drivers/net/s2io.c
Original file line number Diff line number Diff line change
Expand Up @@ -3892,6 +3892,12 @@ static int s2io_open(struct net_device *dev)
}
}

/* NAPI doesn't work well with MSI(X) */
if (sp->intr_type != INTA) {
if(sp->config.napi)
sp->config.napi = 0;
}

/* Initialize H/W and enable interrupts */
err = s2io_card_up(sp);
if (err) {
Expand Down Expand Up @@ -6471,6 +6477,7 @@ static void s2io_rem_isr(struct s2io_nic * sp)
{
int cnt = 0;
struct net_device *dev = sp->dev;
struct swStat *stats = &sp->mac_control.stats_info->sw_stat;

if (sp->intr_type == MSI_X) {
int i;
Expand All @@ -6483,6 +6490,16 @@ static void s2io_rem_isr(struct s2io_nic * sp)

free_irq(vector, arg);
}

kfree(sp->entries);
stats->mem_freed +=
(MAX_REQUESTED_MSI_X * sizeof(struct msix_entry));
kfree(sp->s2io_entries);
stats->mem_freed +=
(MAX_REQUESTED_MSI_X * sizeof(struct s2io_msix_entry));
sp->entries = NULL;
sp->s2io_entries = NULL;

pci_read_config_word(sp->pdev, 0x42, &msi_control);
msi_control &= 0xFFFE; /* Disable MSI */
pci_write_config_word(sp->pdev, 0x42, msi_control);
Expand Down Expand Up @@ -7377,6 +7394,8 @@ s2io_init_nic(struct pci_dev *pdev, const struct pci_device_id *pre)
dev->addr_len = ETH_ALEN;
memcpy(dev->dev_addr, sp->def_mac_addr, ETH_ALEN);

/* Store the values of the MSIX table in the s2io_nic structure */
store_xmsi_data(sp);
/* reset Nic and bring it to known state */
s2io_reset(sp);

Expand Down
1 change: 1 addition & 0 deletions trunk/drivers/net/s2io.h
Original file line number Diff line number Diff line change
Expand Up @@ -415,6 +415,7 @@ struct config_param {
#define INTA 0
#define MSI_X 2
u8 intr_type;
u8 napi;

/* Specifies if Tx Intr is UTILZ or PER_LIST type. */

Expand Down

0 comments on commit 2db5dcf

Please sign in to comment.