16 Aug, 2010

1 commit


15 Aug, 2010

2 commits

  • sysctl output ipv6 gc_elasticity and min_adv_mss as values divided by
    HZ. However, they are not in unit of jiffies, since ip6_rt_min_advmss
    refers to packet size and ip6_rt_fc_elasticity is used as scaler as in
    expire>>ip6_rt_gc_elasticity, so replace the jiffies conversion
    handler will regular handler for them.

    This has impact on scripts that are currently working assuming the
    divide by HZ, will yield different results with this patch in place.

    Signed-off-by: Min Zhang
    Signed-off-by: David S. Miller

    Min Zhang
     
  • As xfrm_compile_policy runs within a read_lock, we cannot use
    GFP_KERNEL for memory allocations.

    Reported-by: Luca Tettamanti
    Signed-off-by: Herbert Xu
    Signed-off-by: David S. Miller

    Herbert Xu
     

13 Aug, 2010

2 commits

  • READ/WRITE seems to be a bit too generic for defines in a device
    driver. Just rename them to CTCM_READ/CTCM_WRITE to avoid warnings.

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

    Ursula Braun
     
  • READ/WRITE seems to be a bit too generic for defines in a device driver.
    Just rename them to READ_CHANNEL/WRITE_CHANNEL which should suffice.

    Fixes this:

    In file included from drivers/s390/net/claw.c:93:
    drivers/s390/net/claw.h:78:1: warning: "WRITE" redefined
    In file included from /home2/heicarst/linux-2.6/arch/s390/include/asm/debug.h:12,
    from drivers/s390/net/claw.c:68:
    include/linux/fs.h:156:1: warning: this is the location of the previous definition

    Signed-off-by: Heiko Carstens
    Signed-off-by: Ursula Braun
    Signed-off-by: David S. Miller

    Heiko Carstens
     

12 Aug, 2010

2 commits

  • Several gigabit network drivers (SB1250_MAC, TIGON3, FSL, GIANFAR,
    UCC_GETH, MV643XX_ETH, XILINX_LL_TEMAC, S6GMAC, STMMAC_ETH, PASEMI_MAC,
    and OCTEON_ETHERNET) select PHYLIB. These drivers are not under
    NET_ETHERNET (10/100 mbit), so this warning is generated (long, irrelevant
    parts are omitted):

    warning: (NET_DSA && NET && EXPERIMENTAL && NET_ETHERNET && !S390 || ... || SB1250_MAC && NETDEVICES && NETDEV_1000 && SIBYTE_SB1xxx_SOC || TIGON3 && NETDEVICES && NETDEV_1000 && PCI || FSL_PQ_MDIO && NETDEVICES && NETDEV_1000 && FSL_SOC || GIANFAR && NETDEVICES && NETDEV_1000 && FSL_SOC || UCC_GETH && NETDEVICES && NETDEV_1000 && QUICC_ENGINE || MV643XX_ETH && NETDEVICES && NETDEV_1000 && (MV64X60 || PPC32 || PLAT_ORION) || XILINX_LL_TEMAC && NETDEVICES && NETDEV_1000 && (PPC || MICROBLAZE) || S6GMAC && NETDEVICES && NETDEV_1000 && XTENSA_VARIANT_S6000 || STMMAC_ETH && NETDEV_1000 && NETDEVICES && CPU_SUBTYPE_ST40 || PASEMI_MAC && NETDEVICES && NETDEV_10000 && PPC_PASEMI && PCI || OCTEON_ETHERNET && STAGING && !STAGING_EXCLUDE_BUILD && CPU_CAVIUM_OCTEON) selects PHYLIB which has unmet direct dependencies (!S390 && NET_ETHERNET)

    PHYLIB is used by non-10/100 mbit ethernet drivers, so change the dependencies
    to be NETDEVICES instead of NET_ETHERNET.

    Signed-off-by: Randy Dunlap
    Signed-off-by: David S. Miller

    Randy Dunlap
     
  • This patch adds a limit for nframes as the number of frames in TX_SETUP and
    RX_SETUP are derived from a single byte multiplex value by default.
    Use-cases that would require to send/filter more than 256 CAN frames should
    be implemented in userspace for complexity reasons anyway.

    Additionally the assignments of unsigned values from userspace to signed
    values in kernelspace and vice versa are fixed by using unsigned values in
    kernelspace consistently.

    Signed-off-by: Oliver Hartkopp
    Reported-by: Ben Hawkes
    Acked-by: Urs Thuermann
    Signed-off-by: David S. Miller

    Oliver Hartkopp
     

