Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
David S. Miller [Wed, 19 Nov 2008 07:38:23 +0000 (23:38 -0800)]
Conflicts:

drivers/isdn/i4l/isdn_net.c
fs/cifs/connect.c

900 files changed:
Documentation/RCU/rculist_nulls.txt [new file with mode: 0644]
Documentation/feature-removal-schedule.txt
Documentation/networking/README.ipw2200
Documentation/networking/bonding.txt
Documentation/networking/dccp.txt
Documentation/networking/ip-sysctl.txt
Documentation/networking/regulatory.txt
Documentation/rfkill.txt
MAINTAINERS
arch/arm/mach-ixp4xx/fsg-setup.c
arch/arm/mach-ixp4xx/nas100d-setup.c
arch/arm/mach-ixp4xx/nslu2-setup.c
arch/sparc64/kernel/idprom.c
arch/um/drivers/net_kern.c
arch/xtensa/platforms/iss/network.c
drivers/firmware/iscsi_ibft.c
drivers/infiniband/core/sysfs.c
drivers/infiniband/hw/mthca/mthca_mcg.c
drivers/infiniband/hw/nes/nes.c
drivers/infiniband/hw/nes/nes_cm.c
drivers/infiniband/hw/nes/nes_nic.c
drivers/infiniband/hw/nes/nes_utils.c
drivers/infiniband/ulp/ipoib/ipoib.h
drivers/infiniband/ulp/ipoib/ipoib_cm.c
drivers/infiniband/ulp/ipoib/ipoib_main.c
drivers/infiniband/ulp/ipoib/ipoib_multicast.c
drivers/infiniband/ulp/iser/iser_verbs.c
drivers/infiniband/ulp/srp/ib_srp.c
drivers/isdn/i4l/isdn_net.c
drivers/isdn/i4l/isdn_net.h
drivers/media/dvb/b2c2/flexcop.c
drivers/media/dvb/bt8xx/dst.c
drivers/media/dvb/dm1105/dm1105.c
drivers/media/dvb/dvb-usb/dvb-usb-dvb.c
drivers/media/dvb/pluto2/pluto2.c
drivers/message/fusion/mptlan.c
drivers/net/3c501.c
drivers/net/3c503.c
drivers/net/3c505.c
drivers/net/3c507.c
drivers/net/3c509.c
drivers/net/3c515.c
drivers/net/3c523.c
drivers/net/3c527.c
drivers/net/3c59x.c
drivers/net/7990.c
drivers/net/8139cp.c
drivers/net/8139too.c
drivers/net/82596.c
drivers/net/Kconfig
drivers/net/Makefile
drivers/net/a2065.c
drivers/net/ac3200.c
drivers/net/acenic.c
drivers/net/amd8111e.c
drivers/net/apne.c
drivers/net/appletalk/cops.c
drivers/net/appletalk/ipddp.c
drivers/net/appletalk/ltpc.c
drivers/net/arcnet/arc-rawmode.c
drivers/net/arcnet/arc-rimi.c
drivers/net/arcnet/arcnet.c
drivers/net/arcnet/capmode.c
drivers/net/arcnet/com20020-isa.c
drivers/net/arcnet/com20020-pci.c
drivers/net/arcnet/com20020.c
drivers/net/arcnet/com90io.c
drivers/net/arcnet/com90xx.c
drivers/net/arcnet/rfc1051.c
drivers/net/arcnet/rfc1201.c
drivers/net/ariadne.c
drivers/net/arm/am79c961a.c
drivers/net/arm/at91_ether.c
drivers/net/arm/ep93xx_eth.c
drivers/net/arm/ether1.c
drivers/net/arm/ether3.c
drivers/net/arm/etherh.c
drivers/net/arm/ixp4xx_eth.c
drivers/net/at1700.c
drivers/net/atarilance.c
drivers/net/atl1e/atl1e_main.c
drivers/net/atlx/atl1.c
drivers/net/atlx/atl1.h
drivers/net/atlx/atl2.c
drivers/net/atlx/atl2.h
drivers/net/atlx/atlx.c
drivers/net/atp.c
drivers/net/au1000_eth.c
drivers/net/ax88796.c
drivers/net/b44.c
drivers/net/bfin_mac.c
drivers/net/bmac.c
drivers/net/bnx2.c
drivers/net/bnx2.h
drivers/net/bnx2x_main.c
drivers/net/bonding/Makefile
drivers/net/bonding/bond_3ad.c
drivers/net/bonding/bond_3ad.h
drivers/net/bonding/bond_alb.c
drivers/net/bonding/bond_ipv6.c [new file with mode: 0644]
drivers/net/bonding/bond_main.c
drivers/net/bonding/bond_sysfs.c
drivers/net/bonding/bonding.h
drivers/net/cassini.c
drivers/net/chelsio/cxgb2.c
drivers/net/chelsio/sge.c
drivers/net/cpmac.c
drivers/net/cris/eth_v10.c
drivers/net/cs89x0.c
drivers/net/cxgb3/cxgb3_main.c
drivers/net/cxgb3/sge.c
drivers/net/de600.c
drivers/net/de620.c
drivers/net/declance.c
drivers/net/defxx.c
drivers/net/depca.c
drivers/net/dl2k.c
drivers/net/dm9000.c
drivers/net/e100.c
drivers/net/e1000/e1000_main.c
drivers/net/e1000e/82571.c
drivers/net/e1000e/defines.h
drivers/net/e1000e/hw.h
drivers/net/e1000e/netdev.c
drivers/net/eepro.c
drivers/net/eepro100.c [deleted file]
drivers/net/eexpress.c
drivers/net/ehea/ehea.h
drivers/net/ehea/ehea_main.c
drivers/net/ehea/ehea_qmr.c
drivers/net/enc28j60.c
drivers/net/enic/enic_main.c
drivers/net/enic/enic_res.c
drivers/net/enic/vnic_dev.c
drivers/net/epic100.c
drivers/net/es3210.c
drivers/net/eth16i.c
drivers/net/ewrk3.c
drivers/net/fealnx.c
drivers/net/fec.c
drivers/net/fec_mpc52xx.c
drivers/net/forcedeth.c
drivers/net/fs_enet/fs_enet-main.c
drivers/net/gianfar.c
drivers/net/hamachi.c
drivers/net/hamradio/6pack.c
drivers/net/hamradio/baycom_epp.c
drivers/net/hamradio/bpqether.c
drivers/net/hamradio/dmascc.c
drivers/net/hamradio/hdlcdrv.c
drivers/net/hamradio/mkiss.c
drivers/net/hamradio/scc.c
drivers/net/hamradio/yam.c
drivers/net/hp-plus.c
drivers/net/hp.c
drivers/net/hp100.c
drivers/net/hydra.c
drivers/net/ibm_newemac/core.c
drivers/net/ibmlana.c
drivers/net/ibmveth.c
drivers/net/igb/igb_ethtool.c
drivers/net/igb/igb_main.c
drivers/net/ioc3-eth.c
drivers/net/ipg.c
drivers/net/irda/ali-ircc.c
drivers/net/irda/au1k_ir.c
drivers/net/irda/donauboe.c
drivers/net/irda/irda-usb.c
drivers/net/irda/kingsun-sir.c
drivers/net/irda/ks959-sir.c
drivers/net/irda/ksdazzle-sir.c
drivers/net/irda/mcs7780.c
drivers/net/irda/nsc-ircc.c
drivers/net/irda/pxaficp_ir.c
drivers/net/irda/sa1100_ir.c
drivers/net/irda/sir_dev.c
drivers/net/irda/stir4200.c
drivers/net/irda/via-ircc.c
drivers/net/irda/vlsi_ir.c
drivers/net/irda/w83977af_ir.c
drivers/net/isa-skeleton.c
drivers/net/iseries_veth.c
drivers/net/ixgb/ixgb_main.c
drivers/net/ixgbe/ixgbe.h
drivers/net/ixgbe/ixgbe_82598.c
drivers/net/ixgbe/ixgbe_ethtool.c
drivers/net/ixgbe/ixgbe_main.c
drivers/net/ixgbe/ixgbe_phy.c
drivers/net/ixgbe/ixgbe_phy.h
drivers/net/ixgbe/ixgbe_type.h
drivers/net/ixp2000/ixpdev.c
drivers/net/jazzsonic.c
drivers/net/jme.c
drivers/net/korina.c
drivers/net/lance.c
drivers/net/lib82596.c
drivers/net/lib8390.c
drivers/net/lne390.c
drivers/net/loopback.c
drivers/net/lp486e.c
drivers/net/mac89x0.c
drivers/net/macb.c
drivers/net/mace.c
drivers/net/macmace.c
drivers/net/macsonic.c
drivers/net/macvlan.c
drivers/net/meth.c
drivers/net/mlx4/en_rx.c
drivers/net/mlx4/mcg.c
drivers/net/mlx4/mlx4_en.h
drivers/net/mv643xx_eth.c
drivers/net/mvme147.c
drivers/net/myri10ge/myri10ge.c
drivers/net/myri_sbus.c
drivers/net/natsemi.c
drivers/net/ne-h8300.c
drivers/net/ne.c
drivers/net/ne2.c
drivers/net/ne2k-pci.c
drivers/net/ne3210.c
drivers/net/netconsole.c
drivers/net/netx-eth.c
drivers/net/netxen/netxen_nic_hw.c
drivers/net/netxen/netxen_nic_init.c
drivers/net/netxen/netxen_nic_main.c
drivers/net/netxen/netxen_nic_niu.c
drivers/net/ni5010.c
drivers/net/ni52.c
drivers/net/ni65.c
drivers/net/niu.c
drivers/net/ns83820.c
drivers/net/pasemi_mac.c
drivers/net/pasemi_mac_ethtool.c
drivers/net/pci-skeleton.c
drivers/net/pcmcia/3c574_cs.c
drivers/net/pcmcia/3c589_cs.c
drivers/net/pcmcia/axnet_cs.c
drivers/net/pcmcia/com20020_cs.c
drivers/net/pcmcia/fmvj18x_cs.c
drivers/net/pcmcia/nmclan_cs.c
drivers/net/pcmcia/pcnet_cs.c
drivers/net/pcmcia/smc91c92_cs.c
drivers/net/pcmcia/xirc2ps_cs.c
drivers/net/pcnet32.c
drivers/net/phy/Kconfig
drivers/net/phy/Makefile
drivers/net/phy/broadcom.c
drivers/net/phy/mdio-gpio.c [new file with mode: 0644]
drivers/net/phy/mdio-ofgpio.c [deleted file]
drivers/net/phy/mdio_bus.c
drivers/net/phy/phy.c
drivers/net/phy/phy_device.c
drivers/net/phy/smsc.c
drivers/net/plip.c
drivers/net/ppp_generic.c
drivers/net/pppoe.c
drivers/net/ps3_gelic_net.c
drivers/net/ps3_gelic_wireless.c
drivers/net/ps3_gelic_wireless.h
drivers/net/qla3xxx.c
drivers/net/qlge/qlge_main.c
drivers/net/r6040.c
drivers/net/r8169.c
drivers/net/rionet.c
drivers/net/rrunner.c
drivers/net/s2io.c
drivers/net/sb1000.c
drivers/net/sb1250-mac.c
drivers/net/sc92031.c
drivers/net/seeq8005.c
drivers/net/sfc/Kconfig
drivers/net/sfc/Makefile
drivers/net/sfc/boards.c
drivers/net/sfc/efx.c
drivers/net/sfc/efx.h
drivers/net/sfc/enum.h
drivers/net/sfc/ethtool.c
drivers/net/sfc/falcon.c
drivers/net/sfc/falcon_hwdefs.h
drivers/net/sfc/mdio_10g.c
drivers/net/sfc/mdio_10g.h
drivers/net/sfc/mtd.c [new file with mode: 0644]
drivers/net/sfc/net_driver.h
drivers/net/sfc/rx.c
drivers/net/sfc/sfe4001.c
drivers/net/sfc/spi.h
drivers/net/sfc/tenxpress.c
drivers/net/sfc/workarounds.h
drivers/net/sfc/xfp_phy.c
drivers/net/sgiseeq.c
drivers/net/sh_eth.c
drivers/net/sis190.c
drivers/net/sis900.c
drivers/net/skfp/skfddi.c
drivers/net/skge.c
drivers/net/sky2.c
drivers/net/slip.c
drivers/net/smc-mca.c
drivers/net/smc-ultra.c
drivers/net/smc-ultra32.c
drivers/net/smc911x.c
drivers/net/smc9194.c
drivers/net/smc91x.c
drivers/net/smsc911x.c [new file with mode: 0644]
drivers/net/smsc911x.h [new file with mode: 0644]
drivers/net/sonic.c
drivers/net/sonic.h
drivers/net/spider_net_ethtool.c
drivers/net/starfire.c
drivers/net/sun3_82586.c
drivers/net/sun3lance.c
drivers/net/sunbmac.c
drivers/net/sundance.c
drivers/net/sungem.c
drivers/net/sunhme.c
drivers/net/sunlance.c
drivers/net/sunqe.c
drivers/net/sunvnet.c
drivers/net/tc35815.c
drivers/net/tehuti.c
drivers/net/tg3.c
drivers/net/tg3.h
drivers/net/tlan.c
drivers/net/tokenring/3c359.c
drivers/net/tokenring/abyss.c
drivers/net/tokenring/ibmtr.c
drivers/net/tokenring/lanstreamer.c
drivers/net/tokenring/madgemc.c
drivers/net/tokenring/olympic.c
drivers/net/tokenring/proteon.c
drivers/net/tokenring/skisa.c
drivers/net/tokenring/smctr.c
drivers/net/tokenring/tms380tr.c
drivers/net/tokenring/tmspci.c
drivers/net/tsi108_eth.c
drivers/net/tulip/de2104x.c
drivers/net/tulip/de4x5.c
drivers/net/tulip/dmfe.c
drivers/net/tulip/eeprom.c
drivers/net/tulip/interrupt.c
drivers/net/tulip/tulip_core.c
drivers/net/tulip/uli526x.c
drivers/net/tulip/winbond-840.c
drivers/net/tulip/xircom_cb.c
drivers/net/tun.c
drivers/net/typhoon.c
drivers/net/ucc_geth.c
drivers/net/usb/catc.c
drivers/net/usb/mcs7830.c
drivers/net/usb/pegasus.c
drivers/net/usb/smsc95xx.c
drivers/net/usb/usbnet.c
drivers/net/veth.c
drivers/net/via-rhine.c
drivers/net/via-velocity.c
drivers/net/virtio_net.c
drivers/net/wan/cosa.c
drivers/net/wan/cycx_x25.c
drivers/net/wan/dlci.c
drivers/net/wan/dscc4.c
drivers/net/wan/farsync.c
drivers/net/wan/hd6457x.c
drivers/net/wan/hostess_sv11.c
drivers/net/wan/lapbether.c
drivers/net/wan/lmc/lmc_main.c
drivers/net/wan/lmc/lmc_proto.c
drivers/net/wan/pc300too.c
drivers/net/wan/pci200syn.c
drivers/net/wan/sbni.c
drivers/net/wan/sdla.c
drivers/net/wan/sealevel.c
drivers/net/wan/syncppp.c
drivers/net/wan/wanxl.c
drivers/net/wan/x25_asy.c
drivers/net/wd.c
drivers/net/wireless/Kconfig
drivers/net/wireless/Makefile
drivers/net/wireless/adm8211.c
drivers/net/wireless/adm8211.h
drivers/net/wireless/airo.c
drivers/net/wireless/arlan-main.c
drivers/net/wireless/ath5k/ath5k.h
drivers/net/wireless/ath5k/base.c
drivers/net/wireless/ath5k/dma.c
drivers/net/wireless/ath5k/initvals.c
drivers/net/wireless/ath5k/pcu.c
drivers/net/wireless/ath5k/phy.c
drivers/net/wireless/ath5k/qcu.c
drivers/net/wireless/ath5k/reg.h
drivers/net/wireless/ath5k/reset.c
drivers/net/wireless/ath9k/Makefile
drivers/net/wireless/ath9k/ani.c [new file with mode: 0644]
drivers/net/wireless/ath9k/ath9k.h
drivers/net/wireless/ath9k/beacon.c
drivers/net/wireless/ath9k/calib.c [new file with mode: 0644]
drivers/net/wireless/ath9k/core.c
drivers/net/wireless/ath9k/core.h
drivers/net/wireless/ath9k/eeprom.c [new file with mode: 0644]
drivers/net/wireless/ath9k/hw.c
drivers/net/wireless/ath9k/hw.h
drivers/net/wireless/ath9k/mac.c [new file with mode: 0644]
drivers/net/wireless/ath9k/main.c
drivers/net/wireless/ath9k/phy.c
drivers/net/wireless/ath9k/rc.c
drivers/net/wireless/ath9k/rc.h
drivers/net/wireless/ath9k/recv.c
drivers/net/wireless/ath9k/xmit.c
drivers/net/wireless/atmel.c
drivers/net/wireless/b43/b43.h
drivers/net/wireless/b43/dma.c
drivers/net/wireless/b43/main.c
drivers/net/wireless/b43/pio.c
drivers/net/wireless/b43/xmit.c
drivers/net/wireless/b43/xmit.h
drivers/net/wireless/b43legacy/dma.c
drivers/net/wireless/b43legacy/main.c
drivers/net/wireless/b43legacy/pio.c
drivers/net/wireless/b43legacy/xmit.c
drivers/net/wireless/b43legacy/xmit.h
drivers/net/wireless/hostap/hostap_80211_rx.c
drivers/net/wireless/hostap/hostap_80211_tx.c
drivers/net/wireless/hostap/hostap_ap.c
drivers/net/wireless/hostap/hostap_common.h
drivers/net/wireless/hostap/hostap_hw.c
drivers/net/wireless/hostap/hostap_info.c
drivers/net/wireless/hostap/hostap_ioctl.c
drivers/net/wireless/hostap/hostap_main.c
drivers/net/wireless/hostap/hostap_pci.c
drivers/net/wireless/hostap/hostap_proc.c
drivers/net/wireless/hostap/hostap_wlan.h
drivers/net/wireless/ipw2100.c
drivers/net/wireless/ipw2200.c
drivers/net/wireless/ipw2200.h
drivers/net/wireless/iwlwifi/Kconfig
drivers/net/wireless/iwlwifi/iwl-3945-commands.h
drivers/net/wireless/iwlwifi/iwl-3945-io.h
drivers/net/wireless/iwlwifi/iwl-3945-rs.c
drivers/net/wireless/iwlwifi/iwl-3945.c
drivers/net/wireless/iwlwifi/iwl-3945.h
drivers/net/wireless/iwlwifi/iwl-4965-hw.h
drivers/net/wireless/iwlwifi/iwl-4965.c
drivers/net/wireless/iwlwifi/iwl-5000-hw.h
drivers/net/wireless/iwlwifi/iwl-5000.c
drivers/net/wireless/iwlwifi/iwl-agn-rs.c
drivers/net/wireless/iwlwifi/iwl-agn-rs.h
drivers/net/wireless/iwlwifi/iwl-agn.c
drivers/net/wireless/iwlwifi/iwl-calib.c
drivers/net/wireless/iwlwifi/iwl-commands.h
drivers/net/wireless/iwlwifi/iwl-core.c
drivers/net/wireless/iwlwifi/iwl-core.h
drivers/net/wireless/iwlwifi/iwl-csr.h
drivers/net/wireless/iwlwifi/iwl-debug.h
drivers/net/wireless/iwlwifi/iwl-debugfs.c
drivers/net/wireless/iwlwifi/iwl-dev.h
drivers/net/wireless/iwlwifi/iwl-eeprom.c
drivers/net/wireless/iwlwifi/iwl-eeprom.h
drivers/net/wireless/iwlwifi/iwl-fh.h
drivers/net/wireless/iwlwifi/iwl-helpers.h
drivers/net/wireless/iwlwifi/iwl-io.h
drivers/net/wireless/iwlwifi/iwl-led.c
drivers/net/wireless/iwlwifi/iwl-power.c
drivers/net/wireless/iwlwifi/iwl-prph.h
drivers/net/wireless/iwlwifi/iwl-rfkill.c
drivers/net/wireless/iwlwifi/iwl-rx.c
drivers/net/wireless/iwlwifi/iwl-scan.c
drivers/net/wireless/iwlwifi/iwl-sta.c
drivers/net/wireless/iwlwifi/iwl-tx.c
drivers/net/wireless/iwlwifi/iwl3945-base.c
drivers/net/wireless/libertas/assoc.c
drivers/net/wireless/libertas/cmd.c
drivers/net/wireless/libertas/debugfs.c
drivers/net/wireless/libertas/decl.h
drivers/net/wireless/libertas/defs.h
drivers/net/wireless/libertas/dev.h
drivers/net/wireless/libertas/ethtool.c
drivers/net/wireless/libertas/main.c
drivers/net/wireless/libertas/persistcfg.c
drivers/net/wireless/libertas/scan.c
drivers/net/wireless/libertas/scan.h
drivers/net/wireless/libertas/tx.c
drivers/net/wireless/libertas/types.h
drivers/net/wireless/libertas/wext.c
drivers/net/wireless/libertas_tf/cmd.c
drivers/net/wireless/libertas_tf/if_usb.c
drivers/net/wireless/libertas_tf/main.c
drivers/net/wireless/mac80211_hwsim.c
drivers/net/wireless/netwave_cs.c
drivers/net/wireless/orinoco/Makefile [new file with mode: 0644]
drivers/net/wireless/orinoco/airport.c [moved from drivers/net/wireless/airport.c with 100% similarity]
drivers/net/wireless/orinoco/hermes.c [moved from drivers/net/wireless/hermes.c with 100% similarity]
drivers/net/wireless/orinoco/hermes.h [moved from drivers/net/wireless/hermes.h with 100% similarity]
drivers/net/wireless/orinoco/hermes_dld.c [moved from drivers/net/wireless/hermes_dld.c with 100% similarity]
drivers/net/wireless/orinoco/hermes_dld.h [moved from drivers/net/wireless/hermes_dld.h with 100% similarity]
drivers/net/wireless/orinoco/hermes_rid.h [moved from drivers/net/wireless/hermes_rid.h with 100% similarity]
drivers/net/wireless/orinoco/orinoco.c [moved from drivers/net/wireless/orinoco.c with 99% similarity]
drivers/net/wireless/orinoco/orinoco.h [moved from drivers/net/wireless/orinoco.h with 98% similarity]
drivers/net/wireless/orinoco/orinoco_cs.c [moved from drivers/net/wireless/orinoco_cs.c with 99% similarity]
drivers/net/wireless/orinoco/orinoco_nortel.c [moved from drivers/net/wireless/orinoco_nortel.c with 100% similarity]
drivers/net/wireless/orinoco/orinoco_pci.c [moved from drivers/net/wireless/orinoco_pci.c with 100% similarity]
drivers/net/wireless/orinoco/orinoco_pci.h [moved from drivers/net/wireless/orinoco_pci.h with 100% similarity]
drivers/net/wireless/orinoco/orinoco_plx.c [moved from drivers/net/wireless/orinoco_plx.c with 100% similarity]
drivers/net/wireless/orinoco/orinoco_tmd.c [moved from drivers/net/wireless/orinoco_tmd.c with 100% similarity]
drivers/net/wireless/orinoco/spectrum_cs.c [moved from drivers/net/wireless/spectrum_cs.c with 99% similarity]
drivers/net/wireless/p54/p54.h
drivers/net/wireless/p54/p54common.c
drivers/net/wireless/p54/p54common.h
drivers/net/wireless/p54/p54pci.c
drivers/net/wireless/p54/p54usb.c
drivers/net/wireless/prism54/isl_ioctl.c
drivers/net/wireless/ray_cs.c
drivers/net/wireless/rndis_wlan.c
drivers/net/wireless/rt2x00/rt2400pci.c
drivers/net/wireless/rt2x00/rt2400pci.h
drivers/net/wireless/rt2x00/rt2500pci.c
drivers/net/wireless/rt2x00/rt2500pci.h
drivers/net/wireless/rt2x00/rt2500usb.c
drivers/net/wireless/rt2x00/rt2500usb.h
drivers/net/wireless/rt2x00/rt2x00.h
drivers/net/wireless/rt2x00/rt2x00config.c
drivers/net/wireless/rt2x00/rt2x00debug.c
drivers/net/wireless/rt2x00/rt2x00debug.h
drivers/net/wireless/rt2x00/rt2x00dev.c
drivers/net/wireless/rt2x00/rt2x00lib.h
drivers/net/wireless/rt2x00/rt2x00mac.c
drivers/net/wireless/rt2x00/rt2x00pci.c
drivers/net/wireless/rt2x00/rt2x00pci.h
drivers/net/wireless/rt2x00/rt2x00queue.c
drivers/net/wireless/rt2x00/rt2x00queue.h
drivers/net/wireless/rt2x00/rt61pci.c
drivers/net/wireless/rt2x00/rt61pci.h
drivers/net/wireless/rt2x00/rt73usb.c
drivers/net/wireless/rt2x00/rt73usb.h
drivers/net/wireless/rtl8180_dev.c
drivers/net/wireless/rtl8187.h
drivers/net/wireless/rtl8187_dev.c
drivers/net/wireless/rtl8187_rtl8225.c
drivers/net/wireless/strip.c
drivers/net/wireless/wavelan.c
drivers/net/wireless/wavelan_cs.c
drivers/net/wireless/wl3501.h
drivers/net/wireless/wl3501_cs.c
drivers/net/wireless/zd1201.c
drivers/net/wireless/zd1211rw/zd_chip.c
drivers/net/wireless/zd1211rw/zd_mac.c
drivers/net/wireless/zd1211rw/zd_usb.c
drivers/net/xen-netfront.c
drivers/net/xtsonic.c
drivers/net/yellowfin.c
drivers/net/znet.c
drivers/net/zorro8390.c
drivers/s390/net/qeth_l2_main.c
drivers/scsi/iscsi_tcp.c
drivers/scsi/qla4xxx/ql4_os.c
drivers/usb/atm/cxacru.c
drivers/usb/atm/usbatm.c
drivers/usb/gadget/u_ether.c
drivers/uwb/wlp/eda.c
fs/afs/proc.c
fs/afs/server.c
fs/cifs/cifs_spnego.c
fs/cifs/connect.c
fs/lockd/host.c
fs/lockd/mon.c
fs/nfs/nfsroot.c
fs/nfs/super.c
fs/nfsd/nfs4state.c
fs/nfsd/nfsctl.c
fs/ocfs2/cluster/netdebug.c
fs/ocfs2/cluster/nodemanager.c
fs/ocfs2/cluster/tcp.c
include/linux/cgroup_subsys.h
include/linux/dccp.h
include/linux/ieee80211.h
include/linux/if.h
include/linux/in.h
include/linux/kernel.h
include/linux/list_nulls.h [new file with mode: 0644]
include/linux/mdio-gpio.h [new file with mode: 0644]
include/linux/netdevice.h
include/linux/nl80211.h
include/linux/pkt_cls.h
include/linux/rculist_nulls.h [new file with mode: 0644]
include/linux/skbuff.h
include/linux/smsc911x.h [new file with mode: 0644]
include/linux/sunrpc/svc_xprt.h
include/linux/virtio_net.h
include/linux/xfrm.h
include/net/cfg80211.h
include/net/dst.h
include/net/ieee80211.h
include/net/inet_hashtables.h
include/net/inet_timewait_sock.h
include/net/ip_vs.h
include/net/lib80211.h [new file with mode: 0644]
include/net/mac80211.h
include/net/ndisc.h
include/net/neighbour.h
include/net/net_namespace.h
include/net/netfilter/nf_conntrack_tuple.h
include/net/netlink.h
include/net/netns/ipv4.h
include/net/pkt_cls.h
include/net/sch_generic.h
include/net/sctp/sctp.h
include/net/sock.h
include/net/tcp.h
include/net/udp.h
include/net/udplite.h
include/net/wireless.h
include/net/xfrm.h
lib/vsprintf.c
net/802/tr.c
net/8021q/vlan.c
net/8021q/vlan.h
net/8021q/vlan_core.c
net/8021q/vlan_dev.c
net/Kconfig
net/appletalk/aarp.c
net/appletalk/ddp.c
net/appletalk/sysctl_net_atalk.c
net/atm/atm_sysfs.c
net/atm/br2684.c
net/atm/clip.c
net/atm/lec.c
net/atm/mpc.c
net/atm/mpoa_caches.c
net/ax25/sysctl_net_ax25.c
net/bluetooth/bnep/core.c
net/bluetooth/bnep/netdev.c
net/bluetooth/hci_sysfs.c
net/bridge/br_if.c
net/bridge/br_netfilter.c
net/bridge/br_sysfs_br.c
net/bridge/netfilter/ebt_log.c
net/core/datagram.c
net/core/dev.c
net/core/dst.c
net/core/fib_rules.c
net/core/flow.c
net/core/neighbour.c
net/core/net-sysfs.c
net/core/net_namespace.c
net/core/netpoll.c
net/core/pktgen.c
net/core/skbuff.c
net/core/sock.c
net/core/sysctl_net_core.c
net/dccp/ccid.c
net/dccp/ccid.h
net/dccp/ccids/ccid2.c
net/dccp/dccp.h
net/dccp/feat.c
net/dccp/feat.h
net/dccp/input.c
net/dccp/ipv4.c
net/dccp/ipv6.c
net/dccp/minisocks.c
net/dccp/options.c
net/dccp/output.c
net/dccp/probe.c
net/dccp/proto.c
net/dccp/sysctl.c
net/dccp/timer.c
net/decnet/dn_route.c
net/decnet/sysctl_net_decnet.c
net/dsa/slave.c
net/dsa/tag_dsa.c
net/dsa/tag_edsa.c
net/dsa/tag_trailer.c
net/ieee80211/Kconfig
net/ieee80211/ieee80211_crypt_ccmp.c
net/ieee80211/ieee80211_crypt_tkip.c
net/ieee80211/ieee80211_module.c
net/ieee80211/ieee80211_rx.c
net/ieee80211/ieee80211_wx.c
net/ipv4/af_inet.c
net/ipv4/ah4.c
net/ipv4/arp.c
net/ipv4/cipso_ipv4.c
net/ipv4/devinet.c
net/ipv4/esp4.c
net/ipv4/fib_frontend.c
net/ipv4/fib_hash.c
net/ipv4/fib_semantics.c
net/ipv4/fib_trie.c
net/ipv4/icmp.c
net/ipv4/igmp.c
net/ipv4/inet_connection_sock.c
net/ipv4/inet_diag.c
net/ipv4/inet_hashtables.c
net/ipv4/inet_timewait_sock.c
net/ipv4/inetpeer.c
net/ipv4/ip_forward.c
net/ipv4/ip_fragment.c
net/ipv4/ip_gre.c
net/ipv4/ip_input.c
net/ipv4/ip_output.c
net/ipv4/ip_sockglue.c
net/ipv4/ipcomp.c
net/ipv4/ipconfig.c
net/ipv4/ipip.c
net/ipv4/ipmr.c
net/ipv4/netfilter/arp_tables.c
net/ipv4/netfilter/ip_tables.c
net/ipv4/netfilter/ipt_CLUSTERIP.c
net/ipv4/netfilter/ipt_LOG.c
net/ipv4/netfilter/nf_conntrack_l3proto_ipv4.c
net/ipv4/netfilter/nf_conntrack_proto_icmp.c
net/ipv4/netfilter/nf_nat_h323.c
net/ipv4/netfilter/nf_nat_irc.c
net/ipv4/netfilter/nf_nat_rule.c
net/ipv4/netfilter/nf_nat_sip.c
net/ipv4/netfilter/nf_nat_snmp_basic.c
net/ipv4/raw.c
net/ipv4/route.c
net/ipv4/sysctl_net_ipv4.c
net/ipv4/tcp.c
net/ipv4/tcp_cubic.c
net/ipv4/tcp_input.c
net/ipv4/tcp_ipv4.c
net/ipv4/tcp_minisocks.c
net/ipv4/tcp_output.c
net/ipv4/tcp_probe.c
net/ipv4/tcp_timer.c
net/ipv4/tcp_yeah.c
net/ipv4/udp.c
net/ipv4/udp_impl.h
net/ipv4/udplite.c
net/ipv4/xfrm4_policy.c
net/ipv6/addrconf.c
net/ipv6/addrlabel.c
net/ipv6/ah6.c
net/ipv6/anycast.c
net/ipv6/esp6.c
net/ipv6/exthdrs.c
net/ipv6/icmp.c
net/ipv6/inet6_hashtables.c
net/ipv6/ip6_flowlabel.c
net/ipv6/ip6_output.c
net/ipv6/ip6mr.c
net/ipv6/ipcomp6.c
net/ipv6/mcast.c
net/ipv6/ndisc.c
net/ipv6/netfilter/ip6t_LOG.c
net/ipv6/netfilter/nf_conntrack_l3proto_ipv6.c
net/ipv6/netfilter/nf_conntrack_proto_icmpv6.c
net/ipv6/netfilter/nf_conntrack_reasm.c
net/ipv6/reassembly.c
net/ipv6/route.c
net/ipv6/sysctl_net_ipv6.c
net/ipv6/tcp_ipv6.c
net/ipv6/udp.c
net/ipv6/udp_impl.h
net/ipv6/udplite.c
net/ipv6/xfrm6_policy.c
net/ipx/sysctl_net_ipx.c
net/irda/irlan/irlan_client.c
net/irda/irlan/irlan_common.c
net/irda/irsysctl.c
net/llc/llc_proc.c
net/llc/sysctl_net_llc.c
net/mac80211/cfg.c
net/mac80211/debugfs.c
net/mac80211/debugfs_key.c
net/mac80211/debugfs_netdev.c
net/mac80211/debugfs_sta.c
net/mac80211/event.c
net/mac80211/ht.c
net/mac80211/ieee80211_i.h
net/mac80211/iface.c
net/mac80211/key.c
net/mac80211/main.c
net/mac80211/mesh.c
net/mac80211/mesh.h
net/mac80211/mesh_hwmp.c
net/mac80211/mesh_plink.c
net/mac80211/mlme.c
net/mac80211/rate.c
net/mac80211/rate.h
net/mac80211/rc80211_minstrel.c
net/mac80211/rc80211_minstrel.h
net/mac80211/rc80211_pid.h
net/mac80211/rc80211_pid_algo.c
net/mac80211/rc80211_pid_debugfs.c
net/mac80211/rx.c
net/mac80211/scan.c
net/mac80211/sta_info.c
net/mac80211/sta_info.h
net/mac80211/tkip.c
net/mac80211/tx.c
net/mac80211/util.c
net/mac80211/wep.c
net/mac80211/wep.h
net/mac80211/wext.c
net/mac80211/wme.c
net/mac80211/wpa.c
net/netfilter/ipvs/ip_vs_conn.c
net/netfilter/ipvs/ip_vs_core.c
net/netfilter/ipvs/ip_vs_ctl.c
net/netfilter/ipvs/ip_vs_dh.c
net/netfilter/ipvs/ip_vs_ftp.c
net/netfilter/ipvs/ip_vs_lblc.c
net/netfilter/ipvs/ip_vs_lblcr.c
net/netfilter/ipvs/ip_vs_lc.c
net/netfilter/ipvs/ip_vs_nq.c
net/netfilter/ipvs/ip_vs_proto.c
net/netfilter/ipvs/ip_vs_proto_ah_esp.c
net/netfilter/ipvs/ip_vs_proto_tcp.c
net/netfilter/ipvs/ip_vs_proto_udp.c
net/netfilter/ipvs/ip_vs_rr.c
net/netfilter/ipvs/ip_vs_sed.c
net/netfilter/ipvs/ip_vs_sh.c
net/netfilter/ipvs/ip_vs_sync.c
net/netfilter/ipvs/ip_vs_wlc.c
net/netfilter/ipvs/ip_vs_wrr.c
net/netfilter/ipvs/ip_vs_xmit.c
net/netfilter/nf_conntrack_acct.c
net/netfilter/nf_conntrack_ftp.c
net/netfilter/nf_conntrack_h323_main.c
net/netfilter/nf_conntrack_irc.c
net/netfilter/nf_conntrack_proto_generic.c
net/netfilter/nf_conntrack_proto_sctp.c
net/netfilter/nf_conntrack_proto_tcp.c
net/netfilter/nf_conntrack_proto_udp.c
net/netfilter/nf_conntrack_proto_udplite.c
net/netfilter/nf_conntrack_standalone.c
net/netfilter/xt_hashlimit.c
net/netfilter/xt_iprange.c
net/netfilter/xt_recent.c
net/netlabel/netlabel_addrlist.c
net/netlink/attr.c
net/netrom/sysctl_net_netrom.c
net/phonet/af_phonet.c
net/phonet/pep-gprs.c
net/phonet/sysctl.c
net/rfkill/rfkill-input.c
net/rfkill/rfkill-input.h
net/rfkill/rfkill.c
net/rose/sysctl_net_rose.c
net/rxrpc/af_rxrpc.c
net/rxrpc/ar-error.c
net/rxrpc/ar-local.c
net/rxrpc/ar-peer.c
net/rxrpc/ar-proc.c
net/rxrpc/ar-transport.c
net/rxrpc/rxkad.c
net/sched/Kconfig
net/sched/Makefile
net/sched/cls_cgroup.c [new file with mode: 0644]
net/sched/ematch.c
net/sched/sch_api.c
net/sched/sch_atm.c
net/sched/sch_blackhole.c
net/sched/sch_cbq.c
net/sched/sch_dsmark.c
net/sched/sch_fifo.c
net/sched/sch_generic.c
net/sched/sch_gred.c
net/sched/sch_hfsc.c
net/sched/sch_htb.c
net/sched/sch_multiq.c
net/sched/sch_netem.c
net/sched/sch_prio.c
net/sched/sch_red.c
net/sched/sch_sfq.c
net/sched/sch_tbf.c
net/sched/sch_teql.c
net/sctp/ipv6.c
net/sctp/protocol.c
net/sctp/sm_statefuns.c
net/sctp/socket.c
net/sctp/sysctl.c
net/socket.c
net/sunrpc/clnt.c
net/sunrpc/rpcb_clnt.c
net/sunrpc/svcauth_unix.c
net/sunrpc/svcsock.c
net/sunrpc/xprtrdma/svc_rdma_transport.c
net/sunrpc/xprtrdma/transport.c
net/sunrpc/xprtrdma/verbs.c
net/sunrpc/xprtsock.c
net/tipc/eth_media.c
net/tipc/name_table.c
net/unix/af_unix.c
net/unix/garbage.c
net/unix/sysctl_net_unix.c
net/wireless/Kconfig
net/wireless/Makefile
net/wireless/core.c
net/wireless/lib80211.c [new file with mode: 0644]
net/wireless/nl80211.c
net/wireless/reg.c
net/wireless/reg.h
net/wireless/util.c
net/x25/sysctl_net_x25.c
net/xfrm/xfrm_policy.c
net/xfrm/xfrm_state.c
net/xfrm/xfrm_user.c
security/selinux/avc.c
security/selinux/hooks.c

