27 Apr, 2009

28 commits

  • >From now on FW will be downloaded from the binary file using request_firmware.

    There will be different files for every supported chip. Currently 57710 (e1) and
    57711 (e1h).

    File names have the following format: bnx2x--.fw.
    ihex versions of current FW files are submitted in the next patch.

    Each binary file has a header in the following format:

    struct bnx2x_fw_file_section {
    __be32 len;
    __be32 offset;
    }

    struct bnx2x_fw_file_hdr {
    struct bnx2x_fw_file_section init_ops;
    struct bnx2x_fw_file_section init_ops_offsets;
    struct bnx2x_fw_file_section init_data;
    struct bnx2x_fw_file_section tsem_int_table_data;
    struct bnx2x_fw_file_section tsem_pram_data;
    struct bnx2x_fw_file_section usem_int_table_data;
    struct bnx2x_fw_file_section usem_pram_data;
    struct bnx2x_fw_file_section csem_int_table_data;
    struct bnx2x_fw_file_section csem_pram_data;
    struct bnx2x_fw_file_section xsem_int_table_data;
    struct bnx2x_fw_file_section xsem_pram_data;
    struct bnx2x_fw_file_section fw_version;
    }

    Each bnx2x_fw_file_section contains the length and the offset of the appropriate
    section in the binary file. Values are stored in the big endian format.

    Data types of arrays:

    init_data __be32
    init_ops_offsets __be16
    XXsem_pram_data u8
    XXsem_int_table_data u8
    init_ops struct raw_op {
    u8 op;
    __be24 offset;
    __be32 data;
    }
    fw_version u8

    >From now boundaries of a specific initialization stage are stored in
    init_ops_offsets array instead of being defined by separate macroes. The index
    in init_ops_offsets is calculated by BLOCK_OPS_IDX macro:

    #define BLOCK_OPS_IDX(block, stage, end) \
    (2*(((block)*STAGE_IDX_MAX) + (stage)) + (end))

    Security:

    In addition to sanity check of array boundaries bnx2x will check a FW version.
    Additional checks might be added in the future.

    Signed-off-by: Vladislav Zolotarov
    Signed-off-by: Eilon Greenstein
    Signed-off-by: David S. Miller

    Vladislav Zolotarov
     
  • Signed-off-by: Vladislav Zolotarov
    Signed-off-by: Eilon Greenstein
    Signed-off-by: David S. Miller

    Vladislav Zolotarov
     
  • When creating a certain types of VPN, NetworkManager will first attempt
    to find an available tun device by iterating through 'vpn%d' until it
    finds one that isn't already busy. Then it'll set that to be persistent
    and owned by the otherwise unprivileged user that the VPN dæmon itself
    runs as.

    There's a race condition here -- during the period where the vpn%d
    device is created and we're waiting for the VPN dæmon to actually
    connect and use it, if we try to create _another_ device we could end up
    re-using the same one -- because trying to open it again doesn't get
    -EBUSY as it would while it's _actually_ busy.

    So solve this, we add an IFF_TUN_EXCL flag which causes tun_set_iff() to
    fail if it would be opening an existing persistent tundevice -- so that
    we can make sure we're getting an entirely _new_ device.

    Signed-off-by: David Woodhouse
    Signed-off-by: David S. Miller

    David Woodhouse
     
  • Values of dB between -0.99 and -0.01 will be output with the wrong
    sign. This converts the negative value to positive and outputs it
    with a "-" prefix.

    Signed-off-by: Simon Arlott
    Signed-off-by: David S. Miller

    Simon Arlott
     
  • mac_to_intf() can return -1 when no device or function is found, but when
    mac->dma_if is unsigned. The error wasn't noticed.

    Signed-off-by: Roel Kluin
    Acked-by: Olof Johansson
    Signed-off-by: David S. Miller

    roel kluin
     
  • When I initially implemented this protocol, I disregarded the use of netlink
    attribute headers, thinking for my purposes they weren't needed. I've come to
    find out that, as I'm starting to work with sending down messages with
    associated data (like config messages), the kernel code spits out warnings about
    trailing data in a netlink skb that doesn't have an associated header on it. As
    such, I'm going to start including attribute headers in my netlink transaction,
    and so for completeness, I should likely include them on messages bound from the
    kernel to user space. This patch adds that header to the kernel, and bumps the
    protocol version accordingly

    Signed-off-by: Neil Horman
    Signed-off-by: David S. Miller

    Neil Horman
     
  • 82598 and 82599 do not support SFP 1G modules. Instead of allowing the
    driver to load, but never get link, rejecting the module and displaying
    a useful message is more preferrable. The framework for displaying the
    failure message already exists, now we just need to detect and reject the
    SFP modules.

    Signed-off-by: Peter P Waskiewicz Jr
    Signed-off-by: Jeff Kirsher
    Signed-off-by: David S. Miller

    Waskiewicz Jr, Peter P
     
  • The igb driver was switching between adapter->itr containing the EITR value
    and the number of interrupts per second. This resulted in high latencies
    being seen after brining the interface down and then back up. To resolve
    the issue the itr value will now only contain the value that should be
    programmed into EITR.

    Signed-off-by: Alexander Duyck
    Signed-off-by: Jeff Kirsher
    Signed-off-by: David S. Miller

    Alexander Duyck
     
  • Signed-off-by: Alexander Beregalov
    Acked-by: Ram Vepa
    Signed-off-by: David S. Miller

    Alexander Beregalov
     
  • If vpath is NULL then hldev is NULL also.

    Signed-off-by: Alexander Beregalov
    Acked-by: Ram Vepa
    Signed-off-by: David S. Miller

    Alexander Beregalov
     
  • Pointed out by Sean E. Millichamp.

    Quote from Documentation/networking/bonding.txt:
    "Note that when a bonding interface has no active links, the
    driver will immediately reuse the first link that goes up, even if the
    updelay parameter has been specified (the updelay is ignored in this
    case). If there are slave interfaces waiting for the updelay timeout
    to expire, the interface that first went into that state will be
    immediately reused. This reduces down time of the network if the
    value of updelay has been overestimated, and since this occurs only in
    cases with no connectivity, there is no additional penalty for
    ignoring the updelay."

    This patch actually changes the behaviour in this way.

    Signed-off-by: Jiri Pirko

    drivers/net/bonding/bond_main.c | 8 ++++++++
    1 files changed, 8 insertions(+), 0 deletions(-)
    Signed-off-by: David S. Miller

    Jiri Pirko
     
  • This patch only changes the order of interfaces to use for checking slave link
    status in bond_check_dev_link() to priorize ethtool interface. Should safe some
    troubles as ethtool seems to be more supported.

    Jirka

    Signed-off-by: Jiri Pirko

    drivers/net/bonding/bond_main.c | 26 ++++++++++++--------------
    1 files changed, 12 insertions(+), 14 deletions(-)
    Signed-off-by: David S. Miller

    Jiri Pirko
     
  • Modules are not supposed to use any of the *_initcall*() hooks as
    the entry point. fsl_pq_mdio.c was using subsys_initcall_sync()
    instead of module_init() to guarantee that the MDIO bus was initialized
    before the Ethernet driver goes looking for the phy. However, the recent
    OF helpers rework happens to also make sure PHY connection is deferred to
    .open time, so using an initcall is no longer necessary.

    This patch replaces the initcall with a more traditional an accepted
    module_init() call.

    Tested on Freescale MPC8349emitxgp eval board.

    Signed-off-by: Grant Likely
    Signed-off-by: David S. Miller

    Grant Likely
     
  • This patch adds support for the Xilinx ll_temac 10/100/1000 Ethernet
    device. The ll_temac ipcore is typically used on Xilinx Virtex and
    Spartan designs attached to either a PowerPC 4xx or Microblaze
    processor.

    At the present moment, this driver only works with Virtex5 PowerPC
    designs because it assumes DCR is used to access the DMA registers.
    However, the low level access to DMA registers is abstracted and
    it should be easy to adapt for the other implementations.

    I'm posting this driver now as an RFC. There are still some things that
    need to be tightened up, but it does appear to be stable.

    Derived from driver code written by Yoshio Kashiwagi and David H. Lynch Jr.

    Tested on Xilinx ML507 eval board with Base System Builder generated
    FPGA design.

    Signed-off-by: Grant Likely
    Acked-by: Andy Fleming
    Signed-off-by: David S. Miller

    Grant Likely
     
  • This patch simplifies the driver by making use of more common code.

    Signed-off-by: Grant Likely
    Acked-by: Andy Fleming
    Signed-off-by: David S. Miller

    Grant Likely
     
  • This patch modifies the bitbanged MDIO driver in the ep8248e platform
    code to use the common of_mdio infrastructure.

    Signed-off-by: Grant Likely
    Acked-by: Andy Fleming
    Signed-off-by: David S. Miller

    Grant Likely
     
  • This patch simplifies the driver by making use of more common code.

    Signed-off-by: Grant Likely
    Acked-by: Andy Fleming
    Signed-off-by: David S. Miller

    Grant Likely
     
  • This patch simplifies the driver by making use of more common code.

    Signed-off-by: Grant Likely
    Tested-by: Olof Johansson
    Acked-by: Olof Johansson
    Acked-by: Andy Fleming
    Signed-off-by: David S. Miller

    Grant Likely
     
  • This patch simplifies the driver by making use of more common code.

    Tested on Freescale MPC8349emitxgp eval board

    Signed-off-by: Grant Likely
    Acked-by: Andy Fleming
    Signed-off-by: David S. Miller

    Grant Likely
     
  • This patch simplifies the driver by making use of more common code.

    Tested on Freescale MPC8349emitxgp eval board

    Signed-off-by: Grant Likely
    Acked-by: Andy Fleming
    Signed-off-by: David S. Miller

    Grant Likely
     
  • The patch reworks the MPC5200 Fast Ethernet Controller (FEC) driver to
    use the of_mdio infrastructure for registering PHY devices from data out
    openfirmware device tree, and eliminates the assumption that the PHY
    for the FEC is always attached to the FEC's own MDIO bus. With this
    patch, the FEC can use a PHY attached to any MDIO bus if it is described
    in the device tree.

    Tested on Freescale Lite5200b eval board

    Signed-off-by: Grant Likely
    Acked-by: Andy Fleming
    Signed-off-by: David S. Miller

    Grant Likely
     
  • Add support for parsing the device tree for PHY devices on an MDIO bus.
    Currently many of the PowerPC ethernet drivers are open coding a solution
    for reading data out of the device tree to find the correct PHY device.
    This patch implements a set of common routines to:

    a) let MDIO bus drivers register phy_devices described in the tree, and
    b) let MAC drivers find the correct phy_device via the tree.

    Signed-off-by: Grant Likely
    Acked-by: Andy Fleming
    Signed-off-by: David S. Miller

    Grant Likely
     
  • Add phy_connect_direct() and phy_attach_direct() functions so that
    drivers can use a pointer to the phy_device instead of trying to determine
    the phy's bus_id string.

    This patch is useful for OF device tree descriptions of phy devices where
    the driver doesn't need or know what the bus_id value in order to get a
    phy_device pointer.

    Signed-off-by: Grant Likely
    Acked-by: Andy Fleming
    Signed-off-by: David S. Miller

    Grant Likely
     
  • This patch makes changes in preparation for supporting open firmware
    device tree descriptions of MDIO busses. Changes include:
    - Cleanup handling of phy_map[] entries; they are already NULLed when
    registering and so don't need to be re-cleared, and it is good practice
    to clear them out when unregistering.
    - Split phy_device registration out into a new function so that the
    OF helpers can do two stage registration (separate allocation and
    registration steps).

    Signed-off-by: Grant Likely
    Acked-by: Andy Fleming
    Signed-off-by: David S. Miller

    Grant Likely
     
  • of_parse_phandle() is a helper function to read and parse a phandle
    property and return a pointer to the resulting device_node.

    Signed-off-by: Grant Likely
    Acked-by: Andy Fleming
    Signed-off-by: David S. Miller

    Grant Likely
     
  • The IP MIB (RFC 4293) defines stats for InOctets, OutOctets, InMcastOctets and
    OutMcastOctets:
    http://tools.ietf.org/html/rfc4293
    But it seems we don't track those in any way that easy to separate from other
    protocols. This patch adds those missing counters to the stats file. Tested
    successfully by me

    With help from Eric Dumazet.

    Signed-off-by: Neil Horman
    Signed-off-by: David S. Miller

    Neil Horman
     
  • Remove redundant set of skb->dev (now handled for ethernet
    drivers by eth_type_trans()).

    Signed-off-by: John Dykstra
    Signed-off-by: David S. Miller

    John Dykstra
     
  • This patch removes an unused parameter (tb_stamp) from fib_table
    structure in include/net/ip_fib.h.

    Signed-off-by: Rami Rosen
    Signed-off-by: David S. Miller

    Rami Rosen
     