11 Aug, 2010

7 commits


10 Aug, 2010

21 commits

  • The previous value of 672 for L2CAP_DEFAULT_MAX_PDU_SIZE is based on
    the default L2CAP MTU. That default MTU is calculated from the size
    of two DH5 packets, minus ACL and L2CAP b-frame header overhead.

    ERTM is used with newer basebands that typically support larger 3-DH5
    packets, and i-frames and s-frames have more header overhead. With
    clean RF conditions, basebands will typically attempt to use 1021-byte
    3-DH5 packets for maximum throughput. Adjusting for 2 bytes of ACL
    headers plus 10 bytes of worst-case L2CAP headers yields 1009 bytes
    of payload.

    This PDU size imposes less overhead for header bytes and gives the
    baseband the option to choose 3-DH5 packets, but is small enough for
    ERTM traffic to interleave well with other L2CAP or SCO data.
    672-byte payloads do not allow the most efficient over-the-air
    packet choice, and cannot achieve maximum throughput over BR/EDR.

    Signed-off-by: Mat Martineau
    Signed-off-by: Marcel Holtmann

    Mat Martineau
     
  • remote_tx_win is intended to be set on receipt of an L2CAP
    configuration request. The value is used to determine the size of the
    transmit window on the remote side of an ERTM connection, so L2CAP
    can stop sending frames when that remote window is full.

    An incorrect remote_tx_win value will cause the stack to not fully
    utilize the tx window (performance impact), or to overfill the remote
    tx window (causing dropped frames or a disconnect).

    This patch removes an extra setting of remote_tx_win when a
    configuration response is received. The transmit window has a
    different meaning in a response - it is an informational value
    less than or equal to the local tx_win.

    Signed-off-by: Mat Martineau
    Signed-off-by: Marcel Holtmann

    Mat Martineau
     
  • The L2CAP specification requires that the ERTM retransmit timeout be at
    least 2 seconds for BR/EDR connections.

    Signed-off-by: Mat Martineau
    Signed-off-by: Marcel Holtmann

    Mat Martineau
     
  • Incoming configuration values must be converted to native CPU order
    before use. This fixes a bug where a little-endian MPS value is
    compared to a native CPU value. On big-endian processors, this
    can cause ERTM and streaming mode segmentation to produce PDUs
    that are larger than the remote stack is expecting, or that would
    produce fragmented skbs that the current FCS code cannot handle.

    Signed-off-by: Mat Martineau
    Signed-off-by: Marcel Holtmann

    Mat Martineau
     
  • This is based on work originally done by Patric McHardy.

    Signed-off-by: Ben Greear
    Signed-off-by: David S. Miller

    Ben Greear
     
  • Driver should call pci_disable_device() if it returns from pci_probe()
    with error.

    Signed-off-by: Kulikov Vasiliy
    Signed-off-by: David S. Miller

    Kulikov Vasiliy
     
  • Driver should call pci_disable_device() if it returns from pci_probe()
    with error.

    Signed-off-by: Kulikov Vasiliy
    Signed-off-by: David S. Miller

    Kulikov Vasiliy
     
  • Driver should call pci_disable_device() if it returns from pci_probe()
    with error.

    Signed-off-by: Kulikov Vasiliy
    Signed-off-by: David S. Miller

    Kulikov Vasiliy
     
  • This patch makes rx_submit() return an error code, and makes some call sites
    that care check the return value. This is important because it lets us properly
    handle cases where the device isn't ready to handle URB submissions (e.g., when
    it is autosuspended under some drivers); previously, we would attempt and fail
    to submit URBs and reschedule ourselves to try and fail again. This patch is
    against Linus's 2.6 repo commit 45d7f32c7a43cbb9592886d38190e379e2eb2226.

    Signed-Off-By: Elizabeth Jones
    Signed-off-by: David S. Miller

    David S. Miller
     
  • …mmy bind/unbind handles

    Verify in register_qdisc() some basic qdisc class handlers are present.

    Signed-off-by: Jarek Poplawski <jarkao2@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

    Jarek Poplawski
     
  • …dummy bind/unbind handles

    Add dummy .unbind_tcf and .put qdisc class ops for easier verification.
    (All other schedulers have it like this.)

    Signed-off-by: Jarek Poplawski <jarkao2@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

    Jarek Poplawski
     
  • qlcnic_pci_info structs are 128 bytes so an array of 8 uses 1024 bytes.
    That's a lot if you run with 4K stacks. I allocated them with kcalloc()
    instead.

    Signed-off-by: Dan Carpenter
    Signed-off-by: David S. Miller

    Dan Carpenter
     
  • In the original code we allocated memory conditionally and freed it in
    the error handling unconditionally. It turns out that this function is
    only called during initialization and "adapter->npars" and
    "adapter->eswitch" are always NULL at the start of the function. I
    removed those checks.

    Also since I was cleaning things, I changed the error handling for
    qlcnic_get_pci_info() and pulled everything in an indent level.

    Signed-off-by: Dan Carpenter
    Signed-off-by: David S. Miller

    Dan Carpenter
     
  • Fix phy.c kernel-doc notation:

    Warning(drivers/net/phy/phy.c:313): No description found for parameter 'ifr'
    Warning(drivers/net/phy/phy.c:313): Excess function parameter 'mii_data' description in 'phy_mii_ioctl'

    Signed-off-by: Randy Dunlap
    Signed-off-by: David S. Miller

    Randy Dunlap
     
  • Add missing kernel-doc notation to struct sock:

    Warning(include/net/sock.h:324): No description found for parameter 'sk_peer_pid'
    Warning(include/net/sock.h:324): No description found for parameter 'sk_peer_cred'
    Warning(include/net/sock.h:324): No description found for parameter 'sk_classid'
    Warning(include/net/sock.h:324): Excess struct/union/enum/typedef member 'sk_peercred' description in 'sock'

    Signed-off-by: Randy Dunlap
    Signed-off-by: David S. Miller

    Randy Dunlap
     
  • Fix etherdevice.h parameter name typo in kernel-doc:

    Warning(include/linux/etherdevice.h:138): No description found for parameter 'hwaddr'
    Warning(include/linux/etherdevice.h:138): Excess function parameter 'addr' description in 'dev_hw_addr_random'

    Signed-off-by: Randy Dunlap
    Signed-off-by: David S. Miller

    Randy Dunlap
     
  • drivers/net/wan/farsync.c: In function 'fst_intr_rx':
    drivers/net/wan/farsync.c:1312: warning: cast to pointer from integer of different size
    drivers/net/wan/farsync.c: In function 'do_bottom_half_tx':
    drivers/net/wan/farsync.c:1407: warning: cast to pointer from integer of different size

    The "skb" and "mem" arguments being passed here are DMA addresses
    being programmed into the hardware registers, so pass them as the type
    that they actually are. And use the correct printf formatting in
    debug logging statements for these things to match the type change.

    Reported-by: Andrew Morton
    Signed-off-by: David S. Miller

    David S. Miller
     
  • Currently the driver will try to protect all frames,
    which leads to a lot of odd things like sending an
    RTS with a zeroed RA before multicast frames, which
    is clearly bogus.

    In order to fix all of this, we need to take a step
    back and see what we need to achieve:
    * we need RTS/CTS protection if requested by
    the AP for the BSS, mac80211 tells us this
    * in that case, CTS-to-self should only be
    enabled when mac80211 tells us
    * additionally, as a hardware workaround, on
    some devices we have to protect aggregated
    frames with RTS

    To achieve the first two items, set up the RXON
    accordingly and set the protection required flag
    in the transmit command when mac80211 requests
    protection for the frame.

    To achieve the last item, set the rate-control
    RTS-requested flag for all stations that we have
    aggregation sessions with, and set the protection
    required flag when sending aggregated frames (on
    those devices where this is required).

    Since otherwise bugs can occur, do not allow the
    user to override the RTS-for-aggregation setting
    from sysfs any more.

    Finally, also clean up the way all these flags get
    set in the driver and move everything into the
    device-specific functions.

    Cc: stable@kernel.org [2.6.35]
    Signed-off-by: Johannes Berg
    Signed-off-by: Wey-Yi Guy
    Signed-off-by: John W. Linville

    Johannes Berg
     
  • Accesses to "wdev->current_bss" must be
    locked with the wdev lock, which action
    frame transmission is missing.

    Cc: stable@kernel.org [2.6.33+]
    Signed-off-by: Johannes Berg
    Signed-off-by: John W. Linville

    Johannes Berg
     
  • CC [M] drivers/net/wireless/libertas/cfg.o
    /home/greearb/git/wireless-testing/drivers/net/wireless/libertas/cfg.c: In function ‘lbs_scan_worker’:
    /home/greearb/git/wireless-testing/drivers/net/wireless/libertas/cfg.c:722: error: ‘TASK_NORMAL’ undeclared (first use in this function)
    /home/greearb/git/wireless-testing/drivers/net/wireless/libertas/cfg.c:722: error: (Each undeclared identifier is reported only once
    /home/greearb/git/wireless-testing/drivers/net/wireless/libertas/cfg.c:722: error: for each function it appears in.)
    /home/greearb/git/wireless-testing/drivers/net/wireless/libertas/cfg.c: In function ‘lbs_cfg_connect’:
    /home/greearb/git/wireless-testing/drivers/net/wireless/libertas/cfg.c:1267: error: ‘TASK_INTERRUPTIBLE’ undeclared (first use in this function)
    /home/greearb/git/wireless-testing/drivers/net/wireless/libertas/cfg.c:1267: error: implicit declaration of function ‘signal_pending’
    /home/greearb/git/wireless-testing/drivers/net/wireless/libertas/cfg.c:1267: error: implicit declaration of function ‘schedule_timeout’

    Reported-by: Ben Greear
    Reported-by: Randy Dunlap
    Signed-off-by: John W. Linville

    John W. Linville
     
  • This reverts commit 5f7aebd845a9d2ed42f36b7333579ec3534b4713.

    Apparently, that PCI ID data was incorrectly taken from the subsystem
    information. The actual ID matches another already known ID.

    Signed-off-by: John W. Linville

    John W. Linville
     