diff --git a/Documentation/RCU/rculist_nulls.txt b/Documentation/RCU/rculist_nulls.txt
new file mode 100644 (file)
index 0000000..239f542
--- /dev/null
@@ -0,0 +1,167 @@
+Using hlist_nulls to protect read-mostly linked lists and
+objects using SLAB_DESTROY_BY_RCU allocations.
+
+Please read the basics in Documentation/RCU/listRCU.txt
+
+Using special makers (called 'nulls') is a convenient way
+to solve following problem :
+
+A typical RCU linked list managing objects which are
+allocated with SLAB_DESTROY_BY_RCU kmem_cache can
+use following algos :
+
+1) Lookup algo
+--------------
+rcu_read_lock()
+begin:
+obj = lockless_lookup(key);
+if (obj) {
+  if (!try_get_ref(obj)) // might fail for free objects
+    goto begin;
+  /*
+   * Because a writer could delete object, and a writer could
+   * reuse these object before the RCU grace period, we
+   * must check key after geting the reference on object
+   */
+  if (obj->key != key) { // not the object we expected
+     put_ref(obj);
+     goto begin;
+   }
+}
+rcu_read_unlock();
+
+Beware that lockless_lookup(key) cannot use traditional hlist_for_each_entry_rcu()
+but a version with an additional memory barrier (smp_rmb())
+
+lockless_lookup(key)
+{
+   struct hlist_node *node, *next;
+   for (pos = rcu_dereference((head)->first);
+          pos && ({ next = pos->next; smp_rmb(); prefetch(next); 1; }) &&
+          ({ tpos = hlist_entry(pos, typeof(*tpos), member); 1; });
+          pos = rcu_dereference(next))
+      if (obj->key == key)
+         return obj;
+   return NULL;
+
+And note the traditional hlist_for_each_entry_rcu() misses this smp_rmb() :
+
+   struct hlist_node *node;
+   for (pos = rcu_dereference((head)->first);
+               pos && ({ prefetch(pos->next); 1; }) &&
+               ({ tpos = hlist_entry(pos, typeof(*tpos), member); 1; });
+               pos = rcu_dereference(pos->next))
+      if (obj->key == key)
+         return obj;
+   return NULL;
+}
+
+Quoting Corey Minyard :
+
+"If the object is moved from one list to another list in-between the
+ time the hash is calculated and the next field is accessed, and the
+ object has moved to the end of a new list, the traversal will not
+ complete properly on the list it should have, since the object will
+ be on the end of the new list and there's not a way to tell it's on a
+ new list and restart the list traversal.  I think that this can be
+ solved by pre-fetching the "next" field (with proper barriers) before
+ checking the key."
+
+2) Insert algo :
+----------------
+
+We need to make sure a reader cannot read the new 'obj->obj_next' value
+and previous value of 'obj->key'. Or else, an item could be deleted
+from a chain, and inserted into another chain. If new chain was empty
+before the move, 'next' pointer is NULL, and lockless reader can
+not detect it missed following items in original chain.
+
+/*
+ * Please note that new inserts are done at the head of list,
+ * not in the middle or end.
+ */
+obj = kmem_cache_alloc(...);
+lock_chain(); // typically a spin_lock()
+obj->key = key;
+atomic_inc(&obj->refcnt);
+/*
+ * we need to make sure obj->key is updated before obj->next
+ */
+smp_wmb();
+hlist_add_head_rcu(&obj->obj_node, list);
+unlock_chain(); // typically a spin_unlock()
+
+
+3) Remove algo
+--------------
+Nothing special here, we can use a standard RCU hlist deletion.
+But thanks to SLAB_DESTROY_BY_RCU, beware a deleted object can be reused
+very very fast (before the end of RCU grace period)
+
+if (put_last_reference_on(obj) {
+   lock_chain(); // typically a spin_lock()
+   hlist_del_init_rcu(&obj->obj_node);
+   unlock_chain(); // typically a spin_unlock()
+   kmem_cache_free(cachep, obj);
+}
+
+
+
+--------------------------------------------------------------------------
+With hlist_nulls we can avoid extra smp_rmb() in lockless_lookup()
+and extra smp_wmb() in insert function.
+
+For example, if we choose to store the slot number as the 'nulls'
+end-of-list marker for each slot of the hash table, we can detect
+a race (some writer did a delete and/or a move of an object
+to another chain) checking the final 'nulls' value if
+the lookup met the end of chain. If final 'nulls' value
+is not the slot number, then we must restart the lookup at
+the begining. If the object was moved to same chain,
+then the reader doesnt care : It might eventually
+scan the list again without harm.
+
+
+1) lookup algo
+
+ head = &table[slot];
+ rcu_read_lock();
+begin:
+ hlist_nulls_for_each_entry_rcu(obj, node, head, member) {
+   if (obj->key == key) {
+      if (!try_get_ref(obj)) // might fail for free objects
+         goto begin;
+      if (obj->key != key) { // not the object we expected
+         put_ref(obj);
+         goto begin;
+      }
+  goto out;
+ }
+/*
+ * if the nulls value we got at the end of this lookup is
+ * not the expected one, we must restart lookup.
+ * We probably met an item that was moved to another chain.
+ */
+ if (get_nulls_value(node) != slot)
+   goto begin;
+ obj = NULL;
+
+out:
+ rcu_read_unlock();
+
+2) Insert function :
+--------------------
+
+/*
+ * Please note that new inserts are done at the head of list,
+ * not in the middle or end.
+ */
+obj = kmem_cache_alloc(cachep);
+lock_chain(); // typically a spin_lock()
+obj->key = key;
+atomic_set(&obj->refcnt, 1);
+/*
+ * insert obj in RCU way (readers might be traversing chain)
+ */
+hlist_nulls_add_head_rcu(&obj->obj_node, list);
+unlock_chain(); // typically a spin_unlock()
index c28a2ac..77eb6b1 100644 (file)
@@ -120,13 +120,6 @@ Who:       Christoph Hellwig <hch@lst.de>
 
 ---------------------------
 