26 Apr, 2009

1 commit


25 Apr, 2009

2 commits

  • net/mac80211/tx.c: In function ‘ieee80211_tx_h_select_key’:
    net/mac80211/tx.c:448: warning: ‘key’ may be used uninitialized in this function

    drivers/net/wireless/ath/ath9k/rc.c: In function ‘ath_rc_rate_getidx’:
    drivers/net/wireless/ath/ath9k/rc.c:815: warning: ‘nextindex’ may be used uninitialized in this function

    drivers/net/wireless/hostap/hostap_plx.c: In function ‘prism2_plx_probe’:
    drivers/net/wireless/hostap/hostap_plx.c:438: warning: ‘cor_index’ may be used uninitialized in this function
    drivers/net/wireless/hostap/hostap_plx.c:438: warning: ‘cor_offset’ may be used uninitialized in this function

    Signed-off-by: John W. Linville

    John W. Linville
     
  • drivers/net/wireless/libertas/if_spi.c: In function ‘if_spi_c2h_data’:
    drivers/net/wireless/libertas/if_spi.c:733: warning: format ‘%u’ expects type ‘unsigned int’, but argument 4 has type ‘long unsigned int’

    Signed-off-by: John W. Linville

    John W. Linville
     

24 Apr, 2009

1 commit

  • Fix this build error caused by 362b76edb789
    "8390p: Get rid of init_module/cleanup_module"

    drivers/net/8390p.c:94:19: error: invalid suffix "p_init_module" on integer constant
    drivers/net/8390p.c:94: error: expected identifier or '(' before numeric constant
    drivers/net/8390p.c:99:20: error: invalid suffix "p_cleanup_module" on integer constant

    Signed-off-by: Alexander Beregalov
    Signed-off-by: David S. Miller

    Alexander Beregalov
     