09 Aug, 2010

4 commits

  • Adds documentation for the igbvf (igb virtual function driver).

    v2:
    - Removed trailing white space
    - Removed Ethtool version info

    Signed-off-by: Jeff Kirsher
    Tested-by: Jeff Pieper
    Signed-off-by: David S. Miller

    Jeff Kirsher
     
  • Add documentation for the igb networking driver.

    v2:
    - Removed trailing white space
    - Removed Ethtool version info
    - Removed LRO kernel version info

    Signed-off-by: Jeff Kirsher
    Tested-by: Jeff Pieper
    Signed-off-by: David S. Miller

    Jeff Kirsher
     
  • Based on patches from Sonny Rao and Milton Miller...

    Combined the patches to fix up clean_tx_irq and clean_rx_irq.

    The PowerPC architecture does not require loads to independent bytes
    to be ordered without adding an explicit barrier.

    In ixgbe_clean_rx_irq we load the status bit then load the packet data.
    With packet split disabled if these loads go out of order we get a
    stale packet, but we will notice the bad sequence numbers and drop it.

    The problem occurs with packet split enabled where the TCP/IP header
    and data are in different descriptors. If the reads go out of order
    we may have data that doesn't match the TCP/IP header. Since we use
    hardware checksumming this bad data is never verified and it makes it
    all the way to the application.

    This bug was found during stress testing and adding this barrier has
    been shown to fix it. The bug can manifest as a data integrity issue
    (bad payload data) or as a BUG in skb_pull().

    This was a nasty bug to hunt down, if people agree with the fix I think
    it's a candidate for stable.

    Previously Submitted to e1000-devel only for ixgbe

    http://marc.info/?l=e1000-devel&m=126593062701537&w=3

    We've now seen this problem hit with other device drivers (e1000e mostly)
    So I'm resubmitting with fixes for other Intel Device Drivers with
    similar issues.

    CC: Milton Miller
    CC: Anton Blanchard
    CC: Sonny Rao
    CC: stable
    Signed-off-by: Jeff Kirsher
    Signed-off-by: David S. Miller

    Jeff Kirsher
     
  • Building ixgbe without DCB_CONFIG and FCOE_CONFIG will cause
    a build error. This resolves the build error by wrapping
    the fcoe.up in CONFIG_IXGBE_DCB ifdefs.

    Also frames were being priority VLAN tagged even without DCB
    enabled. This fixes this so that 8021Q priority tags are
    only added with DCB actually enabled.

    Reported-by: divya
    Reported-by: Jon Mason
    Signed-off-by: John Fastabend
    Tested-by: Stephen Ko
    Tested-by: Ross Brattain
    Signed-off-by: Jeff Kirsher
    Signed-off-by: David S. Miller

    John Fastabend
     

08 Aug, 2010

1 commit