-What:   eepro100 network driver
-When:   January 2007
-Why:    replaced by the e100 driver
-Who:    Adrian Bunk <bunk@stusta.de>
-
----------------------------
-
 What:  Unused EXPORT_SYMBOL/EXPORT_SYMBOL_GPL exports
        (temporary transition config option provided until then)
        The transition config option will also be removed at the same time.
index 4f2a40f..80c7285 100644 (file)
@@ -147,7 +147,7 @@ Where the supported parameter are:
        driver.  If disabled, the driver will not attempt to scan 
        for and associate to a network until it has been configured with 
        one or more properties for the target network, for example configuring 
-       the network SSID.  Default is 1 (auto-associate)
+       the network SSID.  Default is 0 (do not auto-associate)
        
        Example: % modprobe ipw2200 associate=0
 
index 688dfe1..5ede747 100644 (file)
@@ -194,6 +194,48 @@ or, for backwards compatibility, the option value.  E.g.,
 
        The parameters are as follows:
 
+ad_select
+
+       Specifies the 802.3ad aggregation selection logic to use.  The
+       possible values and their effects are:
+
+       stable or 0
+
+               The active aggregator is chosen by largest aggregate
+               bandwidth.
+
+               Reselection of the active aggregator occurs only when all
+               slaves of the active aggregator are down or the active
+               aggregator has no slaves.
+
+               This is the default value.
+
+       bandwidth or 1
+
+               The active aggregator is chosen by largest aggregate
+               bandwidth.  Reselection occurs if:
+
+               - A slave is added to or removed from the bond
+
+               - Any slave's link state changes
+
+               - Any slave's 802.3ad association state changes
+
+               - The bond's adminstrative state changes to up
+
+       count or 2
+
+               The active aggregator is chosen by the largest number of
+               ports (slaves).  Reselection occurs as described under the
+               "bandwidth" setting, above.
+
+       The bandwidth and count selection policies permit failover of
+       802.3ad aggregations when partial failure of the active aggregator
+       occurs.  This keeps the aggregator with the highest availability
+       (either in bandwidth or in number of ports) active at all times.
+
+       This option was added in bonding version 3.4.0.
+
 arp_interval
 
        Specifies the ARP link monitoring frequency in milliseconds.
@@ -551,6 +593,16 @@ num_grat_arp
        affects only the active-backup mode.  This option was added for
        bonding version 3.3.0.
 
+num_unsol_na
+
+       Specifies the number of unsolicited IPv6 Neighbor Advertisements
+       to be issued after a failover event.  One unsolicited NA is issued
+       immediately after the failover.
+
+       The valid range is 0 - 255; the default value is 1.  This option
+       affects only the active-backup mode.  This option was added for
+       bonding version 3.4.0.
+
 primary
 
        A string (eth0, eth2, etc) specifying which slave is the
@@ -922,17 +974,19 @@ USERCTL=no
 NETMASK, NETWORK and BROADCAST) to match your network configuration.
 
        For later versions of initscripts, such as that found with Fedora
-7 and Red Hat Enterprise Linux version 5 (or later), it is possible, and,
-indeed, preferable, to specify the bonding options in the ifcfg-bond0
+7 (or later) and Red Hat Enterprise Linux version 5 (or later), it is possible,
+and, indeed, preferable, to specify the bonding options in the ifcfg-bond0
 file, e.g. a line of the format:
 
-BONDING_OPTS="mode=active-backup arp_interval=60 arp_ip_target=+192.168.1.254"
+BONDING_OPTS="mode=active-backup arp_interval=60 arp_ip_target=192.168.1.254"
 
        will configure the bond with the specified options.  The options
 specified in BONDING_OPTS are identical to the bonding module parameters
-except for the arp_ip_target field.  Each target should be included as a
-separate option and should be preceded by a '+' to indicate it should be
-added to the list of queried targets, e.g.,
+except for the arp_ip_target field when using versions of initscripts older
+than and 8.57 (Fedora 8) and 8.45.19 (Red Hat Enterprise Linux 5.2).  When
+using older versions each target should be included as a separate option and
+should be preceded by a '+' to indicate it should be added to the list of
+queried targets, e.g.,
 
        arp_ip_target=+192.168.1.1 arp_ip_target=+192.168.1.2
 
@@ -940,7 +994,7 @@ added to the list of queried targets, e.g.,
 options via BONDING_OPTS, it is not necessary to edit /etc/modules.conf or
 /etc/modprobe.conf.
 
-       For older versions of initscripts that do not support
+       For even older versions of initscripts that do not support
 BONDING_OPTS, it is necessary to edit /etc/modules.conf (or
 /etc/modprobe.conf, depending upon your distro) to load the bonding module
 with your desired options when the bond0 interface is brought up.  The
index 39131a3..43df448 100644 (file)
@@ -57,6 +57,10 @@ can be set before calling bind().
 DCCP_SOCKOPT_GET_CUR_MPS is read-only and retrieves the current maximum packet
 size (application payload size) in bytes, see RFC 4340, section 14.
 
+DCCP_SOCKOPT_AVAILABLE_CCIDS is also read-only and returns the list of CCIDs
+supported by the endpoint (see include/linux/dccp.h for symbolic constants).
+The caller needs to provide a sufficiently large (> 2) array of type uint8_t.
+
 DCCP_SOCKOPT_SERVER_TIMEWAIT enables the server (listening socket) to hold
 timewait state when closing the connection (RFC 4340, 8.3). The usual case is
 that the closing server sends a CloseReq, whereupon the client holds timewait
@@ -121,9 +125,6 @@ send_ndp = 1
 send_ackvec = 1
        Whether or not to send Ack Vector options (sec. 11.5).
 
-ack_ratio = 2
-       The default Ack Ratio (sec. 11.3) to use.
-
 tx_ccid = 2
        Default CCID for the sender-receiver half-connection.
 
index d849326..c771278 100644 (file)
@@ -27,6 +27,12 @@ min_adv_mss - INTEGER
        The advertised MSS depends on the first hop route MTU, but will
        never be lower than this setting.
 
+rt_cache_rebuild_count - INTEGER
+       The per net-namespace route cache emergency rebuild threshold.
+       Any net-namespace having its route cache rebuilt due to
+       a hash bucket chain being too long more than this many times
+       will have its route caching disabled
+
 IP Fragmentation:
 
 ipfrag_high_thresh - INTEGER
index a96989a..dcf3164 100644 (file)
@@ -131,11 +131,13 @@ are expected to do this during initialization.
 
        r = zd_reg2alpha2(mac->regdomain, alpha2);
        if (!r)
-               regulatory_hint(hw->wiphy, alpha2, NULL);
+               regulatory_hint(hw->wiphy, alpha2);
 
 Example code - drivers providing a built in regulatory domain:
 --------------------------------------------------------------
 
+[NOTE: This API is not currently available, it can be added when required]
+
 If you have regulatory information you can obtain from your
 driver and you *need* to use this we let you build a regulatory domain
 structure and pass it to the wireless core. To do this you should
@@ -167,7 +169,6 @@ struct ieee80211_regdomain mydriver_jp_regdom = {
 
 Then in some part of your code after your wiphy has been registered:
 
-       int r;
        struct ieee80211_regdomain *rd;
        int size_of_regd;
        int num_rules = mydriver_jp_regdom.n_reg_rules;
@@ -178,17 +179,12 @@ Then in some part of your code after your wiphy has been registered:
 
        rd = kzalloc(size_of_regd, GFP_KERNEL);
        if (!rd)
-       return -ENOMEM;
+               return -ENOMEM;
 
        memcpy(rd, &mydriver_jp_regdom, sizeof(struct ieee80211_regdomain));
 
-       for (i=0; i < num_rules; i++) {
-               memcpy(&rd->reg_rules[i], &mydriver_jp_regdom.reg_rules[i],
-                       sizeof(struct ieee80211_reg_rule));
-       }
-       r = regulatory_hint(hw->wiphy, NULL, rd);
-       if (r) {
-               kfree(rd);
-               return r;
-       }
-
+       for (i=0; i < num_rules; i++)
+               memcpy(&rd->reg_rules[i],
+                      &mydriver_jp_regdom.reg_rules[i],
+                      sizeof(struct ieee80211_reg_rule));
+       regulatory_struct_hint(rd);
index b65f079..4d3ee31 100644 (file)
@@ -191,12 +191,20 @@ Userspace input handlers (uevents) or kernel input handlers (rfkill-input):
          to tell the devices registered with the rfkill class to change
          their state (i.e. translates the input layer event into real
          action).
+
        * rfkill-input implements EPO by handling EV_SW SW_RFKILL_ALL 0
          (power off all transmitters) in a special way: it ignores any
          overrides and local state cache and forces all transmitters to the
          RFKILL_STATE_SOFT_BLOCKED state (including those which are already
-         supposed to be BLOCKED).  Note that the opposite event (power on all
-         transmitters) is handled normally.
+         supposed to be BLOCKED).
+       * rfkill EPO will remain active until rfkill-input receives an
+         EV_SW SW_RFKILL_ALL 1 event.  While the EPO is active, transmitters
+         are locked in the blocked state (rfkill will refuse to unblock them).
+       * rfkill-input implements different policies that the user can
+         select for handling EV_SW SW_RFKILL_ALL 1.  It will unlock rfkill,
+         and either do nothing (leave transmitters blocked, but now unlocked),
+         restore the transmitters to their state before the EPO, or unblock
+         them all.
 
 Userspace uevent handler or kernel platform-specific drivers hooked to the
 rfkill notifier chain:
@@ -331,11 +339,9 @@ class to get a sysfs interface :-)
 correct event for your switch/button.  These events are emergency power-off
 events when they are trying to turn the transmitters off.  An example of an
 input device which SHOULD generate *_RFKILL_ALL events is the wireless-kill
-switch in a laptop which is NOT a hotkey, but a real switch that kills radios
-in hardware, even if the O.S. has gone to lunch.  An example of an input device
-which SHOULD NOT generate *_RFKILL_ALL events by default, is any sort of hot
-key that does nothing by itself, as well as any hot key that is type-specific
-(e.g. the one for WLAN).
+switch in a laptop which is NOT a hotkey, but a real sliding/rocker switch.
+An example of an input device which SHOULD NOT generate *_RFKILL_ALL events by
+default, is any sort of hot key that is type-specific (e.g. the one for WLAN).
 
 
 3.1 Guidelines for wireless device drivers
index 627e4c8..b85cd25 100644 (file)
@@ -742,7 +742,7 @@ M:  jirislaby@gmail.com
 P:     Nick Kossifidis
 M:     mickflemm@gmail.com
 P:     Luis R. Rodriguez
-M:     mcgrof@gmail.com
+M:     lrodriguez@atheros.com
 P:     Bob Copeland
 M:     me@bobcopeland.com
 L:     linux-wireless@vger.kernel.org
@@ -1606,11 +1606,6 @@ L:       acpi4asus-user@lists.sourceforge.net
 W:     http://sourceforge.net/projects/acpi4asus
 S:     Maintained
 
-EEPRO100 NETWORK DRIVER
-P:     Andrey V. Savochkin
-M:     saw@saw.sw.com.sg
-S:     Maintained
-
 EFS FILESYSTEM
 W:     http://aeschi.ch.eu.org/efs/
 S:     Orphan
@@ -3903,6 +3898,12 @@ M:       mhoffman@lightlink.com
 L:     lm-sensors@lm-sensors.org
 S:     Maintained
 
+SMSC911x ETHERNET DRIVER
+P:     Steve Glendinning
+M:     steve.glendinning@smsc.com
+L:     netdev@vger.kernel.org
+S:     Supported
+
 SMX UIO Interface
 P:     Ben Nizette
 M:     bn@niasdigital.com
index e7c6386..5add22f 100644 (file)
@@ -177,7 +177,6 @@ static irqreturn_t fsg_reset_handler(int irq, void *dev_id)
 
 static void __init fsg_init(void)
 {
-       DECLARE_MAC_BUF(mac_buf);
        uint8_t __iomem *f;
 
        ixp4xx_sys_init();
@@ -256,10 +255,10 @@ static void __init fsg_init(void)
 #endif
                iounmap(f);
        }
-       printk(KERN_INFO "FSG: Using MAC address %s for port 0\n",
-              print_mac(mac_buf, fsg_plat_eth[0].hwaddr));
-       printk(KERN_INFO "FSG: Using MAC address %s for port 1\n",
-              print_mac(mac_buf, fsg_plat_eth[1].hwaddr));
+       printk(KERN_INFO "FSG: Using MAC address %pM for port 0\n",
+              fsg_plat_eth[0].hwaddr);
+       printk(KERN_INFO "FSG: Using MAC address %pM for port 1\n",
+              fsg_plat_eth[1].hwaddr);
 
 }
 
index 0acd95e..921c947 100644 (file)
@@ -231,7 +231,6 @@ static irqreturn_t nas100d_reset_handler(int irq, void *dev_id)
 
 static void __init nas100d_init(void)
 {
-       DECLARE_MAC_BUF(mac_buf);
        uint8_t __iomem *f;
        int i;
 
@@ -294,8 +293,8 @@ static void __init nas100d_init(void)
 #endif
                iounmap(f);
        }
-       printk(KERN_INFO "NAS100D: Using MAC address %s for port 0\n",
-              print_mac(mac_buf, nas100d_plat_eth[0].hwaddr));
+       printk(KERN_INFO "NAS100D: Using MAC address %pM for port 0\n",
+              nas100d_plat_eth[0].hwaddr);
 
 }
 
index bc9d920..ff6a08d 100644 (file)
@@ -220,7 +220,6 @@ static struct sys_timer nslu2_timer = {
 
 static void __init nslu2_init(void)
 {
-       DECLARE_MAC_BUF(mac_buf);
        uint8_t __iomem *f;
        int i;
 
@@ -275,8 +274,8 @@ static void __init nslu2_init(void)
 #endif
                iounmap(f);
        }
-       printk(KERN_INFO "NSLU2: Using MAC address %s for port 0\n",
-              print_mac(mac_buf, nslu2_plat_eth[0].hwaddr));
+       printk(KERN_INFO "NSLU2: Using MAC address %pM for port 0\n",
+              nslu2_plat_eth[0].hwaddr);
 
 }
 
index 5b45a80..a62ff83 100644 (file)
@@ -42,8 +42,5 @@ void __init idprom_init(void)
                            idprom->id_cksum, calc_idprom_cksum(idprom));
        }
 
-       printk("Ethernet address: %02x:%02x:%02x:%02x:%02x:%02x\n",
-              idprom->id_ethaddr[0], idprom->id_ethaddr[1],
-              idprom->id_ethaddr[2], idprom->id_ethaddr[3],
-              idprom->id_ethaddr[4], idprom->id_ethaddr[5]);
+       printk("Ethernet address: %pM\n", idprom->id_ethaddr);
 }
