···928928 The module will be called smc91x. If you want to compile it as a929929 module, say M here and read <file:Documentation/kbuild/modules.txt>.930930931931+config PXA168_ETH932932+ tristate "Marvell pxa168 ethernet support"933933+ depends on CPU_PXA168934934+ select PHYLIB935935+ help936936+ This driver supports the pxa168 Ethernet ports.937937+938938+ To compile this driver as a module, choose M here. The module939939+ will be called pxa168_eth.940940+931941config NET_NETX932942 tristate "NetX Ethernet support"933943 select MII
···2020 * (you will need to reboot afterwards) */2121/* #define BNX2X_STOP_ON_ERROR */22222323-#define DRV_MODULE_VERSION "1.52.53-3"2424-#define DRV_MODULE_RELDATE "2010/18/04"2323+#define DRV_MODULE_VERSION "1.52.53-4"2424+#define DRV_MODULE_RELDATE "2010/16/08"2525#define BNX2X_BC_VER 0x04020026262727#if defined(CONFIG_VLAN_8021Q) || defined(CONFIG_VLAN_8021Q_MODULE)
+7-2
drivers/net/bnx2x/bnx2x_main.c
···43284328 val |= aeu_gpio_mask;43294329 REG_WR(bp, offset, val);43304330 }43314331+ bp->port.need_hw_lock = 1;43314332 break;4332433343334333- case PORT_HW_CFG_XGXS_EXT_PHY_TYPE_SFX7101:43344334 case PORT_HW_CFG_XGXS_EXT_PHY_TYPE_BCM8727:43354335+ bp->port.need_hw_lock = 1;43364336+ case PORT_HW_CFG_XGXS_EXT_PHY_TYPE_SFX7101:43354337 /* add SPIO 5 to group 0 */43364338 {43374339 u32 reg_addr = (port ? MISC_REG_AEU_ENABLE1_FUNC_1_OUT_0 :···43434341 REG_WR(bp, reg_addr, val);43444342 }43454343 break;43464346-43444344+ case PORT_HW_CFG_XGXS_EXT_PHY_TYPE_BCM8072:43454345+ case PORT_HW_CFG_XGXS_EXT_PHY_TYPE_BCM8073:43464346+ bp->port.need_hw_lock = 1;43474347+ break;43474348 default:43484349 break;43494350 }
+18-13
drivers/net/e1000e/82571.c
···936936 ew32(IMC, 0xffffffff);937937 icr = er32(ICR);938938939939- /* Install any alternate MAC address into RAR0 */940940- ret_val = e1000_check_alt_mac_addr_generic(hw);941941- if (ret_val)942942- return ret_val;939939+ if (hw->mac.type == e1000_82571) {940940+ /* Install any alternate MAC address into RAR0 */941941+ ret_val = e1000_check_alt_mac_addr_generic(hw);942942+ if (ret_val)943943+ return ret_val;943944944944- e1000e_set_laa_state_82571(hw, true);945945+ e1000e_set_laa_state_82571(hw, true);946946+ }945947946948 /* Reinitialize the 82571 serdes link state machine */947949 if (hw->phy.media_type == e1000_media_type_internal_serdes)···16201618{16211619 s32 ret_val = 0;1622162016231623- /*16241624- * If there's an alternate MAC address place it in RAR016251625- * so that it will override the Si installed default perm16261626- * address.16271627- */16281628- ret_val = e1000_check_alt_mac_addr_generic(hw);16291629- if (ret_val)16301630- goto out;16211621+ if (hw->mac.type == e1000_82571) {16221622+ /*16231623+ * If there's an alternate MAC address place it in RAR016241624+ * so that it will override the Si installed default perm16251625+ * address.16261626+ */16271627+ ret_val = e1000_check_alt_mac_addr_generic(hw);16281628+ if (ret_val)16291629+ goto out;16301630+ }1631163116321632 ret_val = e1000_read_mac_addr_generic(hw);16331633···18371833 | FLAG_HAS_SMART_POWER_DOWN18381834 | FLAG_HAS_AMT18391835 | FLAG_HAS_SWSM_ON_LOAD,18361836+ .flags2 = FLAG2_DISABLE_ASPM_L1,18401837 .pba = 20,18411838 .max_hw_frame_size = ETH_FRAME_LEN + ETH_FCS_LEN,18421839 .get_variants = e1000_get_variants_82571,
+4
drivers/net/e1000e/defines.h
···621621#define E1000_FLASH_UPDATES 2000622622623623/* NVM Word Offsets */624624+#define NVM_COMPAT 0x0003624625#define NVM_ID_LED_SETTINGS 0x0004625626#define NVM_INIT_CONTROL2_REG 0x000F626627#define NVM_INIT_CONTROL3_PORT_B 0x0014···643642644643/* Mask bits for fields in Word 0x1a of the NVM */645644#define NVM_WORD1A_ASPM_MASK 0x000C645645+646646+/* Mask bits for fields in Word 0x03 of the EEPROM */647647+#define NVM_COMPAT_LOM 0x0800646648647649/* For checksumming, the sum of all words in the NVM should equal 0xBABA. */648650#define NVM_SUM 0xBABA
+10
drivers/net/e1000e/lib.c
···183183 u16 offset, nvm_alt_mac_addr_offset, nvm_data;184184 u8 alt_mac_addr[ETH_ALEN];185185186186+ ret_val = e1000_read_nvm(hw, NVM_COMPAT, 1, &nvm_data);187187+ if (ret_val)188188+ goto out;189189+190190+ /* Check for LOM (vs. NIC) or one of two valid mezzanine cards */191191+ if (!((nvm_data & NVM_COMPAT_LOM) ||192192+ (hw->adapter->pdev->device == E1000_DEV_ID_82571EB_SERDES_DUAL) ||193193+ (hw->adapter->pdev->device == E1000_DEV_ID_82571EB_SERDES_QUAD)))194194+ goto out;195195+186196 ret_val = e1000_read_nvm(hw, NVM_ALT_MAC_ADDR_PTR, 1,187197 &nvm_alt_mac_addr_offset);188198 if (ret_val) {
···776776 return processed;777777}778778779779+#define SWQE_RESTART_CHECK 0xdeadbeaff00d0000ull780780+781781+static void reset_sq_restart_flag(struct ehea_port *port)782782+{783783+ int i;784784+785785+ for (i = 0; i < port->num_def_qps + port->num_add_tx_qps; i++) {786786+ struct ehea_port_res *pr = &port->port_res[i];787787+ pr->sq_restart_flag = 0;788788+ }789789+}790790+791791+static void check_sqs(struct ehea_port *port)792792+{793793+ struct ehea_swqe *swqe;794794+ int swqe_index;795795+ int i, k;796796+797797+ for (i = 0; i < port->num_def_qps + port->num_add_tx_qps; i++) {798798+ struct ehea_port_res *pr = &port->port_res[i];799799+ k = 0;800800+ swqe = ehea_get_swqe(pr->qp, &swqe_index);801801+ memset(swqe, 0, SWQE_HEADER_SIZE);802802+ atomic_dec(&pr->swqe_avail);803803+804804+ swqe->tx_control |= EHEA_SWQE_PURGE;805805+ swqe->wr_id = SWQE_RESTART_CHECK;806806+ swqe->tx_control |= EHEA_SWQE_SIGNALLED_COMPLETION;807807+ swqe->tx_control |= EHEA_SWQE_IMM_DATA_PRESENT;808808+ swqe->immediate_data_length = 80;809809+810810+ ehea_post_swqe(pr->qp, swqe);811811+812812+ while (pr->sq_restart_flag == 0) {813813+ msleep(5);814814+ if (++k == 100) {815815+ ehea_error("HW/SW queues out of sync");816816+ ehea_schedule_port_reset(pr->port);817817+ return;818818+ }819819+ }820820+ }821821+822822+ return;823823+}824824+825825+779826static struct ehea_cqe *ehea_proc_cqes(struct ehea_port_res *pr, int my_quota)780827{781828 struct sk_buff *skb;···840793841794 cqe_counter++;842795 rmb();796796+797797+ if (cqe->wr_id == SWQE_RESTART_CHECK) {798798+ pr->sq_restart_flag = 1;799799+ swqe_av++;800800+ break;801801+ }802802+843803 if (cqe->status & EHEA_CQE_STAT_ERR_MASK) {844804 ehea_error("Bad send completion status=0x%04X",845805 cqe->status);···27292675 int k = 0;27302676 while (atomic_read(&pr->swqe_avail) < swqe_max) {27312677 msleep(5);27322732- if (++k == 20)26782678+ if (++k == 20) {26792679+ ehea_error("WARNING: sq not flushed completely");27332680 break;26812681+ }27342682 }27352683 }27362684}···29732917 port_napi_disable(port);29742918 mutex_unlock(&port->port_lock);29752919 }29202920+ reset_sq_restart_flag(port);29762921 }2977292229782923 /* Unregister old memory region */···30082951 mutex_lock(&port->port_lock);30092952 port_napi_enable(port);30102953 ret = ehea_restart_qps(dev);29542954+ check_sqs(port);30112955 if (!ret)30122956 netif_wake_queue(dev);30132957 mutex_unlock(&port->port_lock);
+15-17
drivers/net/ibmveth.c
···11131113 struct ibmveth_adapter *adapter = netdev_priv(dev);11141114 struct vio_dev *viodev = adapter->vdev;11151115 int new_mtu_oh = new_mtu + IBMVETH_BUFF_OH;11161116- int i;11161116+ int i, rc;11171117+ int need_restart = 0;1117111811181119 if (new_mtu < IBMVETH_MAX_MTU)11191120 return -EINVAL;···1128112711291128 /* Deactivate all the buffer pools so that the next loop can activate11301129 only the buffer pools necessary to hold the new MTU */11311131- for (i = 0; i < IbmVethNumBufferPools; i++)11321132- if (adapter->rx_buff_pool[i].active) {11331133- ibmveth_free_buffer_pool(adapter,11341134- &adapter->rx_buff_pool[i]);11351135- adapter->rx_buff_pool[i].active = 0;11361136- }11301130+ if (netif_running(adapter->netdev)) {11311131+ need_restart = 1;11321132+ adapter->pool_config = 1;11331133+ ibmveth_close(adapter->netdev);11341134+ adapter->pool_config = 0;11351135+ }1137113611381137 /* Look for an active buffer pool that can hold the new MTU */11391138 for(i = 0; i<IbmVethNumBufferPools; i++) {11401139 adapter->rx_buff_pool[i].active = 1;1141114011421141 if (new_mtu_oh < adapter->rx_buff_pool[i].buff_size) {11431143- if (netif_running(adapter->netdev)) {11441144- adapter->pool_config = 1;11451145- ibmveth_close(adapter->netdev);11461146- adapter->pool_config = 0;11471147- dev->mtu = new_mtu;11481148- vio_cmo_set_dev_desired(viodev,11491149- ibmveth_get_desired_dma11501150- (viodev));11511151- return ibmveth_open(adapter->netdev);11521152- }11531142 dev->mtu = new_mtu;11541143 vio_cmo_set_dev_desired(viodev,11551144 ibmveth_get_desired_dma11561145 (viodev));11461146+ if (need_restart) {11471147+ return ibmveth_open(adapter->netdev);11481148+ }11571149 return 0;11581150 }11591151 }11521152+11531153+ if (need_restart && (rc = ibmveth_open(adapter->netdev)))11541154+ return rc;11551155+11601156 return -EINVAL;11611157}11621158
···245245{246246 int i;247247248248- wiphy_debug(ar->hw->wiphy, "qos queue stats\n");248248+ wiphy_debug(ar->hw->wiphy, "QoS queue stats\n");249249250250 for (i = 0; i < __AR9170_NUM_TXQ; i++)251251 wiphy_debug(ar->hw->wiphy,···387387 if (mac && compare_ether_addr(ieee80211_get_DA(hdr), mac)) {388388#ifdef AR9170_QUEUE_DEBUG389389 wiphy_debug(ar->hw->wiphy,390390- "skip frame => da %pm != %pm\n",390390+ "skip frame => DA %pM != %pM\n",391391 mac, ieee80211_get_DA(hdr));392392 ar9170_print_txheader(ar, skb);393393#endif /* AR9170_QUEUE_DEBUG */
-8
drivers/net/wireless/ipw2x00/ipw2100.c
···2723272327242724 packet = &priv->rx_buffers[i];2725272527262726- /* Sync the DMA for the STATUS buffer so CPU is sure to get27272727- * the correct values */27282728- pci_dma_sync_single_for_cpu(priv->pci_dev,27292729- sq->nic +27302730- sizeof(struct ipw2100_status) * i,27312731- sizeof(struct ipw2100_status),27322732- PCI_DMA_FROMDEVICE);27332733-27342726 /* Sync the DMA for the RX buffer so CPU is sure to get27352727 * the correct values */27362728 pci_dma_sync_single_for_cpu(priv->pci_dev, packet->dma_addr,
···11#ifndef _XT_IPVS_H22#define _XT_IPVS_H3344+#include <linux/types.h>55+46enum {57 XT_IPVS_IPVS_PROPERTY = 1 << 0, /* all other options imply this one */68 XT_IPVS_PROTO = 1 << 1,
+30
include/linux/pxa168_eth.h
···11+/*22+ *pxa168 ethernet platform device data definition file.33+ */44+#ifndef __LINUX_PXA168_ETH_H55+#define __LINUX_PXA168_ETH_H66+77+struct pxa168_eth_platform_data {88+ int port_number;99+ int phy_addr;1010+1111+ /*1212+ * If speed is 0, then speed and duplex are autonegotiated.1313+ */1414+ int speed; /* 0, SPEED_10, SPEED_100 */1515+ int duplex; /* DUPLEX_HALF or DUPLEX_FULL */1616+1717+ /*1818+ * Override default RX/TX queue sizes if nonzero.1919+ */2020+ int rx_queue_size;2121+ int tx_queue_size;2222+2323+ /*2424+ * init callback is used for board specific initialization2525+ * e.g on Aspenite its used to initialize the PHY transceiver.2626+ */2727+ int (*init)(void);2828+};2929+3030+#endif /* __LINUX_PXA168_ETH_H */
+2-1
net/8021q/vlan_dev.c
···510510 if (vlan->flags & VLAN_FLAG_GVRP)511511 vlan_gvrp_request_join(dev);512512513513- netif_carrier_on(dev);513513+ if (netif_carrier_ok(real_dev))514514+ netif_carrier_on(dev);514515 return 0;515516516517clear_allmulti:
···169169{170170 struct irlan_cb *self = netdev_priv(dev);171171 int ret;172172+ unsigned int len;172173173174 /* skb headroom large enough to contain all IrDA-headers? */174175 if ((skb_headroom(skb) < self->max_header_size) || (skb_shared(skb))) {···189188190189 dev->trans_start = jiffies;191190191191+ len = skb->len;192192 /* Now queue the packet in the transport layer */193193 if (self->use_udata)194194 ret = irttp_udata_request(self->tsap_data, skb);···211209 self->stats.tx_dropped++;212210 } else {213211 self->stats.tx_packets++;214214- self->stats.tx_bytes += skb->len;212212+ self->stats.tx_bytes += len;215213 }216214217215 return NETDEV_TX_OK;
+16-30
net/netlink/af_netlink.c
···14061406 struct netlink_sock *nlk = nlk_sk(sk);14071407 int noblock = flags&MSG_DONTWAIT;14081408 size_t copied;14091409- struct sk_buff *skb, *frag __maybe_unused = NULL;14091409+ struct sk_buff *skb, *data_skb;14101410 int err;1411141114121412 if (flags&MSG_OOB)···14181418 if (skb == NULL)14191419 goto out;1420142014211421+ data_skb = skb;14221422+14211423#ifdef CONFIG_COMPAT_NETLINK_MESSAGES14221424 if (unlikely(skb_shinfo(skb)->frag_list)) {14231423- bool need_compat = !!(flags & MSG_CMSG_COMPAT);14241424-14251425 /*14261426- * If this skb has a frag_list, then here that means that14271427- * we will have to use the frag_list skb for compat tasks14281428- * and the regular skb for non-compat tasks.14261426+ * If this skb has a frag_list, then here that means that we14271427+ * will have to use the frag_list skb's data for compat tasks14281428+ * and the regular skb's data for normal (non-compat) tasks.14291429 *14301430- * The skb might (and likely will) be cloned, so we can't14311431- * just reset frag_list and go on with things -- we need to14321432- * keep that. For the compat case that's easy -- simply get14331433- * a reference to the compat skb and free the regular one14341434- * including the frag. For the non-compat case, we need to14351435- * avoid sending the frag to the user -- so assign NULL but14361436- * restore it below before freeing the skb.14301430+ * If we need to send the compat skb, assign it to the14311431+ * 'data_skb' variable so that it will be used below for data14321432+ * copying. We keep 'skb' for everything else, including14331433+ * freeing both later.14371434 */14381438- if (need_compat) {14391439- struct sk_buff *compskb = skb_shinfo(skb)->frag_list;14401440- skb_get(compskb);14411441- kfree_skb(skb);14421442- skb = compskb;14431443- } else {14441444- frag = skb_shinfo(skb)->frag_list;14451445- skb_shinfo(skb)->frag_list = NULL;14461446- }14351435+ if (flags & MSG_CMSG_COMPAT)14361436+ data_skb = skb_shinfo(skb)->frag_list;14471437 }14481438#endif1449143914501440 msg->msg_namelen = 0;1451144114521452- copied = skb->len;14421442+ copied = data_skb->len;14531443 if (len < copied) {14541444 msg->msg_flags |= MSG_TRUNC;14551445 copied = len;14561446 }1457144714581458- skb_reset_transport_header(skb);14591459- err = skb_copy_datagram_iovec(skb, 0, msg->msg_iov, copied);14481448+ skb_reset_transport_header(data_skb);14491449+ err = skb_copy_datagram_iovec(data_skb, 0, msg->msg_iov, copied);1460145014611451 if (msg->msg_name) {14621452 struct sockaddr_nl *addr = (struct sockaddr_nl *)msg->msg_name;···14661476 }14671477 siocb->scm->creds = *NETLINK_CREDS(skb);14681478 if (flags & MSG_TRUNC)14691469- copied = skb->len;14701470-14711471-#ifdef CONFIG_COMPAT_NETLINK_MESSAGES14721472- skb_shinfo(skb)->frag_list = frag;14731473-#endif14791479+ copied = data_skb->len;1474148014751481 skb_free_datagram(sk, skb);14761482
+1-1
net/rds/recv.c
···297297int rds_notify_queue_get(struct rds_sock *rs, struct msghdr *msghdr)298298{299299 struct rds_notifier *notifier;300300- struct rds_rdma_notify cmsg;300300+ struct rds_rdma_notify cmsg = { 0 }; /* fill holes with zero */301301 unsigned int count = 0, max_messages = ~0U;302302 unsigned long flags;303303 LIST_HEAD(copy);