23 Apr, 2009

8 commits

  • From: Ursula Braun

    net/iucv/af_iucv.c in net-next-2.6 is almost correct. 4 lines should
    still be deleted. These are the remaining changes:

    Signed-off-by: David S. Miller

    Ursula Braun
     
  • Conflicts:
    net/iucv/af_iucv.c

    David S. Miller
     
  • The SO_MSGLIMIT socket option modifies the message limit for new
    IUCV communication paths.

    The message limit specifies the maximum number of outstanding messages
    that are allowed for connections. This setting can be lowered by z/VM
    when an IUCV connection is established.

    Expects an integer value in the range of 1 to 65535.
    The default value is 65535.

    The message limit must be set before calling connect() or listen()
    for sockets.

    If sockets are already connected or in state listen, changing the message
    limit is not supported.
    For reading the message limit value, unconnected sockets return the limit
    that has been set or the default limit. For connected sockets, the actual
    message limit is returned. The actual message limit is assigned by z/VM
    for each connection and it depends on IUCV MSGLIMIT authorizations
    specified for the z/VM guest virtual machine.

    Signed-off-by: Hendrik Brueckner
    Signed-off-by: Ursula Braun
    Signed-off-by: David S. Miller

    Hendrik Brueckner
     
  • If the skb cannot be copied to user iovec, always return -EFAULT.
    The skb is enqueued again, except MSG_PEEK flag is set, to allow user space
    applications to correct its iovec pointer.

    Signed-off-by: Hendrik Brueckner
    Signed-off-by: Ursula Braun
    Signed-off-by: David S. Miller

    Hendrik Brueckner
     
  • This patch provides the socket type SOCK_SEQPACKET in addition to
    SOCK_STREAM.

    AF_IUCV sockets of type SOCK_SEQPACKET supports an 1:1 mapping of
    socket read or write operations to complete IUCV messages.
    Socket data or IUCV message data is not fragmented as this is the
    case for SOCK_STREAM sockets.

    The intention is to help application developers who write
    applications or device drivers using native IUCV interfaces
    (Linux kernel or z/VM IUCV interfaces).

    Signed-off-by: Hendrik Brueckner
    Signed-off-by: Ursula Braun
    Signed-off-by: David S. Miller

    Hendrik Brueckner
     
  • Allow 'classification' of socket data that is sent or received over
    an af_iucv socket. For classification of data, the target class of an
    (native) iucv message is used.

    This patch provides the cmsg interface for iucv_sock_recvmsg() and
    iucv_sock_sendmsg(). Applications can use the msg_control field of
    struct msghdr to set or get the target class as a
    "socket control message" (SCM/CMSG).

    Signed-off-by: Hendrik Brueckner
    Signed-off-by: Ursula Braun
    Signed-off-by: David S. Miller

    Hendrik Brueckner
     
  • The patch allows to send and receive data in the parameter list of an
    iucv message.
    The parameter list is an arry of 8 bytes that are used by af_iucv as
    follows:
    0..6 7 bytes for socket data and
    7 1 byte to store the data length.

    Instead of storing the data length directly, the difference
    between 0xFF and the data length is used.
    This convention does not interfere with the existing use of PRM
    messages for shutting down the send direction of an AF_IUCV socket
    (shutdown() operation). Data lenghts greater than 7 (or PRM message
    byte 8 is less than 0xF8) denotes to special messages.
    Currently, the special SEND_SHUTDOWN message is supported only.

    To use IPRM messages, both communicators must set the IUCV_IPRMDATA
    flag during path negotiation, i.e. in iucv_connect() and
    path_pending().

    To be compatible to older af_iucv implementations, sending PRM
    messages is controlled by the socket option SO_IPRMDATA_MSG.
    Receiving PRM messages does not depend on the socket option (but
    requires the IUCV_IPRMDATA path flag to be set).

    Sending/Receiving data in the parameter list improves performance for
    small amounts of data by reducing message_completion() interrupts and
    memory copy operations.

    Signed-off-by: Hendrik Brueckner
    Signed-off-by: Ursula Braun
    Signed-off-by: David S. Miller

    Hendrik Brueckner
     
  • Provide the socket operations getsocktopt() and setsockopt() to enable/disable
    sending of data in the parameter list of IUCV messages.
    The patch sets respective flag only.

    Signed-off-by: Hendrik Brueckner
    Signed-off-by: Ursula Braun
    Signed-off-by: David S. Miller

    Hendrik Brueckner