index 5b4ca8d..74f1a17 100644 (file)
@@ -418,12 +418,7 @@ static void eth_configure(int n, void *init, char *mac,
 
        setup_etheraddr(mac, device->mac, dev->name);
 
-       printk(KERN_INFO "Netdevice %d ", n);
-       printk("(%02x:%02x:%02x:%02x:%02x:%02x) ",
-              device->mac[0], device->mac[1],
-              device->mac[2], device->mac[3],
-              device->mac[4], device->mac[5]);
-       printk(": ");
+       printk(KERN_INFO "Netdevice %d (%pM) : ", n, device->mac);
 
        lp = dev->priv;
        /* This points to the transport private data. It's still clear, but we
index 11a20ad..87f47ca 100644 (file)
@@ -660,10 +660,7 @@ static int iss_net_configure(int index, char *init)
 
        printk(KERN_INFO "Netdevice %d ", index);
        if (lp->have_mac)
-               printk("(%02x:%02x:%02x:%02x:%02x:%02x) ",
-                               lp->mac[0], lp->mac[1],
-                               lp->mac[2], lp->mac[3],
-                               lp->mac[4], lp->mac[5]);
+               printk("(%pM) ", lp->mac);
        printk(": ");
 
        /* sysfs register */
index 4353414..3ab3e4a 100644 (file)
@@ -284,15 +284,12 @@ static ssize_t sprintf_ipaddr(char *buf, u8 *ip)
                /*
                 * IPV4
                 */
-               str += sprintf(buf, NIPQUAD_FMT, ip[12],
-                              ip[13], ip[14], ip[15]);
+               str += sprintf(buf, "%pI4", ip + 12);
        } else {
                /*
                 * IPv6
                 */
-               str += sprintf(str, NIP6_FMT, ntohs(ip[0]), ntohs(ip[1]),
-                              ntohs(ip[2]), ntohs(ip[3]), ntohs(ip[4]),
-                              ntohs(ip[5]), ntohs(ip[6]), ntohs(ip[7]));
+               str += sprintf(str, "%pI6", ip);
        }
        str += sprintf(str, "\n");
        return str - buf;
