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 git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6
* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6: (46 commits) cnic: Fix NETDEV_UP event processing. uvesafb/connector: Disallow unpliviged users to send netlink packets pohmelfs/connector: Disallow unpliviged users to configure pohmelfs dst/connector: Disallow unpliviged users to configure dst dm/connector: Only process connector packages from privileged processes connector: Removed the destruct_data callback since it is always kfree_skb() connector/dm: Fixed a compilation warning connector: Provide the sender's credentials to the callback connector: Keep the skb in cn_callback_data e1000e/igb/ixgbe: Don't report an error if devices don't support AER net: Fix wrong sizeof net: splice() from tcp to pipe should take into account O_NONBLOCK net: Use sk_mark for routing lookup in more places sky2: irqname based on pci address skge: use unique IRQ name IPv4 TCP fails to send window scale option when window scale is zero net/ipv4/tcp.c: fix min() type mismatch warning Kconfig: STRIP: Remove stale bits of STRIP help text NET: mkiss: Fix typo tg3: Remove prev_vlan_tag from struct tx_ring_info ...
This commit is contained in:
@@ -34,7 +34,7 @@ static char cn_test_name[] = "cn_test";
|
||||
static struct sock *nls;
|
||||
static struct timer_list cn_test_timer;
|
||||
|
||||
static void cn_test_callback(struct cn_msg *msg)
|
||||
static void cn_test_callback(struct cn_msg *msg, struct netlink_skb_parms *nsp)
|
||||
{
|
||||
pr_info("%s: %lu: idx=%x, val=%x, seq=%u, ack=%u, len=%d: %s.\n",
|
||||
__func__, jiffies, msg->id.idx, msg->id.val,
|
||||
|
||||
@@ -23,7 +23,7 @@ handling, etc... The Connector driver allows any kernelspace agents to use
|
||||
netlink based networking for inter-process communication in a significantly
|
||||
easier way:
|
||||
|
||||
int cn_add_callback(struct cb_id *id, char *name, void (*callback) (void *));
|
||||
int cn_add_callback(struct cb_id *id, char *name, void (*callback) (struct cn_msg *, struct netlink_skb_parms *));
|
||||
void cn_netlink_send(struct cn_msg *msg, u32 __group, int gfp_mask);
|
||||
|
||||
struct cb_id
|
||||
@@ -53,15 +53,15 @@ struct cn_msg
|
||||
Connector interfaces.
|
||||
/*****************************************/
|
||||
|
||||
int cn_add_callback(struct cb_id *id, char *name, void (*callback) (void *));
|
||||
int cn_add_callback(struct cb_id *id, char *name, void (*callback) (struct cn_msg *, struct netlink_skb_parms *));
|
||||
|
||||
Registers new callback with connector core.
|
||||
|
||||
struct cb_id *id - unique connector's user identifier.
|
||||
It must be registered in connector.h for legal in-kernel users.
|
||||
char *name - connector's callback symbolic name.
|
||||
void (*callback) (void *) - connector's callback.
|
||||
Argument must be dereferenced to struct cn_msg *.
|
||||
void (*callback) (struct cn..) - connector's callback.
|
||||
cn_msg and the sender's credentials
|
||||
|
||||
|
||||
void cn_del_callback(struct cb_id *id);
|
||||
|
||||
@@ -381,7 +381,7 @@ int main(int argc, char **argv)
|
||||
memset(&hwtstamp, 0, sizeof(hwtstamp));
|
||||
strncpy(hwtstamp.ifr_name, interface, sizeof(hwtstamp.ifr_name));
|
||||
hwtstamp.ifr_data = (void *)&hwconfig;
|
||||
memset(&hwconfig, 0, sizeof(&hwconfig));
|
||||
memset(&hwconfig, 0, sizeof(hwconfig));
|
||||
hwconfig.tx_type =
|
||||
(so_timestamping_flags & SOF_TIMESTAMPING_TX_HARDWARE) ?
|
||||
HWTSTAMP_TX_ON : HWTSTAMP_TX_OFF;
|
||||
|
||||
@@ -78,18 +78,20 @@ void cn_queue_wrapper(struct work_struct *work)
|
||||
struct cn_callback_entry *cbq =
|
||||
container_of(work, struct cn_callback_entry, work);
|
||||
struct cn_callback_data *d = &cbq->data;
|
||||
struct cn_msg *msg = NLMSG_DATA(nlmsg_hdr(d->skb));
|
||||
struct netlink_skb_parms *nsp = &NETLINK_CB(d->skb);
|
||||
|
||||
d->callback(d->callback_priv);
|
||||
d->callback(msg, nsp);
|
||||
|
||||
d->destruct_data(d->ddata);
|
||||
d->ddata = NULL;
|
||||
kfree_skb(d->skb);
|
||||
d->skb = NULL;
|
||||
|
||||
kfree(d->free);
|
||||
}
|
||||
|
||||
static struct cn_callback_entry *
|
||||
cn_queue_alloc_callback_entry(char *name, struct cb_id *id,
|
||||
void (*callback)(struct cn_msg *))
|
||||
void (*callback)(struct cn_msg *, struct netlink_skb_parms *))
|
||||
{
|
||||
struct cn_callback_entry *cbq;
|
||||
|
||||
@@ -123,7 +125,7 @@ int cn_cb_equal(struct cb_id *i1, struct cb_id *i2)
|
||||
}
|
||||
|
||||
int cn_queue_add_callback(struct cn_queue_dev *dev, char *name, struct cb_id *id,
|
||||
void (*callback)(struct cn_msg *))
|
||||
void (*callback)(struct cn_msg *, struct netlink_skb_parms *))
|
||||
{
|
||||
struct cn_callback_entry *cbq, *__cbq;
|
||||
int found = 0;
|
||||
|
||||
@@ -129,21 +129,19 @@ EXPORT_SYMBOL_GPL(cn_netlink_send);
|
||||
/*
|
||||
* Callback helper - queues work and setup destructor for given data.
|
||||
*/
|
||||
static int cn_call_callback(struct cn_msg *msg, void (*destruct_data)(void *), void *data)
|
||||
static int cn_call_callback(struct sk_buff *skb)
|
||||
{
|
||||
struct cn_callback_entry *__cbq, *__new_cbq;
|
||||
struct cn_dev *dev = &cdev;
|
||||
struct cn_msg *msg = NLMSG_DATA(nlmsg_hdr(skb));
|
||||
int err = -ENODEV;
|
||||
|
||||
spin_lock_bh(&dev->cbdev->queue_lock);
|
||||
list_for_each_entry(__cbq, &dev->cbdev->queue_list, callback_entry) {
|
||||
if (cn_cb_equal(&__cbq->id.id, &msg->id)) {
|
||||
if (likely(!work_pending(&__cbq->work) &&
|
||||
__cbq->data.ddata == NULL)) {
|
||||
__cbq->data.callback_priv = msg;
|
||||
|
||||
__cbq->data.ddata = data;
|
||||
__cbq->data.destruct_data = destruct_data;
|
||||
__cbq->data.skb == NULL)) {
|
||||
__cbq->data.skb = skb;
|
||||
|
||||
if (queue_cn_work(__cbq, &__cbq->work))
|
||||
err = 0;
|
||||
@@ -156,10 +154,8 @@ static int cn_call_callback(struct cn_msg *msg, void (*destruct_data)(void *), v
|
||||
__new_cbq = kzalloc(sizeof(struct cn_callback_entry), GFP_ATOMIC);
|
||||
if (__new_cbq) {
|
||||
d = &__new_cbq->data;
|
||||
d->callback_priv = msg;
|
||||
d->skb = skb;
|
||||
d->callback = __cbq->data.callback;
|
||||
d->ddata = data;
|
||||
d->destruct_data = destruct_data;
|
||||
d->free = __new_cbq;
|
||||
|
||||
__new_cbq->pdev = __cbq->pdev;
|
||||
@@ -191,7 +187,6 @@ static int cn_call_callback(struct cn_msg *msg, void (*destruct_data)(void *), v
|
||||
*/
|
||||
static void cn_rx_skb(struct sk_buff *__skb)
|
||||
{
|
||||
struct cn_msg *msg;
|
||||
struct nlmsghdr *nlh;
|
||||
int err;
|
||||
struct sk_buff *skb;
|
||||
@@ -208,8 +203,7 @@ static void cn_rx_skb(struct sk_buff *__skb)
|
||||
return;
|
||||
}
|
||||
|
||||
msg = NLMSG_DATA(nlh);
|
||||
err = cn_call_callback(msg, (void (*)(void *))kfree_skb, skb);
|
||||
err = cn_call_callback(skb);
|
||||
if (err < 0)
|
||||
kfree_skb(skb);
|
||||
}
|
||||
@@ -270,7 +264,7 @@ static void cn_notify(struct cb_id *id, u32 notify_event)
|
||||
* May sleep.
|
||||
*/
|
||||
int cn_add_callback(struct cb_id *id, char *name,
|
||||
void (*callback)(struct cn_msg *))
|
||||
void (*callback)(struct cn_msg *, struct netlink_skb_parms *))
|
||||
{
|
||||
int err;
|
||||
struct cn_dev *dev = &cdev;
|
||||
@@ -352,7 +346,7 @@ static int cn_ctl_msg_equals(struct cn_ctl_msg *m1, struct cn_ctl_msg *m2)
|
||||
*
|
||||
* Used for notification of a request's processing.
|
||||
*/
|
||||
static void cn_callback(struct cn_msg *msg)
|
||||
static void cn_callback(struct cn_msg *msg, struct netlink_skb_parms *nsp)
|
||||
{
|
||||
struct cn_ctl_msg *ctl;
|
||||
struct cn_ctl_entry *ent;
|
||||
|
||||
@@ -129,11 +129,13 @@ static int fill_pkg(struct cn_msg *msg, struct dm_ulog_request *tfr)
|
||||
* This is the connector callback that delivers data
|
||||
* that was sent from userspace.
|
||||
*/
|
||||
static void cn_ulog_callback(void *data)
|
||||
static void cn_ulog_callback(struct cn_msg *msg, struct netlink_skb_parms *nsp)
|
||||
{
|
||||
struct cn_msg *msg = (struct cn_msg *)data;
|
||||
struct dm_ulog_request *tfr = (struct dm_ulog_request *)(msg + 1);
|
||||
|
||||
if (!cap_raised(nsp->eff_cap, CAP_SYS_ADMIN))
|
||||
return;
|
||||
|
||||
spin_lock(&receiving_list_lock);
|
||||
if (msg->len == 0)
|
||||
fill_pkg(msg, NULL);
|
||||
|
||||
+38
-39
@@ -805,52 +805,54 @@ static void poll_vortex(struct net_device *dev)
|
||||
|
||||
#ifdef CONFIG_PM
|
||||
|
||||
static int vortex_suspend(struct pci_dev *pdev, pm_message_t state)
|
||||
static int vortex_suspend(struct device *dev)
|
||||
{
|
||||
struct net_device *dev = pci_get_drvdata(pdev);
|
||||
struct pci_dev *pdev = to_pci_dev(dev);
|
||||
struct net_device *ndev = pci_get_drvdata(pdev);
|
||||
|
||||
if (!ndev || !netif_running(ndev))
|
||||
return 0;
|
||||
|
||||
netif_device_detach(ndev);
|
||||
vortex_down(ndev, 1);
|
||||
|
||||
if (dev && netdev_priv(dev)) {
|
||||
if (netif_running(dev)) {
|
||||
netif_device_detach(dev);
|
||||
vortex_down(dev, 1);
|
||||
disable_irq(dev->irq);
|
||||
}
|
||||
pci_save_state(pdev);
|
||||
pci_enable_wake(pdev, pci_choose_state(pdev, state), 0);
|
||||
pci_disable_device(pdev);
|
||||
pci_set_power_state(pdev, pci_choose_state(pdev, state));
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int vortex_resume(struct pci_dev *pdev)
|
||||
static int vortex_resume(struct device *dev)
|
||||
{
|
||||
struct net_device *dev = pci_get_drvdata(pdev);
|
||||
struct vortex_private *vp = netdev_priv(dev);
|
||||
struct pci_dev *pdev = to_pci_dev(dev);
|
||||
struct net_device *ndev = pci_get_drvdata(pdev);
|
||||
int err;
|
||||
|
||||
if (dev && vp) {
|
||||
pci_set_power_state(pdev, PCI_D0);
|
||||
pci_restore_state(pdev);
|
||||
err = pci_enable_device(pdev);
|
||||
if (err) {
|
||||
pr_warning("%s: Could not enable device\n",
|
||||
dev->name);
|
||||
return err;
|
||||
}
|
||||
pci_set_master(pdev);
|
||||
if (netif_running(dev)) {
|
||||
err = vortex_up(dev);
|
||||
if (err)
|
||||
return err;
|
||||
enable_irq(dev->irq);
|
||||
netif_device_attach(dev);
|
||||
}
|
||||
}
|
||||
if (!ndev || !netif_running(ndev))
|
||||
return 0;
|
||||
|
||||
err = vortex_up(ndev);
|
||||
if (err)
|
||||
return err;
|
||||
|
||||
netif_device_attach(ndev);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
#endif /* CONFIG_PM */
|
||||
static struct dev_pm_ops vortex_pm_ops = {
|
||||
.suspend = vortex_suspend,
|
||||
.resume = vortex_resume,
|
||||
.freeze = vortex_suspend,
|
||||
.thaw = vortex_resume,
|
||||
.poweroff = vortex_suspend,
|
||||
.restore = vortex_resume,
|
||||
};
|
||||
|
||||
#define VORTEX_PM_OPS (&vortex_pm_ops)
|
||||
|
||||
#else /* !CONFIG_PM */
|
||||
|
||||
#define VORTEX_PM_OPS NULL
|
||||
|
||||
#endif /* !CONFIG_PM */
|
||||
|
||||
#ifdef CONFIG_EISA
|
||||
static struct eisa_device_id vortex_eisa_ids[] = {
|
||||
@@ -3199,10 +3201,7 @@ static struct pci_driver vortex_driver = {
|
||||
.probe = vortex_init_one,
|
||||
.remove = __devexit_p(vortex_remove_one),
|
||||
.id_table = vortex_pci_tbl,
|
||||
#ifdef CONFIG_PM
|
||||
.suspend = vortex_suspend,
|
||||
.resume = vortex_resume,
|
||||
#endif
|
||||
.driver.pm = VORTEX_PM_OPS,
|
||||
};
|
||||
|
||||
|
||||
|
||||
@@ -1738,6 +1738,13 @@ config KS8851
|
||||
help
|
||||
SPI driver for Micrel KS8851 SPI attached network chip.
|
||||
|
||||
config KS8851_MLL
|
||||
tristate "Micrel KS8851 MLL"
|
||||
depends on HAS_IOMEM
|
||||
help
|
||||
This platform driver is for Micrel KS8851 Address/data bus
|
||||
multiplexed network chip.
|
||||
|
||||
config VIA_RHINE
|
||||
tristate "VIA Rhine support"
|
||||
depends on NET_PCI && PCI
|
||||
|
||||
@@ -89,6 +89,7 @@ obj-$(CONFIG_SKY2) += sky2.o
|
||||
obj-$(CONFIG_SKFP) += skfp/
|
||||
obj-$(CONFIG_KS8842) += ks8842.o
|
||||
obj-$(CONFIG_KS8851) += ks8851.o
|
||||
obj-$(CONFIG_KS8851_MLL) += ks8851_mll.o
|
||||
obj-$(CONFIG_VIA_RHINE) += via-rhine.o
|
||||
obj-$(CONFIG_VIA_VELOCITY) += via-velocity.o
|
||||
obj-$(CONFIG_ADAPTEC_STARFIRE) += starfire.o
|
||||
|
||||
@@ -90,7 +90,7 @@ static int do_mdio_op(struct bcm_enet_priv *priv, unsigned int data)
|
||||
if (enet_readl(priv, ENET_IR_REG) & ENET_IR_MII)
|
||||
break;
|
||||
udelay(1);
|
||||
} while (limit-- >= 0);
|
||||
} while (limit-- > 0);
|
||||
|
||||
return (limit < 0) ? 1 : 0;
|
||||
}
|
||||
|
||||
@@ -258,6 +258,7 @@ struct be_adapter {
|
||||
bool link_up;
|
||||
u32 port_num;
|
||||
bool promiscuous;
|
||||
u32 cap;
|
||||
};
|
||||
|
||||
extern const struct ethtool_ops be_ethtool_ops;
|
||||
|
||||
@@ -1068,7 +1068,7 @@ int be_cmd_get_flow_control(struct be_adapter *adapter, u32 *tx_fc, u32 *rx_fc)
|
||||
}
|
||||
|
||||
/* Uses mbox */
|
||||
int be_cmd_query_fw_cfg(struct be_adapter *adapter, u32 *port_num)
|
||||
int be_cmd_query_fw_cfg(struct be_adapter *adapter, u32 *port_num, u32 *cap)
|
||||
{
|
||||
struct be_mcc_wrb *wrb;
|
||||
struct be_cmd_req_query_fw_cfg *req;
|
||||
@@ -1088,6 +1088,7 @@ int be_cmd_query_fw_cfg(struct be_adapter *adapter, u32 *port_num)
|
||||
if (!status) {
|
||||
struct be_cmd_resp_query_fw_cfg *resp = embedded_payload(wrb);
|
||||
*port_num = le32_to_cpu(resp->phys_port);
|
||||
*cap = le32_to_cpu(resp->function_cap);
|
||||
}
|
||||
|
||||
spin_unlock(&adapter->mbox_lock);
|
||||
|
||||
@@ -760,7 +760,8 @@ extern int be_cmd_set_flow_control(struct be_adapter *adapter,
|
||||
u32 tx_fc, u32 rx_fc);
|
||||
extern int be_cmd_get_flow_control(struct be_adapter *adapter,
|
||||
u32 *tx_fc, u32 *rx_fc);
|
||||
extern int be_cmd_query_fw_cfg(struct be_adapter *adapter, u32 *port_num);
|
||||
extern int be_cmd_query_fw_cfg(struct be_adapter *adapter,
|
||||
u32 *port_num, u32 *cap);
|
||||
extern int be_cmd_reset_function(struct be_adapter *adapter);
|
||||
extern int be_process_mcc(struct be_adapter *adapter);
|
||||
extern int be_cmd_write_flashrom(struct be_adapter *adapter,
|
||||
|
||||
@@ -747,9 +747,16 @@ static void be_rx_compl_process(struct be_adapter *adapter,
|
||||
struct be_eth_rx_compl *rxcp)
|
||||
{
|
||||
struct sk_buff *skb;
|
||||
u32 vtp, vid;
|
||||
u32 vlanf, vid;
|
||||
u8 vtm;
|
||||
|
||||
vtp = AMAP_GET_BITS(struct amap_eth_rx_compl, vtp, rxcp);
|
||||
vlanf = AMAP_GET_BITS(struct amap_eth_rx_compl, vtp, rxcp);
|
||||
vtm = AMAP_GET_BITS(struct amap_eth_rx_compl, vtm, rxcp);
|
||||
|
||||
/* vlanf could be wrongly set in some cards.
|
||||
* ignore if vtm is not set */
|
||||
if ((adapter->cap == 0x400) && !vtm)
|
||||
vlanf = 0;
|
||||
|
||||
skb = netdev_alloc_skb(adapter->netdev, BE_HDR_LEN + NET_IP_ALIGN);
|
||||
if (!skb) {
|
||||
@@ -772,7 +779,7 @@ static void be_rx_compl_process(struct be_adapter *adapter,
|
||||
skb->protocol = eth_type_trans(skb, adapter->netdev);
|
||||
skb->dev = adapter->netdev;
|
||||
|
||||
if (vtp) {
|
||||
if (vlanf) {
|
||||
if (!adapter->vlan_grp || adapter->num_vlans == 0) {
|
||||
kfree_skb(skb);
|
||||
return;
|
||||
@@ -797,11 +804,18 @@ static void be_rx_compl_process_gro(struct be_adapter *adapter,
|
||||
struct be_eq_obj *eq_obj = &adapter->rx_eq;
|
||||
u32 num_rcvd, pkt_size, remaining, vlanf, curr_frag_len;
|
||||
u16 i, rxq_idx = 0, vid, j;
|
||||
u8 vtm;
|
||||
|
||||
num_rcvd = AMAP_GET_BITS(struct amap_eth_rx_compl, numfrags, rxcp);
|
||||
pkt_size = AMAP_GET_BITS(struct amap_eth_rx_compl, pktsize, rxcp);
|
||||
vlanf = AMAP_GET_BITS(struct amap_eth_rx_compl, vtp, rxcp);
|
||||
rxq_idx = AMAP_GET_BITS(struct amap_eth_rx_compl, fragndx, rxcp);
|
||||
vtm = AMAP_GET_BITS(struct amap_eth_rx_compl, vtm, rxcp);
|
||||
|
||||
/* vlanf could be wrongly set in some cards.
|
||||
* ignore if vtm is not set */
|
||||
if ((adapter->cap == 0x400) && !vtm)
|
||||
vlanf = 0;
|
||||
|
||||
skb = napi_get_frags(&eq_obj->napi);
|
||||
if (!skb) {
|
||||
@@ -2045,7 +2059,8 @@ static int be_hw_up(struct be_adapter *adapter)
|
||||
if (status)
|
||||
return status;
|
||||
|
||||
status = be_cmd_query_fw_cfg(adapter, &adapter->port_num);
|
||||
status = be_cmd_query_fw_cfg(adapter,
|
||||
&adapter->port_num, &adapter->cap);
|
||||
return status;
|
||||
}
|
||||
|
||||
|
||||
@@ -1182,6 +1182,7 @@ static ssize_t bonding_store_primary(struct device *d,
|
||||
": %s: Setting %s as primary slave.\n",
|
||||
bond->dev->name, slave->dev->name);
|
||||
bond->primary_slave = slave;
|
||||
strcpy(bond->params.primary, slave->dev->name);
|
||||
bond_select_active_slave(bond);
|
||||
goto out;
|
||||
}
|
||||
|
||||
+2
-1
@@ -2733,7 +2733,8 @@ static int cnic_netdev_event(struct notifier_block *this, unsigned long event,
|
||||
cnic_ulp_init(dev);
|
||||
else if (event == NETDEV_UNREGISTER)
|
||||
cnic_ulp_exit(dev);
|
||||
else if (event == NETDEV_UP) {
|
||||
|
||||
if (event == NETDEV_UP) {
|
||||
if (cnic_register_netdev(dev) != 0) {
|
||||
cnic_put(dev);
|
||||
goto done;
|
||||
|
||||
@@ -12,8 +12,8 @@
|
||||
#ifndef CNIC_IF_H
|
||||
#define CNIC_IF_H
|
||||
|
||||
#define CNIC_MODULE_VERSION "2.0.0"
|
||||
#define CNIC_MODULE_RELDATE "May 21, 2009"
|
||||
#define CNIC_MODULE_VERSION "2.0.1"
|
||||
#define CNIC_MODULE_RELDATE "Oct 01, 2009"
|
||||
|
||||
#define CNIC_ULP_RDMA 0
|
||||
#define CNIC_ULP_ISCSI 1
|
||||
|
||||
@@ -4982,12 +4982,7 @@ static int __devinit e1000_probe(struct pci_dev *pdev,
|
||||
goto err_pci_reg;
|
||||
|
||||
/* AER (Advanced Error Reporting) hooks */
|
||||
err = pci_enable_pcie_error_reporting(pdev);
|
||||
if (err) {
|
||||
dev_err(&pdev->dev, "pci_enable_pcie_error_reporting failed "
|
||||
"0x%x\n", err);
|
||||
/* non-fatal, continue */
|
||||
}
|
||||
pci_enable_pcie_error_reporting(pdev);
|
||||
|
||||
pci_set_master(pdev);
|
||||
/* PCI config space info */
|
||||
@@ -5263,7 +5258,6 @@ static void __devexit e1000_remove(struct pci_dev *pdev)
|
||||
{
|
||||
struct net_device *netdev = pci_get_drvdata(pdev);
|
||||
struct e1000_adapter *adapter = netdev_priv(netdev);
|
||||
int err;
|
||||
|
||||
/*
|
||||
* flush_scheduled work may reschedule our watchdog task, so
|
||||
@@ -5299,10 +5293,7 @@ static void __devexit e1000_remove(struct pci_dev *pdev)
|
||||
free_netdev(netdev);
|
||||
|
||||
/* AER disable */
|
||||
err = pci_disable_pcie_error_reporting(pdev);
|
||||
if (err)
|
||||
dev_err(&pdev->dev,
|
||||
"pci_disable_pcie_error_reporting failed 0x%x\n", err);
|
||||
pci_disable_pcie_error_reporting(pdev);
|
||||
|
||||
pci_disable_device(pdev);
|
||||
}
|
||||
|
||||
@@ -258,7 +258,7 @@ static void ax_bump(struct mkiss *ax)
|
||||
}
|
||||
if (ax->crcmode != CRC_MODE_SMACK && ax->crcauto) {
|
||||
printk(KERN_INFO
|
||||
"mkiss: %s: Switchting to crc-smack\n",
|
||||
"mkiss: %s: Switching to crc-smack\n",
|
||||
ax->dev->name);
|
||||
ax->crcmode = CRC_MODE_SMACK;
|
||||
}
|
||||
@@ -272,7 +272,7 @@ static void ax_bump(struct mkiss *ax)
|
||||
}
|
||||
if (ax->crcmode != CRC_MODE_FLEX && ax->crcauto) {
|
||||
printk(KERN_INFO
|
||||
"mkiss: %s: Switchting to crc-flexnet\n",
|
||||
"mkiss: %s: Switching to crc-flexnet\n",
|
||||
ax->dev->name);
|
||||
ax->crcmode = CRC_MODE_FLEX;
|
||||
}
|
||||
|
||||
@@ -1246,12 +1246,7 @@ static int __devinit igb_probe(struct pci_dev *pdev,
|
||||
if (err)
|
||||
goto err_pci_reg;
|
||||
|
||||
err = pci_enable_pcie_error_reporting(pdev);
|
||||
if (err) {
|
||||
dev_err(&pdev->dev, "pci_enable_pcie_error_reporting failed "
|
||||
"0x%x\n", err);
|
||||
/* non-fatal, continue */
|
||||
}
|
||||
pci_enable_pcie_error_reporting(pdev);
|
||||
|
||||
pci_set_master(pdev);
|
||||
pci_save_state(pdev);
|
||||
@@ -1628,7 +1623,6 @@ static void __devexit igb_remove(struct pci_dev *pdev)
|
||||
struct net_device *netdev = pci_get_drvdata(pdev);
|
||||
struct igb_adapter *adapter = netdev_priv(netdev);
|
||||
struct e1000_hw *hw = &adapter->hw;
|
||||
int err;
|
||||
|
||||
/* flush_scheduled work may reschedule our watchdog task, so
|
||||
* explicitly disable watchdog tasks from being rescheduled */
|
||||
@@ -1682,10 +1676,7 @@ static void __devexit igb_remove(struct pci_dev *pdev)
|
||||
|
||||
free_netdev(netdev);
|
||||
|
||||
err = pci_disable_pcie_error_reporting(pdev);
|
||||
if (err)
|
||||
dev_err(&pdev->dev,
|
||||
"pci_disable_pcie_error_reporting failed 0x%x\n", err);
|
||||
pci_disable_pcie_error_reporting(pdev);
|
||||
|
||||
pci_disable_device(pdev);
|
||||
}
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user