You've already forked linux-apfs
mirror of
https://github.com/linux-apfs/linux-apfs.git
synced 2026-05-01 15:00:59 -07:00
Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
Conflicts: drivers/net/wireless/iwlwifi/iwl4965-base.c
This commit is contained in:
@@ -83,9 +83,9 @@ Valid range: Limited by memory on system
|
|||||||
Default: 30
|
Default: 30
|
||||||
|
|
||||||
e. intr_type
|
e. intr_type
|
||||||
Specifies interrupt type. Possible values 1(INTA), 2(MSI), 3(MSI-X)
|
Specifies interrupt type. Possible values 0(INTA), 2(MSI-X)
|
||||||
Valid range: 1-3
|
Valid values: 0, 2
|
||||||
Default: 1
|
Default: 2
|
||||||
|
|
||||||
5. Performance suggestions
|
5. Performance suggestions
|
||||||
General:
|
General:
|
||||||
|
|||||||
@@ -27,6 +27,8 @@
|
|||||||
#include <linux/moduleparam.h>
|
#include <linux/moduleparam.h>
|
||||||
#include <linux/connector.h>
|
#include <linux/connector.h>
|
||||||
#include <linux/mutex.h>
|
#include <linux/mutex.h>
|
||||||
|
#include <linux/proc_fs.h>
|
||||||
|
#include <linux/spinlock.h>
|
||||||
|
|
||||||
#include <net/sock.h>
|
#include <net/sock.h>
|
||||||
|
|
||||||
@@ -403,6 +405,40 @@ static void cn_callback(void *data)
|
|||||||
mutex_unlock(¬ify_lock);
|
mutex_unlock(¬ify_lock);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int cn_proc_show(struct seq_file *m, void *v)
|
||||||
|
{
|
||||||
|
struct cn_queue_dev *dev = cdev.cbdev;
|
||||||
|
struct cn_callback_entry *cbq;
|
||||||
|
|
||||||
|
seq_printf(m, "Name ID\n");
|
||||||
|
|
||||||
|
spin_lock_bh(&dev->queue_lock);
|
||||||
|
|
||||||
|
list_for_each_entry(cbq, &dev->queue_list, callback_entry) {
|
||||||
|
seq_printf(m, "%-15s %u:%u\n",
|
||||||
|
cbq->id.name,
|
||||||
|
cbq->id.id.idx,
|
||||||
|
cbq->id.id.val);
|
||||||
|
}
|
||||||
|
|
||||||
|
spin_unlock_bh(&dev->queue_lock);
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
static int cn_proc_open(struct inode *inode, struct file *file)
|
||||||
|
{
|
||||||
|
return single_open(file, cn_proc_show, NULL);
|
||||||
|
}
|
||||||
|
|
||||||
|
static const struct file_operations cn_file_ops = {
|
||||||
|
.owner = THIS_MODULE,
|
||||||
|
.open = cn_proc_open,
|
||||||
|
.read = seq_read,
|
||||||
|
.llseek = seq_lseek,
|
||||||
|
.release = single_release
|
||||||
|
};
|
||||||
|
|
||||||
static int __devinit cn_init(void)
|
static int __devinit cn_init(void)
|
||||||
{
|
{
|
||||||
struct cn_dev *dev = &cdev;
|
struct cn_dev *dev = &cdev;
|
||||||
@@ -434,6 +470,8 @@ static int __devinit cn_init(void)
|
|||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
proc_net_fops_create(&init_net, "connector", S_IRUGO, &cn_file_ops);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -443,6 +481,8 @@ static void __devexit cn_fini(void)
|
|||||||
|
|
||||||
cn_already_initialized = 0;
|
cn_already_initialized = 0;
|
||||||
|
|
||||||
|
proc_net_remove(&init_net, "connector");
|
||||||
|
|
||||||
cn_del_callback(&dev->id);
|
cn_del_callback(&dev->id);
|
||||||
cn_queue_free_dev(dev->cbdev);
|
cn_queue_free_dev(dev->cbdev);
|
||||||
netlink_kernel_release(dev->nls);
|
netlink_kernel_release(dev->nls);
|
||||||
|
|||||||
+3
-2
@@ -1768,9 +1768,10 @@ vortex_timer(unsigned long data)
|
|||||||
case XCVR_MII: case XCVR_NWAY:
|
case XCVR_MII: case XCVR_NWAY:
|
||||||
{
|
{
|
||||||
ok = 1;
|
ok = 1;
|
||||||
spin_lock_bh(&vp->lock);
|
/* Interrupts are already disabled */
|
||||||
|
spin_lock(&vp->lock);
|
||||||
vortex_check_media(dev, 0);
|
vortex_check_media(dev, 0);
|
||||||
spin_unlock_bh(&vp->lock);
|
spin_unlock(&vp->lock);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
default: /* Other media types handled by Tx timeouts. */
|
default: /* Other media types handled by Tx timeouts. */
|
||||||
|
|||||||
@@ -1803,6 +1803,8 @@ static int e100_rx_alloc_skb(struct nic *nic, struct rx *rx)
|
|||||||
if (rx->prev->skb) {
|
if (rx->prev->skb) {
|
||||||
struct rfd *prev_rfd = (struct rfd *)rx->prev->skb->data;
|
struct rfd *prev_rfd = (struct rfd *)rx->prev->skb->data;
|
||||||
put_unaligned_le32(rx->dma_addr, &prev_rfd->link);
|
put_unaligned_le32(rx->dma_addr, &prev_rfd->link);
|
||||||
|
pci_dma_sync_single_for_device(nic->pdev, rx->prev->dma_addr,
|
||||||
|
sizeof(struct rfd), PCI_DMA_TODEVICE);
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|||||||
@@ -347,7 +347,7 @@ e1000_set_tso(struct net_device *netdev, u32 data)
|
|||||||
else
|
else
|
||||||
netdev->features &= ~NETIF_F_TSO;
|
netdev->features &= ~NETIF_F_TSO;
|
||||||
|
|
||||||
if (data)
|
if (data && (adapter->hw.mac_type > e1000_82547_rev_2))
|
||||||
netdev->features |= NETIF_F_TSO6;
|
netdev->features |= NETIF_F_TSO6;
|
||||||
else
|
else
|
||||||
netdev->features &= ~NETIF_F_TSO6;
|
netdev->features &= ~NETIF_F_TSO6;
|
||||||
|
|||||||
@@ -2535,7 +2535,8 @@ void e1000e_down(struct e1000_adapter *adapter)
|
|||||||
adapter->link_speed = 0;
|
adapter->link_speed = 0;
|
||||||
adapter->link_duplex = 0;
|
adapter->link_duplex = 0;
|
||||||
|
|
||||||
e1000e_reset(adapter);
|
if (!pci_channel_offline(adapter->pdev))
|
||||||
|
e1000e_reset(adapter);
|
||||||
e1000_clean_tx_ring(adapter);
|
e1000_clean_tx_ring(adapter);
|
||||||
e1000_clean_rx_ring(adapter);
|
e1000_clean_rx_ring(adapter);
|
||||||
|
|
||||||
|
|||||||
@@ -1077,8 +1077,6 @@ static inline void rx_off(struct scc_priv *priv)
|
|||||||
|
|
||||||
static void start_timer(struct scc_priv *priv, int t, int r15)
|
static void start_timer(struct scc_priv *priv, int t, int r15)
|
||||||
{
|
{
|
||||||
unsigned long flags;
|
|
||||||
|
|
||||||
outb(priv->tmr_mode, priv->tmr_ctrl);
|
outb(priv->tmr_mode, priv->tmr_ctrl);
|
||||||
if (t == 0) {
|
if (t == 0) {
|
||||||
tm_isr(priv);
|
tm_isr(priv);
|
||||||
|
|||||||
@@ -718,7 +718,8 @@ void igb_down(struct igb_adapter *adapter)
|
|||||||
adapter->link_speed = 0;
|
adapter->link_speed = 0;
|
||||||
adapter->link_duplex = 0;
|
adapter->link_duplex = 0;
|
||||||
|
|
||||||
igb_reset(adapter);
|
if (!pci_channel_offline(adapter->pdev))
|
||||||
|
igb_reset(adapter);
|
||||||
igb_clean_all_tx_rings(adapter);
|
igb_clean_all_tx_rings(adapter);
|
||||||
igb_clean_all_rx_rings(adapter);
|
igb_clean_all_rx_rings(adapter);
|
||||||
}
|
}
|
||||||
|
|||||||
+8
-8
@@ -1271,7 +1271,7 @@ static void ipg_nic_rx_with_end(struct net_device *dev,
|
|||||||
|
|
||||||
framelen = le64_to_cpu(rxfd->rfs) & IPG_RFS_RXFRAMELEN;
|
framelen = le64_to_cpu(rxfd->rfs) & IPG_RFS_RXFRAMELEN;
|
||||||
|
|
||||||
endframeLen = framelen - jumbo->current_size;
|
endframelen = framelen - jumbo->current_size;
|
||||||
/*
|
/*
|
||||||
if (framelen > IPG_RXFRAG_SIZE)
|
if (framelen > IPG_RXFRAG_SIZE)
|
||||||
framelen=IPG_RXFRAG_SIZE;
|
framelen=IPG_RXFRAG_SIZE;
|
||||||
@@ -1279,8 +1279,8 @@ static void ipg_nic_rx_with_end(struct net_device *dev,
|
|||||||
if (framelen > IPG_RXSUPPORT_SIZE)
|
if (framelen > IPG_RXSUPPORT_SIZE)
|
||||||
dev_kfree_skb_irq(jumbo->skb);
|
dev_kfree_skb_irq(jumbo->skb);
|
||||||
else {
|
else {
|
||||||
memcpy(skb_put(jumbo->skb, endframeLen),
|
memcpy(skb_put(jumbo->skb, endframelen),
|
||||||
skb->data, endframeLen);
|
skb->data, endframelen);
|
||||||
|
|
||||||
jumbo->skb->protocol =
|
jumbo->skb->protocol =
|
||||||
eth_type_trans(jumbo->skb, dev);
|
eth_type_trans(jumbo->skb, dev);
|
||||||
@@ -1352,16 +1352,16 @@ static int ipg_nic_rx(struct net_device *dev)
|
|||||||
|
|
||||||
switch (ipg_nic_rx_check_frame_type(dev)) {
|
switch (ipg_nic_rx_check_frame_type(dev)) {
|
||||||
case FRAME_WITH_START_WITH_END:
|
case FRAME_WITH_START_WITH_END:
|
||||||
ipg_nic_rx_with_start_and_end(dev, tp, rxfd, entry);
|
ipg_nic_rx_with_start_and_end(dev, sp, rxfd, entry);
|
||||||
break;
|
break;
|
||||||
case FRAME_WITH_START:
|
case FRAME_WITH_START:
|
||||||
ipg_nic_rx_with_start(dev, tp, rxfd, entry);
|
ipg_nic_rx_with_start(dev, sp, rxfd, entry);
|
||||||
break;
|
break;
|
||||||
case FRAME_WITH_END:
|
case FRAME_WITH_END:
|
||||||
ipg_nic_rx_with_end(dev, tp, rxfd, entry);
|
ipg_nic_rx_with_end(dev, sp, rxfd, entry);
|
||||||
break;
|
break;
|
||||||
case FRAME_NO_START_NO_END:
|
case FRAME_NO_START_NO_END:
|
||||||
ipg_nic_rx_no_start_no_end(dev, tp, rxfd, entry);
|
ipg_nic_rx_no_start_no_end(dev, sp, rxfd, entry);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1808,7 +1808,7 @@ static int ipg_nic_open(struct net_device *dev)
|
|||||||
/* initialize JUMBO Frame control variable */
|
/* initialize JUMBO Frame control variable */
|
||||||
sp->jumbo.found_start = 0;
|
sp->jumbo.found_start = 0;
|
||||||
sp->jumbo.current_size = 0;
|
sp->jumbo.current_size = 0;
|
||||||
sp->jumbo.skb = 0;
|
sp->jumbo.skb = NULL;
|
||||||
dev->mtu = IPG_TXFRAG_SIZE;
|
dev->mtu = IPG_TXFRAG_SIZE;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|||||||
@@ -1969,7 +1969,8 @@ void ixgbe_down(struct ixgbe_adapter *adapter)
|
|||||||
netif_carrier_off(netdev);
|
netif_carrier_off(netdev);
|
||||||
netif_stop_queue(netdev);
|
netif_stop_queue(netdev);
|
||||||
|
|
||||||
ixgbe_reset(adapter);
|
if (!pci_channel_offline(adapter->pdev))
|
||||||
|
ixgbe_reset(adapter);
|
||||||
ixgbe_clean_all_tx_rings(adapter);
|
ixgbe_clean_all_tx_rings(adapter);
|
||||||
ixgbe_clean_all_rx_rings(adapter);
|
ixgbe_clean_all_rx_rings(adapter);
|
||||||
|
|
||||||
|
|||||||
@@ -71,14 +71,18 @@ static irqreturn_t netxen_intr(int irq, void *data);
|
|||||||
static irqreturn_t netxen_msi_intr(int irq, void *data);
|
static irqreturn_t netxen_msi_intr(int irq, void *data);
|
||||||
|
|
||||||
/* PCI Device ID Table */
|
/* PCI Device ID Table */
|
||||||
|
#define ENTRY(device) \
|
||||||
|
{PCI_DEVICE(0x4040, (device)), \
|
||||||
|
.class = PCI_CLASS_NETWORK_ETHERNET << 8, .class_mask = ~0}
|
||||||
|
|
||||||
static struct pci_device_id netxen_pci_tbl[] __devinitdata = {
|
static struct pci_device_id netxen_pci_tbl[] __devinitdata = {
|
||||||
{PCI_DEVICE(0x4040, 0x0001), PCI_DEVICE_CLASS(0x020000, ~0)},
|
ENTRY(0x0001),
|
||||||
{PCI_DEVICE(0x4040, 0x0002), PCI_DEVICE_CLASS(0x020000, ~0)},
|
ENTRY(0x0002),
|
||||||
{PCI_DEVICE(0x4040, 0x0003), PCI_DEVICE_CLASS(0x020000, ~0)},
|
ENTRY(0x0003),
|
||||||
{PCI_DEVICE(0x4040, 0x0004), PCI_DEVICE_CLASS(0x020000, ~0)},
|
ENTRY(0x0004),
|
||||||
{PCI_DEVICE(0x4040, 0x0005), PCI_DEVICE_CLASS(0x020000, ~0)},
|
ENTRY(0x0005),
|
||||||
{PCI_DEVICE(0x4040, 0x0024), PCI_DEVICE_CLASS(0x020000, ~0)},
|
ENTRY(0x0024),
|
||||||
{PCI_DEVICE(0x4040, 0x0025), PCI_DEVICE_CLASS(0x020000, ~0)},
|
ENTRY(0x0025),
|
||||||
{0,}
|
{0,}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -525,12 +525,14 @@ static int axnet_open(struct net_device *dev)
|
|||||||
int ret;
|
int ret;
|
||||||
axnet_dev_t *info = PRIV(dev);
|
axnet_dev_t *info = PRIV(dev);
|
||||||
struct pcmcia_device *link = info->p_dev;
|
struct pcmcia_device *link = info->p_dev;
|
||||||
|
unsigned int nic_base = dev->base_addr;
|
||||||
|
|
||||||
DEBUG(2, "axnet_open('%s')\n", dev->name);
|
DEBUG(2, "axnet_open('%s')\n", dev->name);
|
||||||
|
|
||||||
if (!pcmcia_dev_present(link))
|
if (!pcmcia_dev_present(link))
|
||||||
return -ENODEV;
|
return -ENODEV;
|
||||||
|
|
||||||
|
outb_p(0xFF, nic_base + EN0_ISR); /* Clear bogus intr. */
|
||||||
ret = request_irq(dev->irq, ei_irq_wrapper, IRQF_SHARED, "axnet_cs", dev);
|
ret = request_irq(dev->irq, ei_irq_wrapper, IRQF_SHARED, "axnet_cs", dev);
|
||||||
if (ret)
|
if (ret)
|
||||||
return ret;
|
return ret;
|
||||||
|
|||||||
@@ -969,6 +969,7 @@ static int pcnet_open(struct net_device *dev)
|
|||||||
int ret;
|
int ret;
|
||||||
pcnet_dev_t *info = PRIV(dev);
|
pcnet_dev_t *info = PRIV(dev);
|
||||||
struct pcmcia_device *link = info->p_dev;
|
struct pcmcia_device *link = info->p_dev;
|
||||||
|
unsigned int nic_base = dev->base_addr;
|
||||||
|
|
||||||
DEBUG(2, "pcnet_open('%s')\n", dev->name);
|
DEBUG(2, "pcnet_open('%s')\n", dev->name);
|
||||||
|
|
||||||
@@ -976,6 +977,8 @@ static int pcnet_open(struct net_device *dev)
|
|||||||
return -ENODEV;
|
return -ENODEV;
|
||||||
|
|
||||||
set_misc_reg(dev);
|
set_misc_reg(dev);
|
||||||
|
|
||||||
|
outb_p(0xFF, nic_base + EN0_ISR); /* Clear bogus intr. */
|
||||||
ret = request_irq(dev->irq, ei_irq_wrapper, IRQF_SHARED, dev_info, dev);
|
ret = request_irq(dev->irq, ei_irq_wrapper, IRQF_SHARED, dev_info, dev);
|
||||||
if (ret)
|
if (ret)
|
||||||
return ret;
|
return ret;
|
||||||
|
|||||||
+1
-1
@@ -942,7 +942,7 @@ static int pppoe_recvmsg(struct kiocb *iocb, struct socket *sock,
|
|||||||
m->msg_namelen = 0;
|
m->msg_namelen = 0;
|
||||||
|
|
||||||
if (skb) {
|
if (skb) {
|
||||||
total_len = min(total_len, skb->len);
|
total_len = min_t(size_t, total_len, skb->len);
|
||||||
error = skb_copy_datagram_iovec(skb, 0, m->msg_iov, total_len);
|
error = skb_copy_datagram_iovec(skb, 0, m->msg_iov, total_len);
|
||||||
if (error == 0)
|
if (error == 0)
|
||||||
error = total_len;
|
error = total_len;
|
||||||
|
|||||||
@@ -3701,7 +3701,9 @@ static int ql_cycle_adapter(struct ql3_adapter *qdev, int reset)
|
|||||||
printk(KERN_ERR PFX
|
printk(KERN_ERR PFX
|
||||||
"%s: Driver up/down cycle failed, "
|
"%s: Driver up/down cycle failed, "
|
||||||
"closing device\n",qdev->ndev->name);
|
"closing device\n",qdev->ndev->name);
|
||||||
|
rtnl_lock();
|
||||||
dev_close(qdev->ndev);
|
dev_close(qdev->ndev);
|
||||||
|
rtnl_unlock();
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
|
|||||||
+1
-1
@@ -273,7 +273,7 @@ static void r6040_init_ring_desc(struct r6040_descriptor *desc_ring,
|
|||||||
dma_addr_t mapping = desc_dma;
|
dma_addr_t mapping = desc_dma;
|
||||||
|
|
||||||
while (size-- > 0) {
|
while (size-- > 0) {
|
||||||
mapping += sizeof(sizeof(*desc));
|
mapping += sizeof(*desc);
|
||||||
desc->ndesc = cpu_to_le32(mapping);
|
desc->ndesc = cpu_to_le32(mapping);
|
||||||
desc->vndescp = desc + 1;
|
desc->vndescp = desc + 1;
|
||||||
desc++;
|
desc++;
|
||||||
|
|||||||
+12
-23
@@ -2625,9 +2625,7 @@ static int fill_rx_buffers(struct ring_info *ring)
|
|||||||
rxdp1->Buffer0_ptr = pci_map_single
|
rxdp1->Buffer0_ptr = pci_map_single
|
||||||
(ring->pdev, skb->data, size - NET_IP_ALIGN,
|
(ring->pdev, skb->data, size - NET_IP_ALIGN,
|
||||||
PCI_DMA_FROMDEVICE);
|
PCI_DMA_FROMDEVICE);
|
||||||
if( (rxdp1->Buffer0_ptr == 0) ||
|
if(pci_dma_mapping_error(rxdp1->Buffer0_ptr))
|
||||||
(rxdp1->Buffer0_ptr ==
|
|
||||||
DMA_ERROR_CODE))
|
|
||||||
goto pci_map_failed;
|
goto pci_map_failed;
|
||||||
|
|
||||||
rxdp->Control_2 =
|
rxdp->Control_2 =
|
||||||
@@ -2657,6 +2655,7 @@ static int fill_rx_buffers(struct ring_info *ring)
|
|||||||
skb->data = (void *) (unsigned long)tmp;
|
skb->data = (void *) (unsigned long)tmp;
|
||||||
skb_reset_tail_pointer(skb);
|
skb_reset_tail_pointer(skb);
|
||||||
|
|
||||||
|
/* AK: check is wrong. 0 can be valid dma address */
|
||||||
if (!(rxdp3->Buffer0_ptr))
|
if (!(rxdp3->Buffer0_ptr))
|
||||||
rxdp3->Buffer0_ptr =
|
rxdp3->Buffer0_ptr =
|
||||||
pci_map_single(ring->pdev, ba->ba_0,
|
pci_map_single(ring->pdev, ba->ba_0,
|
||||||
@@ -2665,8 +2664,7 @@ static int fill_rx_buffers(struct ring_info *ring)
|
|||||||
pci_dma_sync_single_for_device(ring->pdev,
|
pci_dma_sync_single_for_device(ring->pdev,
|
||||||
(dma_addr_t) rxdp3->Buffer0_ptr,
|
(dma_addr_t) rxdp3->Buffer0_ptr,
|
||||||
BUF0_LEN, PCI_DMA_FROMDEVICE);
|
BUF0_LEN, PCI_DMA_FROMDEVICE);
|
||||||
if( (rxdp3->Buffer0_ptr == 0) ||
|
if (pci_dma_mapping_error(rxdp3->Buffer0_ptr))
|
||||||
(rxdp3->Buffer0_ptr == DMA_ERROR_CODE))
|
|
||||||
goto pci_map_failed;
|
goto pci_map_failed;
|
||||||
|
|
||||||
rxdp->Control_2 = SET_BUFFER0_SIZE_3(BUF0_LEN);
|
rxdp->Control_2 = SET_BUFFER0_SIZE_3(BUF0_LEN);
|
||||||
@@ -2681,18 +2679,17 @@ static int fill_rx_buffers(struct ring_info *ring)
|
|||||||
(ring->pdev, skb->data, ring->mtu + 4,
|
(ring->pdev, skb->data, ring->mtu + 4,
|
||||||
PCI_DMA_FROMDEVICE);
|
PCI_DMA_FROMDEVICE);
|
||||||
|
|
||||||
if( (rxdp3->Buffer2_ptr == 0) ||
|
if (pci_dma_mapping_error(rxdp3->Buffer2_ptr))
|
||||||
(rxdp3->Buffer2_ptr == DMA_ERROR_CODE))
|
|
||||||
goto pci_map_failed;
|
goto pci_map_failed;
|
||||||
|
|
||||||
|
/* AK: check is wrong */
|
||||||
if (!rxdp3->Buffer1_ptr)
|
if (!rxdp3->Buffer1_ptr)
|
||||||
rxdp3->Buffer1_ptr =
|
rxdp3->Buffer1_ptr =
|
||||||
pci_map_single(ring->pdev,
|
pci_map_single(ring->pdev,
|
||||||
ba->ba_1, BUF1_LEN,
|
ba->ba_1, BUF1_LEN,
|
||||||
PCI_DMA_FROMDEVICE);
|
PCI_DMA_FROMDEVICE);
|
||||||
|
|
||||||
if( (rxdp3->Buffer1_ptr == 0) ||
|
if (pci_dma_mapping_error(rxdp3->Buffer1_ptr)) {
|
||||||
(rxdp3->Buffer1_ptr == DMA_ERROR_CODE)) {
|
|
||||||
pci_unmap_single
|
pci_unmap_single
|
||||||
(ring->pdev,
|
(ring->pdev,
|
||||||
(dma_addr_t)(unsigned long)
|
(dma_addr_t)(unsigned long)
|
||||||
@@ -4264,16 +4261,14 @@ static int s2io_xmit(struct sk_buff *skb, struct net_device *dev)
|
|||||||
txdp->Buffer_Pointer = pci_map_single(sp->pdev,
|
txdp->Buffer_Pointer = pci_map_single(sp->pdev,
|
||||||
fifo->ufo_in_band_v,
|
fifo->ufo_in_band_v,
|
||||||
sizeof(u64), PCI_DMA_TODEVICE);
|
sizeof(u64), PCI_DMA_TODEVICE);
|
||||||
if((txdp->Buffer_Pointer == 0) ||
|
if (pci_dma_mapping_error(txdp->Buffer_Pointer))
|
||||||
(txdp->Buffer_Pointer == DMA_ERROR_CODE))
|
|
||||||
goto pci_map_failed;
|
goto pci_map_failed;
|
||||||
txdp++;
|
txdp++;
|
||||||
}
|
}
|
||||||
|
|
||||||
txdp->Buffer_Pointer = pci_map_single
|
txdp->Buffer_Pointer = pci_map_single
|
||||||
(sp->pdev, skb->data, frg_len, PCI_DMA_TODEVICE);
|
(sp->pdev, skb->data, frg_len, PCI_DMA_TODEVICE);
|
||||||
if((txdp->Buffer_Pointer == 0) ||
|
if (pci_dma_mapping_error(txdp->Buffer_Pointer))
|
||||||
(txdp->Buffer_Pointer == DMA_ERROR_CODE))
|
|
||||||
goto pci_map_failed;
|
goto pci_map_failed;
|
||||||
|
|
||||||
txdp->Host_Control = (unsigned long) skb;
|
txdp->Host_Control = (unsigned long) skb;
|
||||||
@@ -6884,10 +6879,8 @@ static int set_rxd_buffer_pointer(struct s2io_nic *sp, struct RxD_t *rxdp,
|
|||||||
pci_map_single( sp->pdev, (*skb)->data,
|
pci_map_single( sp->pdev, (*skb)->data,
|
||||||
size - NET_IP_ALIGN,
|
size - NET_IP_ALIGN,
|
||||||
PCI_DMA_FROMDEVICE);
|
PCI_DMA_FROMDEVICE);
|
||||||
if( (rxdp1->Buffer0_ptr == 0) ||
|
if (pci_dma_mapping_error(rxdp1->Buffer0_ptr))
|
||||||
(rxdp1->Buffer0_ptr == DMA_ERROR_CODE)) {
|
|
||||||
goto memalloc_failed;
|
goto memalloc_failed;
|
||||||
}
|
|
||||||
rxdp->Host_Control = (unsigned long) (*skb);
|
rxdp->Host_Control = (unsigned long) (*skb);
|
||||||
}
|
}
|
||||||
} else if ((sp->rxd_mode == RXD_MODE_3B) && (rxdp->Host_Control == 0)) {
|
} else if ((sp->rxd_mode == RXD_MODE_3B) && (rxdp->Host_Control == 0)) {
|
||||||
@@ -6913,15 +6906,12 @@ static int set_rxd_buffer_pointer(struct s2io_nic *sp, struct RxD_t *rxdp,
|
|||||||
pci_map_single(sp->pdev, (*skb)->data,
|
pci_map_single(sp->pdev, (*skb)->data,
|
||||||
dev->mtu + 4,
|
dev->mtu + 4,
|
||||||
PCI_DMA_FROMDEVICE);
|
PCI_DMA_FROMDEVICE);
|
||||||
if( (rxdp3->Buffer2_ptr == 0) ||
|
if (pci_dma_mapping_error(rxdp3->Buffer2_ptr))
|
||||||
(rxdp3->Buffer2_ptr == DMA_ERROR_CODE)) {
|
|
||||||
goto memalloc_failed;
|
goto memalloc_failed;
|
||||||
}
|
|
||||||
rxdp3->Buffer0_ptr = *temp0 =
|
rxdp3->Buffer0_ptr = *temp0 =
|
||||||
pci_map_single( sp->pdev, ba->ba_0, BUF0_LEN,
|
pci_map_single( sp->pdev, ba->ba_0, BUF0_LEN,
|
||||||
PCI_DMA_FROMDEVICE);
|
PCI_DMA_FROMDEVICE);
|
||||||
if( (rxdp3->Buffer0_ptr == 0) ||
|
if (pci_dma_mapping_error(rxdp3->Buffer0_ptr)) {
|
||||||
(rxdp3->Buffer0_ptr == DMA_ERROR_CODE)) {
|
|
||||||
pci_unmap_single (sp->pdev,
|
pci_unmap_single (sp->pdev,
|
||||||
(dma_addr_t)rxdp3->Buffer2_ptr,
|
(dma_addr_t)rxdp3->Buffer2_ptr,
|
||||||
dev->mtu + 4, PCI_DMA_FROMDEVICE);
|
dev->mtu + 4, PCI_DMA_FROMDEVICE);
|
||||||
@@ -6933,8 +6923,7 @@ static int set_rxd_buffer_pointer(struct s2io_nic *sp, struct RxD_t *rxdp,
|
|||||||
rxdp3->Buffer1_ptr = *temp1 =
|
rxdp3->Buffer1_ptr = *temp1 =
|
||||||
pci_map_single(sp->pdev, ba->ba_1, BUF1_LEN,
|
pci_map_single(sp->pdev, ba->ba_1, BUF1_LEN,
|
||||||
PCI_DMA_FROMDEVICE);
|
PCI_DMA_FROMDEVICE);
|
||||||
if( (rxdp3->Buffer1_ptr == 0) ||
|
if (pci_dma_mapping_error(rxdp3->Buffer1_ptr)) {
|
||||||
(rxdp3->Buffer1_ptr == DMA_ERROR_CODE)) {
|
|
||||||
pci_unmap_single (sp->pdev,
|
pci_unmap_single (sp->pdev,
|
||||||
(dma_addr_t)rxdp3->Buffer0_ptr,
|
(dma_addr_t)rxdp3->Buffer0_ptr,
|
||||||
BUF0_LEN, PCI_DMA_FROMDEVICE);
|
BUF0_LEN, PCI_DMA_FROMDEVICE);
|
||||||
|
|||||||
@@ -75,10 +75,6 @@ static int debug_level = ERR_DBG;
|
|||||||
/* DEBUG message print. */
|
/* DEBUG message print. */
|
||||||
#define DBG_PRINT(dbg_level, args...) if(!(debug_level<dbg_level)) printk(args)
|
#define DBG_PRINT(dbg_level, args...) if(!(debug_level<dbg_level)) printk(args)
|
||||||
|
|
||||||
#ifndef DMA_ERROR_CODE
|
|
||||||
#define DMA_ERROR_CODE (~(dma_addr_t)0x0)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* Protocol assist features of the NIC */
|
/* Protocol assist features of the NIC */
|
||||||
#define L3_CKSUM_OK 0xFFFF
|
#define L3_CKSUM_OK 0xFFFF
|
||||||
#define L4_CKSUM_OK 0xFFFF
|
#define L4_CKSUM_OK 0xFFFF
|
||||||
|
|||||||
@@ -1394,6 +1394,7 @@ tc35815_open(struct net_device *dev)
|
|||||||
tc35815_chip_init(dev);
|
tc35815_chip_init(dev);
|
||||||
spin_unlock_irq(&lp->lock);
|
spin_unlock_irq(&lp->lock);
|
||||||
|
|
||||||
|
netif_carrier_off(dev);
|
||||||
/* schedule a link state check */
|
/* schedule a link state check */
|
||||||
phy_start(lp->phy_dev);
|
phy_start(lp->phy_dev);
|
||||||
|
|
||||||
@@ -1735,7 +1736,6 @@ tc35815_rx(struct net_device *dev)
|
|||||||
skb = lp->rx_skbs[cur_bd].skb;
|
skb = lp->rx_skbs[cur_bd].skb;
|
||||||
prefetch(skb->data);
|
prefetch(skb->data);
|
||||||
lp->rx_skbs[cur_bd].skb = NULL;
|
lp->rx_skbs[cur_bd].skb = NULL;
|
||||||
lp->fbl_count--;
|
|
||||||
pci_unmap_single(lp->pci_dev,
|
pci_unmap_single(lp->pci_dev,
|
||||||
lp->rx_skbs[cur_bd].skb_dma,
|
lp->rx_skbs[cur_bd].skb_dma,
|
||||||
RX_BUF_SIZE, PCI_DMA_FROMDEVICE);
|
RX_BUF_SIZE, PCI_DMA_FROMDEVICE);
|
||||||
@@ -1791,6 +1791,7 @@ tc35815_rx(struct net_device *dev)
|
|||||||
#ifdef TC35815_USE_PACKEDBUFFER
|
#ifdef TC35815_USE_PACKEDBUFFER
|
||||||
while (lp->fbl_curid != id)
|
while (lp->fbl_curid != id)
|
||||||
#else
|
#else
|
||||||
|
lp->fbl_count--;
|
||||||
while (lp->fbl_count < RX_BUF_NUM)
|
while (lp->fbl_count < RX_BUF_NUM)
|
||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
@@ -2453,6 +2454,7 @@ static int tc35815_resume(struct pci_dev *pdev)
|
|||||||
return 0;
|
return 0;
|
||||||
pci_set_power_state(pdev, PCI_D0);
|
pci_set_power_state(pdev, PCI_D0);
|
||||||
tc35815_restart(dev);
|
tc35815_restart(dev);
|
||||||
|
netif_carrier_off(dev);
|
||||||
if (lp->phy_dev)
|
if (lp->phy_dev)
|
||||||
phy_start(lp->phy_dev);
|
phy_start(lp->phy_dev);
|
||||||
netif_device_attach(dev);
|
netif_device_attach(dev);
|
||||||
|
|||||||
@@ -32,6 +32,7 @@
|
|||||||
#include <linux/x25.h>
|
#include <linux/x25.h>
|
||||||
#include <linux/lapb.h>
|
#include <linux/lapb.h>
|
||||||
#include <linux/init.h>
|
#include <linux/init.h>
|
||||||
|
#include <linux/rtnetlink.h>
|
||||||
#include "x25_asy.h"
|
#include "x25_asy.h"
|
||||||
|
|
||||||
#include <net/x25device.h>
|
#include <net/x25device.h>
|
||||||
@@ -601,8 +602,10 @@ static void x25_asy_close_tty(struct tty_struct *tty)
|
|||||||
if (!sl || sl->magic != X25_ASY_MAGIC)
|
if (!sl || sl->magic != X25_ASY_MAGIC)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
rtnl_lock();
|
||||||
if (sl->dev->flags & IFF_UP)
|
if (sl->dev->flags & IFF_UP)
|
||||||
dev_close(sl->dev);
|
dev_close(sl->dev);
|
||||||
|
rtnl_unlock();
|
||||||
|
|
||||||
tty->disc_data = NULL;
|
tty->disc_data = NULL;
|
||||||
sl->tty = NULL;
|
sl->tty = NULL;
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user