index 4d10421..4f4d1bb 100644 (file)
@@ -262,15 +262,7 @@ static ssize_t show_port_gid(struct ib_port *p, struct port_attribute *attr,
        if (ret)
                return ret;
 
-       return sprintf(buf, "%04x:%04x:%04x:%04x:%04x:%04x:%04x:%04x\n",
-                      be16_to_cpu(((__be16 *) gid.raw)[0]),
-                      be16_to_cpu(((__be16 *) gid.raw)[1]),
-                      be16_to_cpu(((__be16 *) gid.raw)[2]),
-                      be16_to_cpu(((__be16 *) gid.raw)[3]),
-                      be16_to_cpu(((__be16 *) gid.raw)[4]),
-                      be16_to_cpu(((__be16 *) gid.raw)[5]),
-                      be16_to_cpu(((__be16 *) gid.raw)[6]),
-                      be16_to_cpu(((__be16 *) gid.raw)[7]));
+       return sprintf(buf, "%pI6\n", gid.raw);
 }
 
 static ssize_t show_port_pkey(struct ib_port *p, struct port_attribute *attr,
index 3f5f948..d4c8105 100644 (file)
@@ -87,17 +87,7 @@ static int find_mgm(struct mthca_dev *dev,
        }
 
        if (0)
-               mthca_dbg(dev, "Hash for %04x:%04x:%04x:%04x:"
-                         "%04x:%04x:%04x:%04x is %04x\n",
-                         be16_to_cpu(((__be16 *) gid)[0]),
-                         be16_to_cpu(((__be16 *) gid)[1]),
-                         be16_to_cpu(((__be16 *) gid)[2]),
-                         be16_to_cpu(((__be16 *) gid)[3]),
-                         be16_to_cpu(((__be16 *) gid)[4]),
-                         be16_to_cpu(((__be16 *) gid)[5]),
-                         be16_to_cpu(((__be16 *) gid)[6]),
-                         be16_to_cpu(((__be16 *) gid)[7]),
-                         *hash);
+               mthca_dbg(dev, "Hash for %pI6 is %04x\n", gid, *hash);
 
        *index = *hash;
        *prev  = -1;
@@ -264,16 +254,7 @@ int mthca_multicast_detach(struct ib_qp *ibqp, union ib_gid *gid, u16 lid)
                goto out;
 
        if (index == -1) {
-               mthca_err(dev, "MGID %04x:%04x:%04x:%04x:%04x:%04x:%04x:%04x "
-                         "not found\n",
-                         be16_to_cpu(((__be16 *) gid->raw)[0]),
-                         be16_to_cpu(((__be16 *) gid->raw)[1]),
-                         be16_to_cpu(((__be16 *) gid->raw)[2]),
-                         be16_to_cpu(((__be16 *) gid->raw)[3]),
-                         be16_to_cpu(((__be16 *) gid->raw)[4]),
-                         be16_to_cpu(((__be16 *) gid->raw)[5]),
-                         be16_to_cpu(((__be16 *) gid->raw)[6]),
-                         be16_to_cpu(((__be16 *) gid->raw)[7]));
+               mthca_err(dev, "MGID %pI6 not found\n", gid->raw);
                err = -EINVAL;
                goto out;
        }
index aa1dc41..b9611ad 100644 (file)
@@ -142,14 +142,9 @@ static int nes_inetaddr_event(struct notifier_block *notifier,
        struct nes_device *nesdev;
        struct net_device *netdev;
        struct nes_vnic *nesvnic;
-       unsigned int addr;
-       unsigned int mask;
-
-       addr = ntohl(ifa->ifa_address);
-       mask = ntohl(ifa->ifa_mask);
-       nes_debug(NES_DBG_NETDEV, "nes_inetaddr_event: ip address " NIPQUAD_FMT
-                 ", netmask " NIPQUAD_FMT ".\n",
-                 HIPQUAD(addr), HIPQUAD(mask));
+
+       nes_debug(NES_DBG_NETDEV, "nes_inetaddr_event: ip address %pI4, netmask %pI4.\n",
+                 &ifa->ifa_address, &ifa->ifa_mask);
        list_for_each_entry(nesdev, &nes_dev_list, list) {
                nes_debug(NES_DBG_NETDEV, "Nesdev list entry = 0x%p. (%s)\n",
                                nesdev, nesdev->netdev[0]->name);
@@ -360,10 +355,8 @@ struct ib_qp *nes_get_qp(struct ib_device *device, int qpn)
  */
 static void nes_print_macaddr(struct net_device *netdev)
 {
-       DECLARE_MAC_BUF(mac);
-
-       nes_debug(NES_DBG_INIT, "%s: %s, IRQ %u\n",
-                 netdev->name, print_mac(mac, netdev->dev_addr), netdev->irq);
+       nes_debug(NES_DBG_INIT, "%s: %pM, IRQ %u\n",
+                 netdev->name, netdev->dev_addr, netdev->irq);
 }
 
 /**
index 2caf9da..2854a6f 100644 (file)
@@ -823,8 +823,8 @@ static struct nes_cm_node *find_node(struct nes_cm_core *cm_core,
        /* get a handle on the hte */
        hte = &cm_core->connected_nodes;
 
-       nes_debug(NES_DBG_CM, "Searching for an owner node: " NIPQUAD_FMT ":%x from core %p->%p\n",
-                 HIPQUAD(loc_addr), loc_port, cm_core, hte);
+       nes_debug(NES_DBG_CM, "Searching for an owner node: %pI4:%x from core %p->%p\n",
+                 &loc_addr, loc_port, cm_core, hte);
 
        /* walk list and find cm_node associated with this session ID */
        spin_lock_irqsave(&cm_core->ht_lock, flags);
@@ -873,8 +873,8 @@ static struct nes_cm_listener *find_listener(struct nes_cm_core *cm_core,
        }
        spin_unlock_irqrestore(&cm_core->listen_list_lock, flags);
 
-       nes_debug(NES_DBG_CM, "Unable to find listener for " NIPQUAD_FMT ":%x\n",
-                 HIPQUAD(dst_addr), dst_port);
+       nes_debug(NES_DBG_CM, "Unable to find listener for %pI4:%x\n",
+                 &dst_addr, dst_port);
 
        /* no listener */
        return NULL;
@@ -1027,7 +1027,6 @@ static int nes_addr_resolve_neigh(struct nes_vnic *nesvnic, u32 dst_ip)
        struct flowi fl;
        struct neighbour *neigh;
        int rc = -1;
-       DECLARE_MAC_BUF(mac);
 
        memset(&fl, 0, sizeof fl);
        fl.nl_u.ip4_u.daddr = htonl(dst_ip);
@@ -1041,8 +1040,8 @@ static int nes_addr_resolve_neigh(struct nes_vnic *nesvnic, u32 dst_ip)
        if (neigh) {
                if (neigh->nud_state & NUD_VALID) {
                        nes_debug(NES_DBG_CM, "Neighbor MAC address for 0x%08X"
-                                 " is %s, Gateway is 0x%08X \n", dst_ip,
-                                 print_mac(mac, neigh->ha), ntohl(rt->rt_gateway));
+                                 " is %pM, Gateway is 0x%08X \n", dst_ip,
+                                 neigh->ha, ntohl(rt->rt_gateway));
                        nes_manage_arp_cache(nesvnic->netdev, neigh->ha,
                                             dst_ip, NES_ARP_ADD);
                        rc = nes_arp_table(nesvnic->nesdev, dst_ip, NULL,
@@ -1071,7 +1070,6 @@ static struct nes_cm_node *make_cm_node(struct nes_cm_core *cm_core,
        int arpindex = 0;
        struct nes_device *nesdev;
        struct nes_adapter *nesadapter;
-       DECLARE_MAC_BUF(mac);
 
        /* create an hte and cm_node for this instance */
        cm_node = kzalloc(sizeof(*cm_node), GFP_ATOMIC);
@@ -1084,10 +1082,9 @@ static struct nes_cm_node *make_cm_node(struct nes_cm_core *cm_core,
        cm_node->loc_port = cm_info->loc_port;
        cm_node->rem_port = cm_info->rem_port;
        cm_node->send_write0 = send_first;
-       nes_debug(NES_DBG_CM, "Make node addresses : loc = " NIPQUAD_FMT
-                       ":%x, rem = " NIPQUAD_FMT ":%x\n",
-                       HIPQUAD(cm_node->loc_addr), cm_node->loc_port,
-                       HIPQUAD(cm_node->rem_addr), cm_node->rem_port);
+       nes_debug(NES_DBG_CM, "Make node addresses : loc = %pI4:%x, rem = %pI4:%x\n",
+                 &cm_node->loc_addr, cm_node->loc_port,
+                 &cm_node->rem_addr, cm_node->rem_port);
        cm_node->listener = listener;
        cm_node->netdev = nesvnic->netdev;
        cm_node->cm_id = cm_info->cm_id;
@@ -1137,8 +1134,8 @@ static struct nes_cm_node *make_cm_node(struct nes_cm_core *cm_core,
 
        /* copy the mac addr to node context */
        memcpy(cm_node->rem_mac, nesadapter->arp_table[arpindex].mac_addr, ETH_ALEN);
-       nes_debug(NES_DBG_CM, "Remote mac addr from arp table: %s\n",
-                 print_mac(mac, cm_node->rem_mac));
+       nes_debug(NES_DBG_CM, "Remote mac addr from arp table: %pM\n",
+                 cm_node->rem_mac);
 
        add_hte_node(cm_core, cm_node);
        atomic_inc(&cm_nodes_created);
@@ -2068,10 +2065,8 @@ static void mini_cm_recv_pkt(struct nes_cm_core *cm_core,
        nfo.rem_addr = ntohl(iph->saddr);
        nfo.rem_port = ntohs(tcph->source);
 
-       nes_debug(NES_DBG_CM, "Received packet: dest=" NIPQUAD_FMT
-                 ":0x%04X src=" NIPQUAD_FMT ":0x%04X\n",
-                 NIPQUAD(iph->daddr), tcph->dest,
-                 NIPQUAD(iph->saddr), tcph->source);
+       nes_debug(NES_DBG_CM, "Received packet: dest=%pI4:0x%04X src=%pI4:0x%04X\n",
+                 &iph->daddr, tcph->dest, &iph->saddr, tcph->source);
 
        do {
                cm_node = find_node(cm_core,
index 7303586..3c96203 100644 (file)
@@ -797,14 +797,13 @@ static int nes_netdev_set_mac_address(struct net_device *netdev, void *p)
        int i;
        u32 macaddr_low;
        u16 macaddr_high;
-       DECLARE_MAC_BUF(mac);
 
        if (!is_valid_ether_addr(mac_addr->sa_data))
                return -EADDRNOTAVAIL;
 
        memcpy(netdev->dev_addr, mac_addr->sa_data, netdev->addr_len);
-       printk(PFX "%s: Address length = %d, Address = %s\n",
-              __func__, netdev->addr_len, print_mac(mac, mac_addr->sa_data));
+       printk(PFX "%s: Address length = %d, Address = %pM\n",
+              __func__, netdev->addr_len, mac_addr->sa_data);
        macaddr_high  = ((u16)netdev->dev_addr[0]) << 8;
        macaddr_high += (u16)netdev->dev_addr[1];
        macaddr_low   = ((u32)netdev->dev_addr[2]) << 24;
@@ -909,9 +908,8 @@ static void nes_netdev_set_multicast_list(struct net_device *netdev)
                        if (mc_index >= max_pft_entries_avaiable)
                                break;
                        if (multicast_addr) {
-                               DECLARE_MAC_BUF(mac);
-                               nes_debug(NES_DBG_NIC_RX, "Assigning MC Address %s to register 0x%04X nic_idx=%d\n",
-                                         print_mac(mac, multicast_addr->dmi_addr),
+                               nes_debug(NES_DBG_NIC_RX, "Assigning MC Address %pM to register 0x%04X nic_idx=%d\n",
+                                         multicast_addr->dmi_addr,
                                          perfect_filter_register_address+(mc_index * 8),
                                          mc_nic_index);
                                macaddr_high  = ((u16)multicast_addr->dmi_addr[0]) << 8;
index fb8cbd7..9f16f7a 100644 (file)
@@ -679,9 +679,8 @@ int nes_arp_table(struct nes_device *nesdev, u32 ip_addr, u8 *mac_addr, u32 acti
 
        /* DELETE or RESOLVE */
        if (arp_index == nesadapter->arp_table_size) {
-               nes_debug(NES_DBG_NETDEV, "MAC for " NIPQUAD_FMT " not in ARP table - cannot %s\n",
-                         HIPQUAD(ip_addr),
-                         action == NES_ARP_RESOLVE ? "resolve" : "delete");
+               nes_debug(NES_DBG_NETDEV, "MAC for %pI4 not in ARP table - cannot %s\n",
+                         &ip_addr, action == NES_ARP_RESOLVE ? "resolve" : "delete");
                return -1;
        }
 
index e0c7dfa..753a983 100644 (file)
@@ -732,29 +732,6 @@ extern int ipoib_debug_level;
        do { (void) (priv); } while (0)
 #endif /* CONFIG_INFINIBAND_IPOIB_DEBUG_DATA */
 
-
-#define IPOIB_GID_FMT          "%2.2x%2.2x:%2.2x%2.2x:%2.2x%2.2x:%2.2x%2.2x:" \
-                               "%2.2x%2.2x:%2.2x%2.2x:%2.2x%2.2x:%2.2x%2.2x"
-
-#define IPOIB_GID_RAW_ARG(gid) ((u8 *)(gid))[0], \
-                               ((u8 *)(gid))[1], \
-                               ((u8 *)(gid))[2], \
-                               ((u8 *)(gid))[3], \
-                               ((u8 *)(gid))[4], \
-                               ((u8 *)(gid))[5], \
-                               ((u8 *)(gid))[6], \
-                               ((u8 *)(gid))[7], \
-                               ((u8 *)(gid))[8], \
-                               ((u8 *)(gid))[9], \
-                               ((u8 *)(gid))[10],\
-                               ((u8 *)(gid))[11],\
-                               ((u8 *)(gid))[12],\
-                               ((u8 *)(gid))[13],\
-                               ((u8 *)(gid))[14],\
-                               ((u8 *)(gid))[15]
-
-#define IPOIB_GID_ARG(gid)     IPOIB_GID_RAW_ARG((gid).raw)
-
 #define IPOIB_QPN(ha) (be32_to_cpup((__be32 *) ha) & 0xffffff)
 
 #endif /* _IPOIB_H */
index 7b14c2c..47d588b 100644 (file)
@@ -1128,8 +1128,8 @@ static int ipoib_cm_tx_init(struct ipoib_cm_tx *p, u32 qpn,
                goto err_send_cm;
        }
 
-       ipoib_dbg(priv, "Request connection 0x%x for gid " IPOIB_GID_FMT " qpn 0x%x\n",
-                 p->qp->qp_num, IPOIB_GID_ARG(pathrec->dgid), qpn);
+       ipoib_dbg(priv, "Request connection 0x%x for gid %pI6 qpn 0x%x\n",
+                 p->qp->qp_num, pathrec->dgid.raw, qpn);
 
        return 0;
 
@@ -1276,8 +1276,8 @@ void ipoib_cm_destroy_tx(struct ipoib_cm_tx *tx)
        if (test_and_clear_bit(IPOIB_FLAG_INITIALIZED, &tx->flags)) {
                list_move(&tx->list, &priv->cm.reap_list);
                queue_work(ipoib_workqueue, &priv->cm.reap_task);
-               ipoib_dbg(priv, "Reap connection for gid " IPOIB_GID_FMT "\n",
-                         IPOIB_GID_ARG(tx->neigh->dgid));
+               ipoib_dbg(priv, "Reap connection for gid %pI6\n",
+                         tx->neigh->dgid.raw);
                tx->neigh = NULL;
        }
 }
index 85257f6..19e06bc 100644 (file)
@@ -360,9 +360,9 @@ void ipoib_mark_paths_invalid(struct net_device *dev)
        spin_lock_irq(&priv->lock);
 
        list_for_each_entry_safe(path, tp, &priv->path_list, list) {
-               ipoib_dbg(priv, "mark path LID 0x%04x GID " IPOIB_GID_FMT " invalid\n",
+               ipoib_dbg(priv, "mark path LID 0x%04x GID %pI6 invalid\n",
                        be16_to_cpu(path->pathrec.dlid),
-                       IPOIB_GID_ARG(path->pathrec.dgid));
+                       path->pathrec.dgid.raw);
                path->valid =  0;
        }
 
@@ -414,11 +414,11 @@ static void path_rec_completion(int status,
        unsigned long flags;
 
        if (!status)
-               ipoib_dbg(priv, "PathRec LID 0x%04x for GID " IPOIB_GID_FMT "\n",
-                         be16_to_cpu(pathrec->dlid), IPOIB_GID_ARG(pathrec->dgid));
+               ipoib_dbg(priv, "PathRec LID 0x%04x for GID %pI6\n",
+                         be16_to_cpu(pathrec->dlid), pathrec->dgid.raw);
        else
-               ipoib_dbg(priv, "PathRec status %d for GID " IPOIB_GID_FMT "\n",
-                         status, IPOIB_GID_ARG(path->pathrec.dgid));
+               ipoib_dbg(priv, "PathRec status %d for GID %pI6\n",
+                         status, path->pathrec.dgid.raw);
 
        skb_queue_head_init(&skqueue);
 
@@ -528,8 +528,8 @@ static int path_rec_start(struct net_device *dev,
 {
        struct ipoib_dev_priv *priv = netdev_priv(dev);
 
-       ipoib_dbg(priv, "Start path record lookup for " IPOIB_GID_FMT "\n",
-                 IPOIB_GID_ARG(path->pathrec.dgid));
+       ipoib_dbg(priv, "Start path record lookup for %pI6\n",
+                 path->pathrec.dgid.raw);
 
        init_completion(&path->done);
 
@@ -766,12 +766,11 @@ static int ipoib_start_xmit(struct sk_buff *skb, struct net_device *dev)
 
                        if ((be16_to_cpup((__be16 *) skb->data) != ETH_P_ARP) &&
                            (be16_to_cpup((__be16 *) skb->data) != ETH_P_RARP)) {
-                               ipoib_warn(priv, "Unicast, no %s: type %04x, QPN %06x "
-                                          IPOIB_GID_FMT "\n",
+                               ipoib_warn(priv, "Unicast, no %s: type %04x, QPN %06x %pI6\n",
                                           skb->dst ? "neigh" : "dst",
                                           be16_to_cpup((__be16 *) skb->data),
                                           IPOIB_QPN(phdr->hwaddr),
-                                          IPOIB_GID_RAW_ARG(phdr->hwaddr + 4));
+                                          phdr->hwaddr + 4);
                                dev_kfree_skb_any(skb);
                                ++dev->stats.tx_dropped;
                                return NETDEV_TX_OK;
@@ -847,9 +846,9 @@ static void ipoib_neigh_cleanup(struct neighbour *n)
        else
                return;
        ipoib_dbg(priv,
-                 "neigh_cleanup for %06x " IPOIB_GID_FMT "\n",
+                 "neigh_cleanup for %06x %pI6\n",
                  IPOIB_QPN(n->ha),
-                 IPOIB_GID_RAW_ARG(n->ha + 4));
+                 n->ha + 4);
 
        spin_lock_irqsave(&priv->lock, flags);
 
index d9d1223..a2eb3b9 100644 (file)
@@ -71,9 +71,8 @@ static void ipoib_mcast_free(struct ipoib_mcast *mcast)
        struct ipoib_neigh *neigh, *tmp;
        int tx_dropped = 0;
 
-       ipoib_dbg_mcast(netdev_priv(dev),
-                       "deleting multicast group " IPOIB_GID_FMT "\n",
-                       IPOIB_GID_ARG(mcast->mcmember.mgid));
+       ipoib_dbg_mcast(netdev_priv(dev), "deleting multicast group %pI6\n",
+                       mcast->mcmember.mgid.raw);
 
        spin_lock_irq(&priv->lock);
 
@@ -205,9 +204,8 @@ static int ipoib_mcast_join_finish(struct ipoib_mcast *mcast,
 
        if (!test_bit(IPOIB_MCAST_FLAG_SENDONLY, &mcast->flags)) {
                if (test_and_set_bit(IPOIB_MCAST_FLAG_ATTACHED, &mcast->flags)) {
-                       ipoib_warn(priv, "multicast group " IPOIB_GID_FMT
-                                  " already attached\n",
-                                  IPOIB_GID_ARG(mcast->mcmember.mgid));
+                       ipoib_warn(priv, "multicast group %pI6 already attached\n",
+                                  mcast->mcmember.mgid.raw);
 
                        return 0;
                }
@@ -215,9 +213,8 @@ static int ipoib_mcast_join_finish(struct ipoib_mcast *mcast,
                ret = ipoib_mcast_attach(dev, be16_to_cpu(mcast->mcmember.mlid),
                                         &mcast->mcmember.mgid, set_qkey);
                if (ret < 0) {
-                       ipoib_warn(priv, "couldn't attach QP to multicast group "
-                                  IPOIB_GID_FMT "\n",
-                                  IPOIB_GID_ARG(mcast->mcmember.mgid));
+                       ipoib_warn(priv, "couldn't attach QP to multicast group %pI6\n",
+                                  mcast->mcmember.mgid.raw);
 
                        clear_bit(IPOIB_MCAST_FLAG_ATTACHED, &mcast->flags);
                        return ret;
@@ -248,9 +245,8 @@ static int ipoib_mcast_join_finish(struct ipoib_mcast *mcast,
                        mcast->ah = ah;
                        spin_unlock_irq(&priv->lock);
 
-                       ipoib_dbg_mcast(priv, "MGID " IPOIB_GID_FMT
-                                       " AV %p, LID 0x%04x, SL %d\n",
-                                       IPOIB_GID_ARG(mcast->mcmember.mgid),
+                       ipoib_dbg_mcast(priv, "MGID %pI6 AV %p, LID 0x%04x, SL %d\n",
+                                       mcast->mcmember.mgid.raw,
                                        mcast->ah->ah,
                                        be16_to_cpu(mcast->mcmember.mlid),
                                        mcast->mcmember.sl);
@@ -295,9 +291,8 @@ ipoib_mcast_sendonly_join_complete(int status,
 
        if (status) {
                if (mcast->logcount++ < 20)
-                       ipoib_dbg_mcast(netdev_priv(dev), "multicast join failed for "
-                                       IPOIB_GID_FMT ", status %d\n",
-                                       IPOIB_GID_ARG(mcast->mcmember.mgid), status);
+                       ipoib_dbg_mcast(netdev_priv(dev), "multicast join failed for %pI6, status %d\n",
+                                       mcast->mcmember.mgid.raw, status);
 
                /* Flush out any queued packets */
                netif_tx_lock_bh(dev);
@@ -356,9 +351,8 @@ static int ipoib_mcast_sendonly_join(struct ipoib_mcast *mcast)
                ipoib_warn(priv, "ib_sa_join_multicast failed (ret = %d)\n",
                           ret);
        } else {
-               ipoib_dbg_mcast(priv, "no multicast record for " IPOIB_GID_FMT
-                               ", starting join\n",
-                               IPOIB_GID_ARG(mcast->mcmember.mgid));
+               ipoib_dbg_mcast(priv, "no multicast record for %pI6, starting join\n",
+                               mcast->mcmember.mgid.raw);
        }
 
        return ret;
@@ -386,9 +380,8 @@ static int ipoib_mcast_join_complete(int status,
        struct net_device *dev = mcast->dev;
        struct ipoib_dev_priv *priv = netdev_priv(dev);
 
-       ipoib_dbg_mcast(priv, "join completion for " IPOIB_GID_FMT
-                       " (status %d)\n",
-                       IPOIB_GID_ARG(mcast->mcmember.mgid), status);
+       ipoib_dbg_mcast(priv, "join completion for %pI6 (status %d)\n",
+                       mcast->mcmember.mgid.raw, status);
 
        /* We trap for port events ourselves. */
        if (status == -ENETRESET)
@@ -417,15 +410,11 @@ static int ipoib_mcast_join_complete(int status,
 
        if (mcast->logcount++ < 20) {
                if (status == -ETIMEDOUT) {
-                       ipoib_dbg_mcast(priv, "multicast join failed for " IPOIB_GID_FMT
-                                       ", status %d\n",
-                                       IPOIB_GID_ARG(mcast->mcmember.mgid),
-                                       status);
+                       ipoib_dbg_mcast(priv, "multicast join failed for %pI6, status %d\n",
+                                       mcast->mcmember.mgid.raw, status);
                } else {
-                       ipoib_warn(priv, "multicast join failed for "
-                                  IPOIB_GID_FMT ", status %d\n",
-                                  IPOIB_GID_ARG(mcast->mcmember.mgid),
-                                  status);
+                       ipoib_warn(priv, "multicast join failed for %pI6, status %d\n",
+                                  mcast->mcmember.mgid.raw, status);
                }
        }
 
@@ -457,8 +446,7 @@ static void ipoib_mcast_join(struct net_device *dev, struct ipoib_mcast *mcast,
        ib_sa_comp_mask comp_mask;
        int ret = 0;
 
-       ipoib_dbg_mcast(priv, "joining MGID " IPOIB_GID_FMT "\n",
-                       IPOIB_GID_ARG(mcast->mcmember.mgid));
+       ipoib_dbg_mcast(priv, "joining MGID %pI6\n", mcast->mcmember.mgid.raw);
 
        rec.mgid     = mcast->mcmember.mgid;
        rec.port_gid = priv->local_gid;
@@ -643,8 +631,8 @@ static int ipoib_mcast_leave(struct net_device *dev, struct ipoib_mcast *mcast)
                ib_sa_free_multicast(mcast->mc);
 
        if (test_and_clear_bit(IPOIB_MCAST_FLAG_ATTACHED, &mcast->flags)) {
-               ipoib_dbg_mcast(priv, "leaving MGID " IPOIB_GID_FMT "\n",
-                               IPOIB_GID_ARG(mcast->mcmember.mgid));
+               ipoib_dbg_mcast(priv, "leaving MGID %pI6\n",
+                               mcast->mcmember.mgid.raw);
 
                /* Remove ourselves from the multicast group */
                ret = ib_detach_mcast(priv->qp, &mcast->mcmember.mgid,
@@ -675,8 +663,8 @@ void ipoib_mcast_send(struct net_device *dev, void *mgid, struct sk_buff *skb)
        mcast = __ipoib_mcast_find(dev, mgid);
        if (!mcast) {
                /* Let's create a new send only group now */
-               ipoib_dbg_mcast(priv, "setting up send only multicast group for "
-                               IPOIB_GID_FMT "\n", IPOIB_GID_RAW_ARG(mgid));
+               ipoib_dbg_mcast(priv, "setting up send only multicast group for %pI6\n",
+                               mgid);
 
                mcast = ipoib_mcast_alloc(dev, 0);
                if (!mcast) {
@@ -809,14 +797,14 @@ void ipoib_mcast_restart_task(struct work_struct *work)
                        /* ignore group which is directly joined by userspace */
                        if (test_bit(IPOIB_FLAG_UMCAST, &priv->flags) &&
                            !ib_sa_get_mcmember_rec(priv->ca, priv->port, &mgid, &rec)) {
-                               ipoib_dbg_mcast(priv, "ignoring multicast entry for mgid "
-                                               IPOIB_GID_FMT "\n", IPOIB_GID_ARG(mgid));
+                               ipoib_dbg_mcast(priv, "ignoring multicast entry for mgid %pI6\n",
+                                               mgid.raw);
                                continue;
                        }
 
                        /* Not found or send-only group, let's add a new entry */
-                       ipoib_dbg_mcast(priv, "adding multicast entry for mgid "
-                                       IPOIB_GID_FMT "\n", IPOIB_GID_ARG(mgid));
+                       ipoib_dbg_mcast(priv, "adding multicast entry for mgid %pI6\n",
+                                       mgid.raw);
 
                        nmcast = ipoib_mcast_alloc(dev, 0);
                        if (!nmcast) {
@@ -849,8 +837,8 @@ void ipoib_mcast_restart_task(struct work_struct *work)
        list_for_each_entry_safe(mcast, tmcast, &priv->multicast_list, list) {
                if (!test_bit(IPOIB_MCAST_FLAG_FOUND, &mcast->flags) &&
                    !test_bit(IPOIB_MCAST_FLAG_SENDONLY, &mcast->flags)) {
-                       ipoib_dbg_mcast(priv, "deleting multicast group " IPOIB_GID_FMT "\n",
-                                       IPOIB_GID_ARG(mcast->mcmember.mgid));
+                       ipoib_dbg_mcast(priv, "deleting multicast group %pI6\n",
+                                       mcast->mcmember.mgid.raw);
 
                        rb_erase(&mcast->rb_node, &priv->multicast_tree);
 
index 26ff621..e418b96 100644 (file)
@@ -515,14 +515,14 @@ int iser_connect(struct iser_conn   *ib_conn,
        struct sockaddr *src, *dst;
        int err = 0;
 
-       sprintf(ib_conn->name,"%d.%d.%d.%d:%d",
-               NIPQUAD(dst_addr->sin_addr.s_addr), dst_addr->sin_port);
+       sprintf(ib_conn->name, "%pI4:%d",
+               &dst_addr->sin_addr.s_addr, dst_addr->sin_port);
 
        /* the device is known only --after-- address resolution */
        ib_conn->device = NULL;
 
-       iser_err("connecting to: %d.%d.%d.%d, port 0x%x\n",
-                NIPQUAD(dst_addr->sin_addr), dst_addr->sin_port);
+       iser_err("connecting to: %pI4, port 0x%x\n",
+                &dst_addr->sin_addr, dst_addr->sin_port);
 
        ib_conn->state = ISER_CONN_PENDING;
 
index 5b8b533..7c13db8 100644 (file)
@@ -1514,15 +1514,7 @@ static ssize_t show_dgid(struct device *dev, struct device_attribute *attr,
            target->state == SRP_TARGET_REMOVED)
                return -ENODEV;
 
-       return sprintf(buf, "%04x:%04x:%04x:%04x:%04x:%04x:%04x:%04x\n",
-                      be16_to_cpu(((__be16 *) target->path.dgid.raw)[0]),
-                      be16_to_cpu(((__be16 *) target->path.dgid.raw)[1]),
-                      be16_to_cpu(((__be16 *) target->path.dgid.raw)[2]),
-                      be16_to_cpu(((__be16 *) target->path.dgid.raw)[3]),
-                      be16_to_cpu(((__be16 *) target->path.dgid.raw)[4]),
-                      be16_to_cpu(((__be16 *) target->path.dgid.raw)[5]),
-                      be16_to_cpu(((__be16 *) target->path.dgid.raw)[6]),
-                      be16_to_cpu(((__be16 *) target->path.dgid.raw)[7]));
+       return sprintf(buf, "%pI6\n", target->path.dgid.raw);
 }
 
 static ssize_t show_orig_dgid(struct device *dev,
@@ -1534,15 +1526,7 @@ static ssize_t show_orig_dgid(struct device *dev,
            target->state == SRP_TARGET_REMOVED)
                return -ENODEV;
 
-       return sprintf(buf, "%04x:%04x:%04x:%04x:%04x:%04x:%04x:%04x\n",
-                      be16_to_cpu(target->orig_dgid[0]),
-                      be16_to_cpu(target->orig_dgid[1]),
-                      be16_to_cpu(target->orig_dgid[2]),
-                      be16_to_cpu(target->orig_dgid[3]),
-                      be16_to_cpu(target->orig_dgid[4]),
-                      be16_to_cpu(target->orig_dgid[5]),
-                      be16_to_cpu(target->orig_dgid[6]),
-                      be16_to_cpu(target->orig_dgid[7]));
+       return sprintf(buf, "%pI6\n", target->orig_dgid);
 }
 
 static ssize_t show_zero_req_lim(struct device *dev,
@@ -1883,19 +1867,12 @@ static ssize_t srp_create_target(struct device *dev,
 
        shost_printk(KERN_DEBUG, target->scsi_host, PFX
                     "new target: id_ext %016llx ioc_guid %016llx pkey %04x "
-                    "service_id %016llx dgid %04x:%04x:%04x:%04x:%04x:%04x:%04x:%04x\n",
+                    "service_id %016llx dgid %pI6\n",
               (unsigned long long) be64_to_cpu(target->id_ext),
               (unsigned long long) be64_to_cpu(target->ioc_guid),
               be16_to_cpu(target->path.pkey),
               (unsigned long long) be64_to_cpu(target->service_id),
-              (int) be16_to_cpu(*(__be16 *) &target->path.dgid.raw[0]),
-              (int) be16_to_cpu(*(__be16 *) &target->path.dgid.raw[2]),
-              (int) be16_to_cpu(*(__be16 *) &target->path.dgid.raw[4]),
-              (int) be16_to_cpu(*(__be16 *) &target->path.dgid.raw[6]),
-              (int) be16_to_cpu(*(__be16 *) &target->path.dgid.raw[8]),
-              (int) be16_to_cpu(*(__be16 *) &target->path.dgid.raw[10]),
-              (int) be16_to_cpu(*(__be16 *) &target->path.dgid.raw[12]),
-              (int) be16_to_cpu(*(__be16 *) &target->path.dgid.raw[14]));
+              target->path.dgid.raw);
 
        ret = srp_create_target_ib(target);
        if (ret)
index 1bfc55d..ad17a47 100644 (file)
@@ -890,15 +890,15 @@ isdn_net_log_skb(struct sk_buff * skb, isdn_net_local * lp)
                proto = ETH_P_IP;
                switch (lp->p_encap) {
                        case ISDN_NET_ENCAP_IPTYP:
-                               proto = ntohs(*(unsigned short *) &buf[0]);
+                               proto = ntohs(*(__be16 *)&buf[0]);
                                p = &buf[2];
                                break;
                        case ISDN_NET_ENCAP_ETHER:
-                               proto = ntohs(*(unsigned short *) &buf[12]);
+                               proto = ntohs(*(__be16 *)&buf[12]);
                                p = &buf[14];
                                break;
                        case ISDN_NET_ENCAP_CISCOHDLC:
-                               proto = ntohs(*(unsigned short *) &buf[2]);
+                               proto = ntohs(*(__be16 *)&buf[2]);
                                p = &buf[4];
                                break;
 #ifdef CONFIG_ISDN_PPP
@@ -942,18 +942,12 @@ isdn_net_log_skb(struct sk_buff * skb, isdn_net_local * lp)
                                        strcpy(addinfo, " IDP");
                                        break;
                        }
-                       printk(KERN_INFO
-                               "OPEN: %d.%d.%d.%d -> %d.%d.%d.%d%s\n",
-
-                              p[12], p[13], p[14], p[15],
-                              p[16], p[17], p[18], p[19],
-                              addinfo);
+                       printk(KERN_INFO "OPEN: %pI4 -> %pI4%s\n",
+                              p + 12, p + 16, addinfo);
                        break;
                case ETH_P_ARP:
-                       printk(KERN_INFO
-                               "OPEN: ARP %d.%d.%d.%d -> *.*.*.* ?%d.%d.%d.%d\n",
-                              p[14], p[15], p[16], p[17],
-                              p[24], p[25], p[26], p[27]);
+                       printk(KERN_INFO "OPEN: ARP %pI4 -> *.*.*.* ?%pI4\n",
+                              p + 14, p + 24);
                        break;
        }
 }
@@ -1539,15 +1533,16 @@ isdn_net_ciscohdlck_slarp_send_keepalive(unsigned long data)
        p = skb_put(skb, 4 + 14);
 
        /* cisco header */
-       p += put_u8 (p, CISCO_ADDR_UNICAST);
-       p += put_u8 (p, CISCO_CTRL);
-       p += put_u16(p, CISCO_TYPE_SLARP);
+       *(u8 *)(p + 0) = CISCO_ADDR_UNICAST;
+       *(u8 *)(p + 1) = CISCO_CTRL;
+       *(__be16 *)(p + 2) = cpu_to_be16(CISCO_TYPE_SLARP);
 
        /* slarp keepalive */
-       p += put_u32(p, CISCO_SLARP_KEEPALIVE);
-       p += put_u32(p, lp->cisco_myseq);
-       p += put_u32(p, lp->cisco_yourseq);
-       p += put_u16(p, 0xffff); // reliablity, always 0xffff
+       *(__be32 *)(p +  4) = cpu_to_be32(CISCO_SLARP_KEEPALIVE);
+       *(__be32 *)(p +  8) = cpu_to_be32(lp->cisco_myseq);
+       *(__be32 *)(p + 12) = cpu_to_be32(lp->cisco_yourseq);
+       *(__be16 *)(p + 16) = cpu_to_be16(0xffff); // reliablity, always 0xffff
+       p += 18;
 
        isdn_net_write_super(lp, skb);
 
@@ -1569,15 +1564,16 @@ isdn_net_ciscohdlck_slarp_send_request(isdn_net_local *lp)
        p = skb_put(skb, 4 + 14);
 
        /* cisco header */
-       p += put_u8 (p, CISCO_ADDR_UNICAST);
-       p += put_u8 (p, CISCO_CTRL);
-       p += put_u16(p, CISCO_TYPE_SLARP);
+       *(u8 *)(p + 0) = CISCO_ADDR_UNICAST;
+       *(u8 *)(p + 1) = CISCO_CTRL;
+       *(__be16 *)(p + 2) = cpu_to_be16(CISCO_TYPE_SLARP);
 
        /* slarp request */
-       p += put_u32(p, CISCO_SLARP_REQUEST);
-       p += put_u32(p, 0); // address
-       p += put_u32(p, 0); // netmask
-       p += put_u16(p, 0); // unused
+       *(__be32 *)(p +  4) = cpu_to_be32(CISCO_SLARP_REQUEST);
+       *(__be32 *)(p +  8) = cpu_to_be32(0); // address
+       *(__be32 *)(p + 12) = cpu_to_be32(0); // netmask
+       *(__be16 *)(p + 16) = cpu_to_be16(0); // unused
+       p += 18;
 
        isdn_net_write_super(lp, skb);
 }
@@ -1634,18 +1630,17 @@ isdn_net_ciscohdlck_slarp_send_reply(isdn_net_local *lp)
        p = skb_put(skb, 4 + 14);
 
        /* cisco header */
-       p += put_u8 (p, CISCO_ADDR_UNICAST);
-       p += put_u8 (p, CISCO_CTRL);
-       p += put_u16(p, CISCO_TYPE_SLARP);
+       *(u8 *)(p + 0) = CISCO_ADDR_UNICAST;
+       *(u8 *)(p + 1) = CISCO_CTRL;
+       *(__be16 *)(p + 2) = cpu_to_be16(CISCO_TYPE_SLARP);
 
        /* slarp reply, send own ip/netmask; if values are nonsense remote
         * should think we are unable to provide it with an address via SLARP */
-       p += put_u32(p, CISCO_SLARP_REPLY);
-       *(__be32 *)p = addr;    // address
-       p += 4;
-       *(__be32 *)p = mask;    // netmask
-       p += 4;
-       p += put_u16(p, 0);     // unused
+       *(__be32 *)(p +  4) = cpu_to_be32(CISCO_SLARP_REPLY);
+       *(__be32 *)(p +  8) = addr; // address
+       *(__be32 *)(p + 12) = mask; // netmask
+       *(__be16 *)(p + 16) = cpu_to_be16(0); // unused
+       p += 18;
 
        isdn_net_write_super(lp, skb);
 }
@@ -1656,44 +1651,39 @@ isdn_net_ciscohdlck_slarp_in(isdn_net_local *lp, struct sk_buff *skb)
        unsigned char *p;
        int period;
        u32 code;
-       u32 my_seq, addr;
-       u32 your_seq, mask;
-       u32 local;
+       u32 my_seq;
+       u32 your_seq;
+       __be32 local;
+       __be32 *addr, *mask;
        u16 unused;
 
        if (skb->len < 14)
                return;
 
        p = skb->data;
-       p += get_u32(p, &code);
-       
+       code = be32_to_cpup((__be32 *)p);
+       p += 4;
+
        switch (code) {
        case CISCO_SLARP_REQUEST:
                lp->cisco_yourseq = 0;
                isdn_net_ciscohdlck_slarp_send_reply(lp);
                break;
        case CISCO_SLARP_REPLY:
-               addr = ntohl(*(u32 *)p);
-               mask = ntohl(*(u32 *)(p+4));
-               if (mask != 0xfffffffc)
+               addr = (__be32 *)p;
+               mask = (__be32 *)(p + 4);
+               if (*mask != cpu_to_be32(0xfffffffc))
                        goto slarp_reply_out;
-               if ((addr & 3) == 0 || (addr & 3) == 3)
+               if ((*addr & cpu_to_be32(3)) == cpu_to_be32(0) ||
+                   (*addr & cpu_to_be32(3)) == cpu_to_be32(3))
                        goto slarp_reply_out;
-               local = addr ^ 3;
-               printk(KERN_INFO "%s: got slarp reply: "
-                       "remote ip: %d.%d.%d.%d, "
-                       "local ip: %d.%d.%d.%d "
-                       "mask: %d.%d.%d.%d\n",
-                      lp->netdev->dev->name,
-                      HIPQUAD(addr),
-                      HIPQUAD(local),
-                      HIPQUAD(mask));
+               local = *addr ^ cpu_to_be32(3);
+               printk(KERN_INFO "%s: got slarp reply: remote ip: %pI4, local ip: %pI4 mask: %pI4\n",
+                      lp->netdev->dev->name, addr, &local, mask);
                break;
   slarp_reply_out:
-                printk(KERN_INFO "%s: got invalid slarp "
-                                "reply (%d.%d.%d.%d/%d.%d.%d.%d) "
-                                "- ignored\n", lp->netdev->dev->name,
-                                HIPQUAD(addr), HIPQUAD(mask));
+               printk(KERN_INFO "%s: got invalid slarp reply (%pI4/%pI4) - ignored\n",
+                      lp->netdev->dev->name, addr, mask);
                break;
        case CISCO_SLARP_KEEPALIVE:
                period = (int)((jiffies - lp->cisco_last_slarp_in
@@ -1707,9 +1697,10 @@ isdn_net_ciscohdlck_slarp_in(isdn_net_local *lp, struct sk_buff *skb)
                                lp->cisco_keepalive_period);
                }
                lp->cisco_last_slarp_in = jiffies;
-               p += get_u32(p, &my_seq);
-               p += get_u32(p, &your_seq);
-               p += get_u16(p, &unused);
+               my_seq = be32_to_cpup((__be32 *)(p + 0));
+               your_seq = be32_to_cpup((__be32 *)(p + 4));
+               unused = be16_to_cpup((__be16 *)(p + 8));
+               p += 10;
                lp->cisco_yourseq = my_seq;
                lp->cisco_mineseen = your_seq;
                break;
@@ -1728,9 +1719,10 @@ isdn_net_ciscohdlck_receive(isdn_net_local *lp, struct sk_buff *skb)
                goto out_free;
 
        p = skb->data;
-       p += get_u8 (p, &addr);
-       p += get_u8 (p, &ctrl);
-       p += get_u16(p, &type);
+       addr = *(u8 *)(p + 0);
+       ctrl = *(u8 *)(p + 1);
+       type = be16_to_cpup((__be16 *)(p + 2));
+       p += 4;
        skb_pull(skb, 4);
        
        if (addr != CISCO_ADDR_UNICAST && addr != CISCO_ADDR_BROADCAST) {
@@ -1918,9 +1910,10 @@ static int isdn_net_header(struct sk_buff *skb, struct net_device *dev,
                case ISDN_NET_ENCAP_CISCOHDLC:
                case ISDN_NET_ENCAP_CISCOHDLCK:
                        p = skb_push(skb, 4);
-                       p += put_u8 (p, CISCO_ADDR_UNICAST);
-                       p += put_u8 (p, CISCO_CTRL);
-                       p += put_u16(p, type);
+                       *(u8 *)(p + 0) = CISCO_ADDR_UNICAST;
+                       *(u8 *)(p + 1) = CISCO_CTRL;
+                       *(__be16 *)(p + 2) = cpu_to_be16(type);
+                       p += 4;
                        len = 4;
                        break;
 #ifdef CONFIG_ISDN_X25
index be49497..2a6c370 100644 (file)
@@ -145,46 +145,3 @@ static __inline__ void isdn_net_rm_from_bundle(isdn_net_local *lp)
        spin_unlock_irqrestore(&master_lp->netdev->queue_lock, flags);
 }
 
-static inline int
-put_u8(unsigned char *p, u8 x)
-{
-       *p = x;
-       return 1;
-}
-
-static inline int
-put_u16(unsigned char *p, u16 x)
-{
-       *((u16 *)p) = htons(x);
-       return 2;
-}
-
-static inline int
-put_u32(unsigned char *p, u32 x)
-{
-       *((u32 *)p) = htonl(x);
-       return 4;
-}
-
-static inline int
-get_u8(unsigned char *p, u8 *x)
-{
-       *x = *p;
-       return 1;
-}
-
-static inline int
-get_u16(unsigned char *p, u16 *x)
-{
-       *x = ntohs(*((u16 *)p));
-       return 2;
-}
-
-static inline int
-get_u32(unsigned char *p, u32 *x)
-{
-       *x = ntohl(*((u32 *)p));
-       return 4;
-}
-
-
index 5f79c8d..676413a 100644 (file)
@@ -270,7 +270,7 @@ int flexcop_device_initialize(struct flexcop_device *fc)
        /* do the MAC address reading after initializing the dvb_adapter */
        if (fc->get_mac_addr(fc, 0) == 0) {
                u8 *b = fc->dvb_adapter.proposed_mac;
-               info("MAC address = %02x:%02x:%02x:%02x:%02x:%02x", b[0],b[1],b[2],b[3],b[4],b[5]);
+               info("MAC address = %pM", b);
                flexcop_set_mac_filter(fc,b);
                flexcop_mac_filter_ctrl(fc,1);
        } else
index aa3db57..29e8f15 100644 (file)
@@ -917,9 +917,7 @@ static int dst_get_mac(struct dst_state *state)
        }
        memset(&state->mac_address, '\0', 8);
        memcpy(&state->mac_address, &state->rxbuffer, 6);
-       dprintk(verbose, DST_ERROR, 1, "MAC Address=[%02x:%02x:%02x:%02x:%02x:%02x]",
-               state->mac_address[0], state->mac_address[1], state->mac_address[2],
-               state->mac_address[4], state->mac_address[5], state->mac_address[6]);
+       dprintk(verbose, DST_ERROR, 1, "MAC Address=[%pM]", state->mac_address);
 
        return 0;
 }
index 14e627e..d15984e 100644 (file)
@@ -697,8 +697,7 @@ static void __devinit dm1105dvb_read_mac(struct dm1105dvb *dm1105dvb, u8 *mac)
        };
 
        dm1105_i2c_xfer(&dm1105dvb->i2c_adap, msg , 2);
-       dev_info(&dm1105dvb->pdev->dev, "MAC %02x:%02x:%02x:%02x:%02x:%02x\n",
-                       mac[0], mac[1], mac[2], mac[3], mac[4], mac[5]);
+       dev_info(&dm1105dvb->pdev->dev, "MAC %pM\n", mac);
 }
 
 static int __devinit dm1105_probe(struct pci_dev *pdev,
index ce8cd0c..8a7d87b 100644 (file)
@@ -91,10 +91,7 @@ int dvb_usb_adapter_dvb_init(struct dvb_usb_adapter *adap, short *adapter_nums)
 
        if (adap->dev->props.read_mac_address) {
                if (adap->dev->props.read_mac_address(adap->dev,adap->dvb_adap.proposed_mac) == 0)
-                       info("MAC address: %02x:%02x:%02x:%02x:%02x:%02x",adap->dvb_adap.proposed_mac[0],
-                                       adap->dvb_adap.proposed_mac[1], adap->dvb_adap.proposed_mac[2],
-                                       adap->dvb_adap.proposed_mac[3], adap->dvb_adap.proposed_mac[4],
-                                       adap->dvb_adap.proposed_mac[5]);
+                       info("MAC address: %pM",adap->dvb_adap.proposed_mac);
                else
                        err("MAC address reading failed.");
        }
index a9653c6..d101b30 100644 (file)
@@ -560,8 +560,7 @@ static void __devinit pluto_read_mac(struct pluto *pluto, u8 *mac)
        mac[4] = (val >> 8) & 0xff;
        mac[5] = (val >> 0) & 0xff;
 
-       dev_info(&pluto->pdev->dev, "MAC %02x:%02x:%02x:%02x:%02x:%02x\n",
-                       mac[0], mac[1], mac[2], mac[3], mac[4], mac[5]);
+       dev_info(&pluto->pdev->dev, "MAC %pM\n", mac);
 }
 
 static int __devinit pluto_read_serial(struct pluto *pluto)
index 603ffd0..eeef0bd 100644 (file)
@@ -1427,11 +1427,9 @@ mptlan_probe(struct pci_dev *pdev, const struct pci_device_id *id)
                printk(KERN_INFO MYNAM ": %s: Fusion MPT LAN device "
                       "registered as '%s'\n", ioc->name, dev->name);
                printk(KERN_INFO MYNAM ": %s/%s: "
-                      "LanAddr = %02X:%02X:%02X:%02X:%02X:%02X\n",
+                      "LanAddr = %pM\n",
                       IOC_AND_NETDEV_NAMES_s_s(dev),
-                      dev->dev_addr[0], dev->dev_addr[1],
-                      dev->dev_addr[2], dev->dev_addr[3],
-                      dev->dev_addr[4], dev->dev_addr[5]);
+                      dev->dev_addr);
        
                ioc->netdev = dev;
 
@@ -1516,9 +1514,8 @@ mpt_lan_type_trans(struct sk_buff *skb, struct net_device *dev)
 
                printk (KERN_WARNING MYNAM ": %s: WARNING - Broadcast swap F/W bug detected!\n",
                                NETDEV_PTR_TO_IOC_NAME_s(dev));
-               printk (KERN_WARNING MYNAM ": Please update sender @ MAC_addr = %02x:%02x:%02x:%02x:%02x:%02x\n",
-                               fch->saddr[0], fch->saddr[1], fch->saddr[2],
-                               fch->saddr[3], fch->saddr[4], fch->saddr[5]);
+               printk (KERN_WARNING MYNAM ": Please update sender @ MAC_addr = %pM\n",
+                               fch->saddr);
        }
 
        if (*fch->daddr & 1) {
@@ -1537,7 +1534,6 @@ mpt_lan_type_trans(struct sk_buff *skb, struct net_device *dev)
 
        fcllc = (struct fcllc *)skb->data;
 
-
        /* Strip the SNAP header from ARP packets since we don't
         * pass them through to the 802.2/SNAP layers.
         */
index 7d15e7c..3d1318a 100644 (file)
@@ -297,8 +297,8 @@ static int __init el1_probe1(struct net_device *dev, int ioaddr)
        if (el_debug)
                printk(KERN_DEBUG "%s", version);
 
-       memset(dev->priv, 0, sizeof(struct net_local));
        lp = netdev_priv(dev);
+       memset(lp, 0, sizeof(struct net_local));
        spin_lock_init(&lp->lock);
 
        /*
@@ -725,7 +725,6 @@ static void el_receive(struct net_device *dev)
                insb(DATAPORT, skb_put(skb, pkt_len), pkt_len);
                skb->protocol = eth_type_trans(skb, dev);
                netif_rx(skb);
-               dev->last_rx = jiffies;
                dev->stats.rx_packets++;
                dev->stats.rx_bytes += pkt_len;
        }
index 900b0ff..95bd95f 100644 (file)
@@ -177,7 +177,6 @@ el2_probe1(struct net_device *dev, int ioaddr)
     int i, iobase_reg, membase_reg, saved_406, wordlength, retval;
     static unsigned version_printed;
     unsigned long vendor_id;
-    DECLARE_MAC_BUF(mac);
 
     if (!request_region(ioaddr, EL2_IO_EXTENT, DRV_NAME))
        return -EBUSY;
@@ -228,7 +227,7 @@ el2_probe1(struct net_device *dev, int ioaddr)
     /* Retrieve and print the ethernet address. */
     for (i = 0; i < 6; i++)
        dev->dev_addr[i] = inb(ioaddr + i);
-    printk("%s", print_mac(mac, dev->dev_addr));
+    printk("%pM", dev->dev_addr);
 
     /* Map the 8390 back into the window. */
     outb(ECNTRL_THIN, ioaddr + 0x406);
index a424869..6124605 100644 (file)
@@ -203,10 +203,10 @@ static inline int inb_command(unsigned int base_addr)
 static inline void outb_control(unsigned char val, struct net_device *dev)
 {
        outb(val, dev->base_addr + PORT_CONTROL);
-       ((elp_device *)(dev->priv))->hcr_val = val;
+       ((elp_device *)(netdev_priv(dev)))->hcr_val = val;
 }
 
-#define HCR_VAL(x)   (((elp_device *)((x)->priv))->hcr_val)
+#define HCR_VAL(x)   (((elp_device *)(netdev_priv(x)))->hcr_val)
 
 static inline void outb_command(unsigned char val, unsigned int base_addr)
 {
@@ -247,7 +247,7 @@ static inline int get_status(unsigned int base_addr)
 
 static inline void set_hsf(struct net_device *dev, int hsf)
 {
-       elp_device *adapter = dev->priv;
+       elp_device *adapter = netdev_priv(dev);
        unsigned long flags;
 
        spin_lock_irqsave(&adapter->lock, flags);
@@ -260,7 +260,7 @@ static bool start_receive(struct net_device *, pcb_struct *);
 static inline void adapter_reset(struct net_device *dev)
 {
        unsigned long timeout;
-       elp_device *adapter = dev->priv;
+       elp_device *adapter = netdev_priv(dev);
        unsigned char orig_hcr = adapter->hcr_val;
 
        outb_control(0, dev);
@@ -293,7 +293,7 @@ static inline void adapter_reset(struct net_device *dev)
  */
 static inline void check_3c505_dma(struct net_device *dev)
 {
-       elp_device *adapter = dev->priv;
+       elp_device *adapter = netdev_priv(dev);
        if (adapter->dmaing && time_after(jiffies, adapter->current_dma.start_time + 10)) {
                unsigned long flags, f;
                printk(KERN_ERR "%s: DMA %s timed out, %d bytes left\n", dev->name, adapter->current_dma.direction ? "download" : "upload", get_dma_residue(dev->dma));
@@ -340,7 +340,7 @@ static inline bool send_pcb_fast(unsigned int base_addr, unsigned char byte)
 /* Check to see if the receiver needs restarting, and kick it if so */
 static inline void prime_rx(struct net_device *dev)
 {
-       elp_device *adapter = dev->priv;
+       elp_device *adapter = netdev_priv(dev);
        while (adapter->rx_active < ELP_RX_PCBS && netif_running(dev)) {
                if (!start_receive(dev, &adapter->itx_pcb))
                        break;
@@ -375,7 +375,7 @@ static bool send_pcb(struct net_device *dev, pcb_struct * pcb)
 {
        int i;
        unsigned long timeout;
-       elp_device *adapter = dev->priv;
+       elp_device *adapter = netdev_priv(dev);
        unsigned long flags;
 
        check_3c505_dma(dev);
@@ -463,7 +463,7 @@ static bool receive_pcb(struct net_device *dev, pcb_struct * pcb)
        unsigned long timeout;
        unsigned long flags;
 
-       elp_device *adapter = dev->priv;
+       elp_device *adapter = netdev_priv(dev);
 
        set_hsf(dev, 0);
 
@@ -543,7 +543,7 @@ static bool receive_pcb(struct net_device *dev, pcb_struct * pcb)
 static bool start_receive(struct net_device *dev, pcb_struct * tx_pcb)
 {
        bool status;
-       elp_device *adapter = dev->priv;
+       elp_device *adapter = netdev_priv(dev);
 
        if (elp_debug >= 3)
                printk(KERN_DEBUG "%s: restarting receiver\n", dev->name);
@@ -571,7 +571,7 @@ static bool start_receive(struct net_device *dev, pcb_struct * tx_pcb)
 static void receive_packet(struct net_device *dev, int len)
 {
        int rlen;
-       elp_device *adapter = dev->priv;
+       elp_device *adapter = netdev_priv(dev);
        void *target;
        struct sk_buff *skb;
        unsigned long flags;
@@ -638,13 +638,10 @@ static irqreturn_t elp_interrupt(int irq, void *dev_id)
        int len;
        int dlen;
        int icount = 0;
-       struct net_device *dev;
-       elp_device *adapter;
+       struct net_device *dev = dev_id;
+       elp_device *adapter = netdev_priv(dev);
        unsigned long timeout;
 
-       dev = dev_id;
-       adapter = (elp_device *) dev->priv;
-
        spin_lock(&adapter->lock);
 
        do {
@@ -672,7 +669,6 @@ static irqreturn_t elp_interrupt(int irq, void *dev_id)
                                        skb->protocol = eth_type_trans(skb,dev);
                                        dev->stats.rx_bytes += skb->len;
                                        netif_rx(skb);
-                                       dev->last_rx = jiffies;
                                }
                        }
                        adapter->dmaing = 0;
@@ -838,11 +834,9 @@ static irqreturn_t elp_interrupt(int irq, void *dev_id)
 
 static int elp_open(struct net_device *dev)
 {
-       elp_device *adapter;
+       elp_device *adapter = netdev_priv(dev);
        int retval;
 
-       adapter = dev->priv;
-
        if (elp_debug >= 3)
                printk(KERN_DEBUG "%s: request to open device\n", dev->name);
 
@@ -971,7 +965,7 @@ static int elp_open(struct net_device *dev)
 
 static bool send_packet(struct net_device *dev, struct sk_buff *skb)
 {
-       elp_device *adapter = dev->priv;
+       elp_device *adapter = netdev_priv(dev);
        unsigned long target;
        unsigned long flags;
 
@@ -1062,7 +1056,7 @@ static void elp_timeout(struct net_device *dev)
 static int elp_start_xmit(struct sk_buff *skb, struct net_device *dev)
 {
        unsigned long flags;
-       elp_device *adapter = dev->priv;
+       elp_device *adapter = netdev_priv(dev);
 
        spin_lock_irqsave(&adapter->lock, flags);
        check_3c505_dma(dev);
@@ -1104,7 +1098,7 @@ static int elp_start_xmit(struct sk_buff *skb, struct net_device *dev)
 
 static struct net_device_stats *elp_get_stats(struct net_device *dev)
 {
-       elp_device *adapter = (elp_device *) dev->priv;
+       elp_device *adapter = netdev_priv(dev);
 
        if (elp_debug >= 3)
                printk(KERN_DEBUG "%s: request for stats\n", dev->name);
@@ -1166,9 +1160,7 @@ static const struct ethtool_ops netdev_ethtool_ops = {
 
 static int elp_close(struct net_device *dev)
 {
-       elp_device *adapter;
-
-       adapter = dev->priv;
+       elp_device *adapter = netdev_priv(dev);
 
        if (elp_debug >= 3)
                printk(KERN_DEBUG "%s: request to close device\n", dev->name);
@@ -1209,7 +1201,7 @@ static int elp_close(struct net_device *dev)
 
 static void elp_set_mc_list(struct net_device *dev)
 {
-       elp_device *adapter = (elp_device *) dev->priv;
+       elp_device *adapter = netdev_priv(dev);
        struct dev_mc_list *dmi = dev->mc_list;
        int i;
        unsigned long flags;
@@ -1380,12 +1372,11 @@ static int __init elp_autodetect(struct net_device *dev)
 
 static int __init elplus_setup(struct net_device *dev)
 {
-       elp_device *adapter = dev->priv;
+       elp_device *adapter = netdev_priv(dev);
        int i, tries, tries1, okay;
        unsigned long timeout;
        unsigned long cookie = 0;
        int err = -ENODEV;
-       DECLARE_MAC_BUF(mac);
 
        /*
         *  setup adapter structure
@@ -1522,9 +1513,9 @@ static int __init elplus_setup(struct net_device *dev)
         * print remainder of startup message
         */
        printk(KERN_INFO "%s: 3c505 at %#lx, irq %d, dma %d, "
-              "addr %s, ",
+              "addr %pM, ",
               dev->name, dev->base_addr, dev->irq, dev->dma,
-              print_mac(mac, dev->dev_addr));
+              dev->dev_addr);
 
        /*
         * read more information from the adapter
index 030c147..b8585ec 100644 (file)
@@ -357,7 +357,6 @@ static int __init el16_probe1(struct net_device *dev, int ioaddr)
        static unsigned char init_ID_done, version_printed;
        int i, irq, irqval, retval;
        struct net_local *lp;
-       DECLARE_MAC_BUF(mac);
 
        if (init_ID_done == 0) {
                ushort lrs_state = 0xff;
@@ -405,7 +404,7 @@ static int __init el16_probe1(struct net_device *dev, int ioaddr)
        outb(0x01, ioaddr + MISC_CTRL);
        for (i = 0; i < 6; i++)
                dev->dev_addr[i] = inb(ioaddr + i);
-       printk(" %s", print_mac(mac, dev->dev_addr));
+       printk(" %pM", dev->dev_addr);
 
        if (mem_start)
                net_debug = mem_start & 7;
@@ -866,7 +865,6 @@ static void el16_rx(struct net_device *dev)
 
                        skb->protocol=eth_type_trans(skb,dev);
                        netif_rx(skb);
-                       dev->last_rx = jiffies;
                        dev->stats.rx_packets++;
                        dev->stats.rx_bytes += pkt_len;
                }
index c7a4f3b..535c234 100644 (file)
@@ -541,7 +541,6 @@ static int __devinit el3_common_init(struct net_device *dev)
 {
        struct el3_private *lp = netdev_priv(dev);
        int err;
-       DECLARE_MAC_BUF(mac);
        const char *if_names[] = {"10baseT", "AUI", "undefined", "BNC"};
 
        spin_lock_init(&lp->lock);
@@ -575,9 +574,9 @@ static int __devinit el3_common_init(struct net_device *dev)
        }
 
        printk(KERN_INFO "%s: 3c5x9 found at %#3.3lx, %s port, "
-              "address %s, IRQ %d.\n",
+              "address %pM, IRQ %d.\n",
               dev->name, dev->base_addr, if_names[(dev->if_port & 0x03)],
-              print_mac(mac, dev->dev_addr), dev->irq);
+              dev->dev_addr, dev->irq);
 
        if (el3_debug > 0)
                printk(KERN_INFO "%s", version);
@@ -1075,7 +1074,6 @@ el3_rx(struct net_device *dev)
                                outw(RxDiscard, ioaddr + EL3_CMD); /* Pop top Rx packet. */
                                skb->protocol = eth_type_trans(skb,dev);
                                netif_rx(skb);
-                               dev->last_rx = jiffies;
                                dev->stats.rx_bytes += pkt_len;
                                dev->stats.rx_packets++;
                                continue;
index a0f8b6e..7f99500 100644 (file)
@@ -570,7 +570,6 @@ static int corkscrew_setup(struct net_device *dev, int ioaddr,
        unsigned int eeprom[0x40], checksum = 0;        /* EEPROM contents */
        int i;
        int irq;
-       DECLARE_MAC_BUF(mac);
 
 #ifdef __ISAPNP__
        if (idev) {
@@ -636,7 +635,7 @@ static int corkscrew_setup(struct net_device *dev, int ioaddr,
        checksum = (checksum ^ (checksum >> 8)) & 0xff;
        if (checksum != 0x00)
                printk(" ***INVALID CHECKSUM %4.4x*** ", checksum);
-       printk(" %s", print_mac(mac, dev->dev_addr));
+       printk(" %pM", dev->dev_addr);
        if (eeprom[16] == 0x11c7) {     /* Corkscrew */
                if (request_dma(dev->dma, "3c515")) {
                        printk(", DMA %d allocation failed", dev->dma);
@@ -1302,7 +1301,6 @@ static int corkscrew_rx(struct net_device *dev)
                                outw(RxDiscard, ioaddr + EL3_CMD);      /* Pop top Rx packet. */
                                skb->protocol = eth_type_trans(skb, dev);
                                netif_rx(skb);
-                               dev->last_rx = jiffies;
                                dev->stats.rx_packets++;
                                dev->stats.rx_bytes += pkt_len;
                                /* Wait a limited time to go to next packet. */
@@ -1389,7 +1387,6 @@ static int boomerang_rx(struct net_device *dev)
                        }
                        skb->protocol = eth_type_trans(skb, dev);
                        netif_rx(skb);
-                       dev->last_rx = jiffies;
                        dev->stats.rx_packets++;
                }
                entry = (++vp->cur_rx) % RX_RING_SIZE;
index e2ce41d..59ea291 100644 (file)
@@ -308,7 +308,7 @@ static int elmc_open(struct net_device *dev)
 
 static int __init check586(struct net_device *dev, unsigned long where, unsigned size)
 {
-       struct priv *p = (struct priv *) dev->priv;
+       struct priv *p = netdev_priv(dev);
        char *iscp_addrs[2];
        int i = 0;
 
@@ -349,7 +349,7 @@ static int __init check586(struct net_device *dev, unsigned long where, unsigned
 
 void alloc586(struct net_device *dev)
 {
-       struct priv *p = (struct priv *) dev->priv;
+       struct priv *p = netdev_priv(dev);
 
        elmc_id_reset586();
        DELAY(2);
@@ -383,7 +383,6 @@ static int elmc_getinfo(char *buf, int slot, void *d)
 {
        int len = 0;
        struct net_device *dev = d;
-       DECLARE_MAC_BUF(mac);
 
        if (dev == NULL)
                return len;
@@ -398,8 +397,8 @@ static int elmc_getinfo(char *buf, int slot, void *d)
        len += sprintf(buf + len, "Transceiver: %s\n", dev->if_port ?
                       "External" : "Internal");
        len += sprintf(buf + len, "Device: %s\n", dev->name);
-       len += sprintf(buf + len, "Hardware Address: %s\n",
-                      print_mac(mac, dev->dev_addr));
+       len += sprintf(buf + len, "Hardware Address: %pM\n",
+                      dev->dev_addr);
 
        return len;
 }                              /* elmc_getinfo() */
@@ -416,8 +415,7 @@ static int __init do_elmc_probe(struct net_device *dev)
        int i = 0;
        unsigned int size = 0;
        int retval;
-       struct priv *pr = dev->priv;
-       DECLARE_MAC_BUF(mac);
+       struct priv *pr = netdev_priv(dev);
 
        if (MCA_bus == 0) {
                return -ENODEV;
@@ -543,8 +541,8 @@ static int __init do_elmc_probe(struct net_device *dev)
        for (i = 0; i < 6; i++)
                dev->dev_addr[i] = inb(dev->base_addr + i);
 
-       printk(KERN_INFO "%s: hardware address %s\n",
-              dev->name, print_mac(mac, dev->dev_addr));
+       printk(KERN_INFO "%s: hardware address %pM\n",
+              dev->name, dev->dev_addr);
 
        dev->open = &elmc_open;
        dev->stop = &elmc_close;
@@ -580,7 +578,8 @@ err_out:
 
 static void cleanup_card(struct net_device *dev)
 {
-       mca_set_adapter_procfn(((struct priv *) (dev->priv))->slot, NULL, NULL);
+       mca_set_adapter_procfn(((struct priv *)netdev_priv(dev))->slot,
+                               NULL, NULL);
        release_region(dev->base_addr, ELMC_IO_EXTENT);
 }
 
@@ -616,7 +615,7 @@ static int init586(struct net_device *dev)
        void *ptr;
        unsigned long s;
        int i, result = 0;
-       struct priv *p = (struct priv *) dev->priv;
+       struct priv *p = netdev_priv(dev);
        volatile struct configure_cmd_struct *cfg_cmd;
        volatile struct iasetup_cmd_struct *ias_cmd;
        volatile struct tdr_cmd_struct *tdr_cmd;
@@ -852,7 +851,7 @@ static void *alloc_rfa(struct net_device *dev, void *ptr)
        volatile struct rfd_struct *rfd = (struct rfd_struct *) ptr;
        volatile struct rbd_struct *rbd;
        int i;
-       struct priv *p = (struct priv *) dev->priv;
+       struct priv *p = netdev_priv(dev);
 
        memset((char *) rfd, 0, sizeof(struct rfd_struct) * p->num_recv_buffs);
        p->rfd_first = rfd;
@@ -913,7 +912,7 @@ elmc_interrupt(int irq, void *dev_id)
        }
        /* reading ELMC_CTRL also clears the INT bit. */
 
-       p = (struct priv *) dev->priv;
+       p = netdev_priv(dev);
 
        while ((stat = p->scb->status & STAT_MASK))
        {
@@ -969,7 +968,7 @@ static void elmc_rcv_int(struct net_device *dev)
        unsigned short totlen;
        struct sk_buff *skb;
        struct rbd_struct *rbd;
-       struct priv *p = (struct priv *) dev->priv;
+       struct priv *p = netdev_priv(dev);
 
        for (; (status = p->rfd_top->status) & STAT_COMPL;) {
                rbd = (struct rbd_struct *) make32(p->rfd_top->rbd_offset);
@@ -985,7 +984,6 @@ static void elmc_rcv_int(struct net_device *dev)
                                        skb_copy_to_linear_data(skb, (char *) p->base+(unsigned long) rbd->buffer,totlen);
                                        skb->protocol = eth_type_trans(skb, dev);
                                        netif_rx(skb);
-                                       dev->last_rx = jiffies;
                                        dev->stats.rx_packets++;
                                        dev->stats.rx_bytes += totlen;
                                } else {
@@ -1013,7 +1011,7 @@ static void elmc_rcv_int(struct net_device *dev)
 
 static void elmc_rnr_int(struct net_device *dev)
 {
-       struct priv *p = (struct priv *) dev->priv;
+       struct priv *p = netdev_priv(dev);
 
        dev->stats.rx_errors++;
 
@@ -1036,7 +1034,7 @@ static void elmc_rnr_int(struct net_device *dev)
 static void elmc_xmt_int(struct net_device *dev)
 {
        int status;
-       struct priv *p = (struct priv *) dev->priv;
+       struct priv *p = netdev_priv(dev);
 
        status = p->xmit_cmds[p->xmit_last]->cmd_status;
        if (!(status & STAT_COMPL)) {
@@ -1079,7 +1077,7 @@ static void elmc_xmt_int(struct net_device *dev)
 
 static void startrecv586(struct net_device *dev)
 {
-       struct priv *p = (struct priv *) dev->priv;
+       struct priv *p = netdev_priv(dev);
 
        p->scb->rfa_offset = make16(p->rfd_first);
        p->scb->cmd = RUC_START;
@@ -1093,7 +1091,7 @@ static void startrecv586(struct net_device *dev)
 
 static void elmc_timeout(struct net_device *dev)
 {
-       struct priv *p = (struct priv *) dev->priv;
+       struct priv *p = netdev_priv(dev);
        /* COMMAND-UNIT active? */
        if (p->scb->status & CU_ACTIVE) {
 #ifdef DEBUG
@@ -1129,7 +1127,7 @@ static int elmc_send_packet(struct sk_buff *skb, struct net_device *dev)
 #ifndef NO_NOPCOMMANDS
        int next_nop;
 #endif
-       struct priv *p = (struct priv *) dev->priv;
+       struct priv *p = netdev_priv(dev);
 
        netif_stop_queue(dev);
 
@@ -1200,7 +1198,7 @@ static int elmc_send_packet(struct sk_buff *skb, struct net_device *dev)
 
 static struct net_device_stats *elmc_get_stats(struct net_device *dev)
 {
-       struct priv *p = (struct priv *) dev->priv;
+       struct priv *p = netdev_priv(dev);
        unsigned short crc, aln, rsc, ovrn;
 
        crc = p->scb->crc_errs; /* get error-statistic from the ni82586 */
index abc84f7..2df3af3 100644 (file)
@@ -335,7 +335,6 @@ static int __init mc32_probe1(struct net_device *dev, int slot)
                "82586 initialisation failure",
                "Adapter list configuration error"
        };
-       DECLARE_MAC_BUF(mac);
 
        /* Time to play MCA games */
 
@@ -405,7 +404,7 @@ static int __init mc32_probe1(struct net_device *dev, int slot)
                dev->dev_addr[i] = mca_read_pos(slot,3);
        }
 
-       printk("%s: Address %s", dev->name, print_mac(mac, dev->dev_addr));
+       printk("%s: Address %pM", dev->name, dev->dev_addr);
 
        mca_write_pos(slot, 6, 0);
        mca_write_pos(slot, 7, 0);
@@ -1187,7 +1186,6 @@ static void mc32_rx_ring(struct net_device *dev)
                        }
 
                        skb->protocol=eth_type_trans(skb,dev);
-                       dev->last_rx = jiffies;
                        dev->stats.rx_packets++;
                        dev->stats.rx_bytes += length;
                        netif_rx(skb);
index 9ba295d..665e7fd 100644 (file)
@@ -803,7 +803,7 @@ static int vortex_suspend(struct pci_dev *pdev, pm_message_t state)
 {
        struct net_device *dev = pci_get_drvdata(pdev);
 
-       if (dev && dev->priv) {
+       if (dev && netdev_priv(dev)) {
                if (netif_running(dev)) {
                        netif_device_detach(dev);
                        vortex_down(dev, 1);
@@ -1013,7 +1013,6 @@ static int __devinit vortex_probe1(struct device *gendev,
        const char *print_name = "3c59x";
        struct pci_dev *pdev = NULL;
        struct eisa_device *edev = NULL;
-       DECLARE_MAC_BUF(mac);
 
        if (!printed_version) {
                printk (version);
@@ -1026,7 +1025,7 @@ static int __devinit vortex_probe1(struct device *gendev,
                }
 
                if ((edev = DEVICE_EISA(gendev))) {
-                       print_name = edev->dev.bus_id;
+                       print_name = dev_name(&edev->dev);
                }
        }
 
@@ -1206,7 +1205,7 @@ static int __devinit vortex_probe1(struct device *gendev,
                ((__be16 *)dev->dev_addr)[i] = htons(eeprom[i + 10]);
        memcpy(dev->perm_addr, dev->dev_addr, dev->addr_len);
        if (print_info)
-               printk(" %s", print_mac(mac, dev->dev_addr));
+               printk(" %pM", dev->dev_addr);
        /* Unfortunately an all zero eeprom passes the checksum and this
           gets found in the wild in failure cases. Crypto is hard 8) */
        if (!is_valid_ether_addr(dev->dev_addr)) {
@@ -2447,7 +2446,6 @@ static int vortex_rx(struct net_device *dev)
                                iowrite16(RxDiscard, ioaddr + EL3_CMD); /* Pop top Rx packet. */
                                skb->protocol = eth_type_trans(skb, dev);
                                netif_rx(skb);
-                               dev->last_rx = jiffies;
                                dev->stats.rx_packets++;
                                /* Wait a limited time to go to next packet. */
                                for (i = 200; i >= 0; i--)
@@ -2530,7 +2528,6 @@ boomerang_rx(struct net_device *dev)
                                }
                        }
                        netif_rx(skb);
-                       dev->last_rx = jiffies;
                        dev->stats.rx_packets++;
                }
                entry = (++vp->cur_rx) % RX_RING_SIZE;
@@ -2886,7 +2883,7 @@ static void vortex_get_drvinfo(struct net_device *dev,
                strcpy(info->bus_info, pci_name(VORTEX_PCI(vp)));
        } else {
                if (VORTEX_EISA(vp))
-                       sprintf(info->bus_info, vp->gendev->bus_id);
+                       sprintf(info->bus_info, dev_name(vp->gendev));
                else
                        sprintf(info->bus_info, "EISA 0x%lx %d",
                                        dev->base_addr, dev->irq);
@@ -3217,7 +3214,7 @@ static void __exit vortex_eisa_cleanup(void)
 #endif
 
        if (compaq_net_device) {
-               vp = compaq_net_device->priv;
+               vp = netdev_priv(compaq_net_device);
                ioaddr = ioport_map(compaq_net_device->base_addr,
                                    VORTEX_TOTAL_SIZE);
 
index ad6b8a5..7a331ac 100644 (file)
@@ -336,7 +336,6 @@ static int lance_rx (struct net_device *dev)
                                          len);
                         skb->protocol = eth_type_trans (skb, dev);
                        netif_rx (skb);
-                       dev->last_rx = jiffies;
                        dev->stats.rx_packets++;
                        dev->stats.rx_bytes += len;
                 }
index 9ba1f0b..664bd73 100644 (file)
@@ -457,7 +457,6 @@ static inline void cp_rx_skb (struct cp_private *cp, struct sk_buff *skb,
 
        cp->dev->stats.rx_packets++;
        cp->dev->stats.rx_bytes += skb->len;
-       cp->dev->last_rx = jiffies;
 
 #if CP_VLAN_TAG_USED
        if (cp->vlgrp && (desc->opts2 & cpu_to_le32(RxVlanTagged))) {
@@ -1826,7 +1825,6 @@ static int cp_init_one (struct pci_dev *pdev, const struct pci_device_id *ent)
        void __iomem *regs;
        resource_size_t pciaddr;
        unsigned int addr_len, i, pci_using_dac;
-       DECLARE_MAC_BUF(mac);
 
 #ifndef MODULE
        static int version_printed;
@@ -1967,10 +1965,10 @@ static int cp_init_one (struct pci_dev *pdev, const struct pci_device_id *ent)
                goto err_out_iomap;
 
        printk (KERN_INFO "%s: RTL-8139C+ at 0x%lx, "
-               "%s, IRQ %d\n",
+               "%pM, IRQ %d\n",
                dev->name,
                dev->base_addr,
-               print_mac(mac, dev->dev_addr),
+               dev->dev_addr,
                dev->irq);
 
        pci_set_drvdata(pdev, dev);
index 63f906b..37456ad 100644 (file)
@@ -925,7 +925,6 @@ static int __devinit rtl8139_init_one (struct pci_dev *pdev,
        int i, addr_len, option;
        void __iomem *ioaddr;
        static int board_idx = -1;
-       DECLARE_MAC_BUF(mac);
 
        assert (pdev != NULL);
        assert (ent != NULL);
@@ -1024,11 +1023,11 @@ static int __devinit rtl8139_init_one (struct pci_dev *pdev,
        pci_set_drvdata (pdev, dev);
 
        printk (KERN_INFO "%s: %s at 0x%lx, "
-               "%s, IRQ %d\n",
+               "%pM, IRQ %d\n",
                dev->name,
                board_info[ent->driver_data].name,
                dev->base_addr,
-               print_mac(mac, dev->dev_addr),
+               dev->dev_addr,
                dev->irq);
 
        printk (KERN_DEBUG "%s:  Identified 8139 chip type '%s'\n",
@@ -2026,7 +2025,6 @@ no_early_rx:
 
                        skb->protocol = eth_type_trans (skb, dev);
 
-                       dev->last_rx = jiffies;
                        dev->stats.rx_bytes += pkt_size;
                        dev->stats.rx_packets++;
 
index da292e6..717fe2f 100644 (file)
@@ -841,7 +841,6 @@ memory_squeeze:
                                                pkt_len);
 #endif
                                netif_rx(skb);
-                               dev->last_rx = jiffies;
                                dev->stats.rx_packets++;
                                dev->stats.rx_bytes+=pkt_len;
                        }
@@ -1116,12 +1115,8 @@ static int i596_start_xmit(struct sk_buff *skb, struct net_device *dev)
 
 static void print_eth(unsigned char *add, char *str)
 {
-       DECLARE_MAC_BUF(mac);
-       DECLARE_MAC_BUF(mac2);
-
-       printk(KERN_DEBUG "i596 0x%p, %s --> %s %02X%02X, %s\n",
-              add, print_mac(mac, add + 6), print_mac(mac2, add),
-              add[12], add[13], str);
+       printk(KERN_DEBUG "i596 0x%p, %pM --> %pM %02X%02X, %s\n",
+              add, add + 6, add, add[12], add[13], str);
 }
 
 static int io = 0x300;
@@ -1544,7 +1539,6 @@ static void set_multicast_list(struct net_device *dev)
                struct dev_mc_list *dmi;
                unsigned char *cp;
                struct mc_cmd *cmd;
-               DECLARE_MAC_BUF(mac);
 
                if (wait_cfg(dev, &lp->mc_cmd.cmd, 1000, "multicast list change request timed out"))
                        return;
@@ -1555,8 +1549,8 @@ static void set_multicast_list(struct net_device *dev)
                for (dmi = dev->mc_list; cnt && dmi != NULL; dmi = dmi->next, cnt--, cp += 6) {
                        memcpy(cp, dmi->dmi_addr, 6);
                        if (i596_debug > 1)
-                               DEB(DEB_MULTI,printk(KERN_INFO "%s: Adding address %s\n",
-                                               dev->name, print_mac(mac, cp)));
+                               DEB(DEB_MULTI,printk(KERN_INFO "%s: Adding address %pM\n",
+                                               dev->name, cp));
                }
                i596_add_cmd(dev, &cmd->cmd);
        }
index 11f143f..732ea83 100644 (file)
@@ -61,6 +61,7 @@ config DUMMY
 config BONDING
        tristate "Bonding driver support"
        depends on INET
+       depends on IPV6 || IPV6=n
        ---help---
          Say 'Y' or 'M' if you wish to be able to 'bond' multiple Ethernet
          Channels together. This is called 'Etherchannel' by Cisco,
@@ -978,6 +979,20 @@ config SMC911X
          called smc911x.  If you want to compile it as a module, say M 
          here and read <file:Documentation/kbuild/modules.txt>
 
+config SMSC911X
+       tristate "SMSC LAN911x/LAN921x families embedded ethernet support"
+       depends on ARM || SUPERH
+       select CRC32
+       select MII
+       select PHYLIB
+       ---help---
+         Say Y here if you want support for SMSC LAN911x and LAN921x families
+         of ethernet controllers.
+
+         To compile this driver as a module, choose M here and read
+         <file:Documentation/networking/net-modules.txt>. The module
+         will be called smsc911x.
+
 config NET_VENDOR_RACAL
        bool "Racal-Interlan (Micom) NI cards"
        depends on ISA
@@ -1414,19 +1429,6 @@ config TC35815
        depends on NET_PCI && PCI && MIPS
        select PHYLIB
 
-config EEPRO100
-       tristate "EtherExpressPro/100 support (eepro100, original Becker driver)"
-       depends on NET_PCI && PCI
-       select MII
-       help
-         If you have an Intel EtherExpress PRO/100 PCI network (Ethernet)
-         card, say Y and read the Ethernet-HOWTO, available from
-         <http://www.tldp.org/docs.html#howto>.
-
-         To compile this driver as a module, choose M here. The module
-         will be called eepro100.
-
-
 config E100
        tristate "Intel(R) PRO/100+ support"
        depends on NET_PCI && PCI
index f19acf8..e06829a 100644 (file)
@@ -53,7 +53,6 @@ obj-$(CONFIG_VORTEX) += 3c59x.o
 obj-$(CONFIG_TYPHOON) += typhoon.o
 obj-$(CONFIG_NE2K_PCI) += ne2k-pci.o 8390.o
 obj-$(CONFIG_PCNET32) += pcnet32.o
-obj-$(CONFIG_EEPRO100) += eepro100.o
 obj-$(CONFIG_E100) += e100.o
 obj-$(CONFIG_TLAN) += tlan.o
 obj-$(CONFIG_EPIC100) += epic100.o
@@ -220,6 +219,7 @@ obj-$(CONFIG_S2IO) += s2io.o
 obj-$(CONFIG_MYRI10GE) += myri10ge/
 obj-$(CONFIG_SMC91X) += smc91x.o
 obj-$(CONFIG_SMC911X) += smc911x.o
+obj-$(CONFIG_SMSC911X) += smsc911x.o
 obj-$(CONFIG_BFIN_MAC) += bfin_mac.o
 obj-$(CONFIG_DM9000) += dm9000.o
 obj-$(CONFIG_PASEMI_MAC) += pasemi_mac_driver.o
index 9c08374..7a60bdd 100644 (file)
@@ -324,7 +324,6 @@ static int lance_rx (struct net_device *dev)
                                         len);
                        skb->protocol = eth_type_trans (skb, dev);
                        netif_rx (skb);
-                       dev->last_rx = jiffies;
                        dev->stats.rx_packets++;
                        dev->stats.rx_bytes += len;
                }
@@ -710,7 +709,6 @@ static int __devinit a2065_init_one(struct zorro_dev *z,
        unsigned long board, base_addr, mem_start;
        struct resource *r1, *r2;
        int err;
-       DECLARE_MAC_BUF(mac);
 
        board = z->resource.start;
        base_addr = board+A2065_LANCE;
@@ -787,8 +785,7 @@ static int __devinit a2065_init_one(struct zorro_dev *z,
        zorro_set_drvdata(z, dev);
 
        printk(KERN_INFO "%s: A2065 at 0x%08lx, Ethernet Address "
-              "%s\n", dev->name, board,
-              print_mac(mac, dev->dev_addr));
+              "%pM\n", dev->name, board, dev->dev_addr);
 
        return 0;
 }
index b144863..071a851 100644 (file)
@@ -146,7 +146,6 @@ out:
 static int __init ac_probe1(int ioaddr, struct net_device *dev)
 {
        int i, retval;
-       DECLARE_MAC_BUF(mac);
 
        if (!request_region(ioaddr, AC_IO_EXTENT, DRV_NAME))
                return -EBUSY;
@@ -171,8 +170,8 @@ static int __init ac_probe1(int ioaddr, struct net_device *dev)
        for (i = 0; i < 6; i++)
                dev->dev_addr[i] = inb(ioaddr + AC_SA_PROM + i);
 
-       printk(KERN_DEBUG "AC3200 in EISA slot %d, node %s",
-              ioaddr/0x1000, print_mac(mac, dev->dev_addr));
+       printk(KERN_DEBUG "AC3200 in EISA slot %d, node %pM",
+              ioaddr/0x1000, dev->dev_addr);
 #if 0
        /* Check the vendor ID/prefix. Redundant after checking the EISA ID */
        if (inb(ioaddr + AC_SA_PROM + 0) != AC_ADDR0
index 66de80b..109eb7c 100644 (file)
@@ -466,7 +466,7 @@ static int __devinit acenic_probe_one(struct pci_dev *pdev,
 
        SET_NETDEV_DEV(dev, &pdev->dev);
 
-       ap = dev->priv;
+       ap = netdev_priv(dev);
        ap->pdev = pdev;
        ap->name = pci_name(pdev);
 
@@ -892,7 +892,6 @@ static int __devinit ace_init(struct net_device *dev)
        int board_idx, ecode = 0;
        short i;
        unsigned char cache_size;
-       DECLARE_MAC_BUF(mac);
 
        ap = netdev_priv(dev);
        regs = ap->regs;
@@ -1019,7 +1018,7 @@ static int __devinit ace_init(struct net_device *dev)
        dev->dev_addr[4] = (mac2 >> 8) & 0xff;
        dev->dev_addr[5] = mac2 & 0xff;
 
-       printk("MAC: %s\n", print_mac(mac, dev->dev_addr));
+       printk("MAC: %pM\n", dev->dev_addr);
 
        /*
         * Looks like this is necessary to deal with on all architectures,
@@ -2034,7 +2033,6 @@ static void ace_rx_int(struct net_device *dev, u32 rxretprd, u32 rxretcsm)
 #endif
                        netif_rx(skb);
 
-               dev->last_rx = jiffies;
                dev->stats.rx_packets++;
                dev->stats.rx_bytes += retdesc->size;
 
index 07a6697..0bc4f54 100644 (file)
@@ -809,7 +809,6 @@ static int amd8111e_rx_poll(struct napi_struct *napi, int budget)
                        lp->coal_conf.rx_packets++;
                        lp->coal_conf.rx_bytes += pkt_len;
                        num_rx_pkt++;
-                       dev->last_rx = jiffies;
 
                err_next_pkt:
                        lp->rx_ring[rx_index].buff_phy_addr
@@ -1821,7 +1820,6 @@ static int __devinit amd8111e_probe_one(struct pci_dev *pdev,
        unsigned long reg_addr,reg_len;
        struct amd8111e_priv* lp;
        struct net_device* dev;
-       DECLARE_MAC_BUF(mac);
 
        err = pci_enable_device(pdev);
        if(err){
@@ -1963,8 +1961,8 @@ static int __devinit amd8111e_probe_one(struct pci_dev *pdev,
        chip_version = (readl(lp->mmio + CHIPID) & 0xf0000000)>>28;
        printk(KERN_INFO "%s: AMD-8111e Driver Version: %s\n",
               dev->name,MODULE_VERS);
-       printk(KERN_INFO "%s: [ Rev %x ] PCI 10/100BaseT Ethernet %s\n",
-              dev->name, chip_version, print_mac(mac, dev->dev_addr));
+       printk(KERN_INFO "%s: [ Rev %x ] PCI 10/100BaseT Ethernet %pM\n",
+              dev->name, chip_version, dev->dev_addr);
        if (lp->ext_phy_id)
                printk(KERN_INFO "%s: Found MII PHY ID 0x%08x at address 0x%02x\n",
                       dev->name, lp->ext_phy_id, lp->ext_phy_addr);
index 867f6ff..7426f69 100644 (file)
@@ -207,7 +207,6 @@ static int __init apne_probe1(struct net_device *dev, int ioaddr)
     int neX000, ctron;
 #endif
     static unsigned version_printed;
-    DECLARE_MAC_BUF(mac);
 
     if (ei_debug  &&  version_printed++ == 0)
        printk(version);
@@ -323,7 +322,7 @@ static int __init apne_probe1(struct net_device *dev, int ioaddr)
     for(i = 0; i < ETHER_ADDR_LEN; i++)
        dev->dev_addr[i] = SA_prom[i];
 
-    printk(" %s\n", print_mac(mac, dev->dev_addr));
+    printk(" %pM\n", dev->dev_addr);
 
     printk("%s: %s found.\n", dev->name, name);
 
index 735fc94..0c4e3c5 100644 (file)
@@ -851,7 +851,6 @@ static void cops_rx(struct net_device *dev)
 
         /* Send packet to a higher place. */
         netif_rx(skb);
-       dev->last_rx = jiffies;
 }
 
 static void cops_timeout(struct net_device *dev)
index 1071144..9a0be9b 100644 (file)
@@ -108,7 +108,7 @@ static struct net_device * __init ipddp_init(void)
  */
 static struct net_device_stats *ipddp_get_stats(struct net_device *dev)
 {
-        return dev->priv;
+       return netdev_priv(dev);
 }
 
 /*
@@ -170,8 +170,8 @@ static int ipddp_xmit(struct sk_buff *skb, struct net_device *dev)
 
         skb->protocol = htons(ETH_P_ATALK);     /* Protocol has changed */
 
-       ((struct net_device_stats *) dev->priv)->tx_packets++;
-        ((struct net_device_stats *) dev->priv)->tx_bytes+=skb->len;
+       ((struct net_device_stats *) netdev_priv(dev))->tx_packets++;
+       ((struct net_device_stats *) netdev_priv(dev))->tx_bytes += skb->len;
 
         if(aarp_send_ddp(rt->dev, skb, &rt->at, NULL) < 0)
                 dev_kfree_skb(skb);
index fef5560..dc4d496 100644 (file)
@@ -726,7 +726,8 @@ static int sendup_buffer (struct net_device *dev)
        int dnode, snode, llaptype, len; 
        int sklen;
        struct sk_buff *skb;
-       struct net_device_stats *stats = &((struct ltpc_private *)dev->priv)->stats;
+       struct ltpc_private *ltpc_priv = netdev_priv(dev);
+       struct net_device_stats *stats = &ltpc_priv->stats;
        struct lt_rcvlap *ltc = (struct lt_rcvlap *) ltdmacbuf;
 
        if (ltc->command != LT_RCVLAP) {
@@ -783,7 +784,6 @@ static int sendup_buffer (struct net_device *dev)
 
        /* toss it onwards */
        netif_rx(skb);
-       dev->last_rx = jiffies;
        return 0;
 }
 
@@ -823,7 +823,8 @@ static int ltpc_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd)
 {
        struct sockaddr_at *sa = (struct sockaddr_at *) &ifr->ifr_addr;
        /* we'll keep the localtalk node address in dev->pa_addr */
-       struct atalk_addr *aa = &((struct ltpc_private *)dev->priv)->my_addr;
+       struct ltpc_private *ltpc_priv = netdev_priv(dev);
+       struct atalk_addr *aa = &ltpc_priv->my_addr;
        struct lt_init c;
        int ltflags;
 
@@ -904,7 +905,8 @@ static int ltpc_xmit(struct sk_buff *skb, struct net_device *dev)
         * and skb->len is the length of the ddp data + ddp header
         */
 
-       struct net_device_stats *stats = &((struct ltpc_private *)dev->priv)->stats;
+       struct ltpc_private *ltpc_priv = netdev_priv(dev);
+       struct net_device_stats *stats = &ltpc_priv->stats;
 
        int i;
        struct lt_sendlap cbuf;
@@ -943,7 +945,8 @@ static int ltpc_xmit(struct sk_buff *skb, struct net_device *dev)
 
 static struct net_device_stats *ltpc_get_stats(struct net_device *dev)
 {
-       struct net_device_stats *stats = &((struct ltpc_private *) dev->priv)->stats;
+       struct ltpc_private *ltpc_priv = netdev_priv(dev);
+       struct net_device_stats *stats = &ltpc_priv->stats;
        return stats;
 }
 
index e0a18e7..3ff9aff 100644 (file)
@@ -87,7 +87,7 @@ MODULE_LICENSE("GPL");
 static void rx(struct net_device *dev, int bufnum,
               struct archdr *pkthdr, int length)
 {
-       struct arcnet_local *lp = dev->priv;
+       struct arcnet_local *lp = netdev_priv(dev);
        struct sk_buff *skb;
        struct archdr *pkt = pkthdr;
        int ofs;
@@ -125,7 +125,6 @@ static void rx(struct net_device *dev, int bufnum,
        skb->protocol = __constant_htons(ETH_P_ARCNET);
 ;
        netif_rx(skb);
-       dev->last_rx = jiffies;
 }
 
 
@@ -168,7 +167,7 @@ static int build_header(struct sk_buff *skb, struct net_device *dev,
 static int prepare_tx(struct net_device *dev, struct archdr *pkt, int length,
                      int bufnum)
 {
-       struct arcnet_local *lp = dev->priv;
+       struct arcnet_local *lp = netdev_priv(dev);
        struct arc_hardware *hard = &pkt->hard;
        int ofs;
 
index 8c8d6c4..e3082a9 100644 (file)
@@ -194,7 +194,7 @@ static int __init arcrimi_found(struct net_device *dev)
 
        /* initialize the rest of the device structure. */
 
-       lp = dev->priv;
+       lp = netdev_priv(dev);
        lp->card_name = "RIM I";
        lp->hw.command = arcrimi_command;
        lp->hw.status = arcrimi_status;
@@ -260,7 +260,7 @@ err_free_irq:
  */
 static int arcrimi_reset(struct net_device *dev, int really_reset)
 {
-       struct arcnet_local *lp = dev->priv;
+       struct arcnet_local *lp = netdev_priv(dev);
        void __iomem *ioaddr = lp->mem_start + 0x800;
 
        BUGMSG(D_INIT, "Resetting %s (status=%02Xh)\n", dev->name, ASTATUS());
@@ -281,7 +281,7 @@ static int arcrimi_reset(struct net_device *dev, int really_reset)
 
 static void arcrimi_setmask(struct net_device *dev, int mask)
 {
-       struct arcnet_local *lp = dev->priv;
+       struct arcnet_local *lp = netdev_priv(dev);
        void __iomem *ioaddr = lp->mem_start + 0x800;
 
        AINTMASK(mask);
@@ -289,7 +289,7 @@ static void arcrimi_setmask(struct net_device *dev, int mask)
 
 static int arcrimi_status(struct net_device *dev)
 {
-       struct arcnet_local *lp = dev->priv;
+       struct arcnet_local *lp = netdev_priv(dev);
        void __iomem *ioaddr = lp->mem_start + 0x800;
 
        return ASTATUS();
@@ -297,7 +297,7 @@ static int arcrimi_status(struct net_device *dev)
 
 static void arcrimi_command(struct net_device *dev, int cmd)
 {
-       struct arcnet_local *lp = dev->priv;
+       struct arcnet_local *lp = netdev_priv(dev);
        void __iomem *ioaddr = lp->mem_start + 0x800;
 
        ACOMMAND(cmd);
@@ -306,7 +306,7 @@ static void arcrimi_command(struct net_device *dev, int cmd)
 static void arcrimi_copy_to_card(struct net_device *dev, int bufnum, int offset,
                                 void *buf, int count)
 {
-       struct arcnet_local *lp = dev->priv;
+       struct arcnet_local *lp = netdev_priv(dev);
        void __iomem *memaddr = lp->mem_start + 0x800 + bufnum * 512 + offset;
        TIME("memcpy_toio", count, memcpy_toio(memaddr, buf, count));
 }
@@ -315,7 +315,7 @@ static void arcrimi_copy_to_card(struct net_device *dev, int bufnum, int offset,
 static void arcrimi_copy_from_card(struct net_device *dev, int bufnum, int offset,
                                   void *buf, int count)
 {
-       struct arcnet_local *lp = dev->priv;
+       struct arcnet_local *lp = netdev_priv(dev);
        void __iomem *memaddr = lp->mem_start + 0x800 + bufnum * 512 + offset;