06 Jul, 2009

13 commits

  • This patch allows a TIPC application to determine the number of messages
    currently waiting in a socket's receive queue (TIPC_SOCK_RECVQ_DEPTH) or
    in all TIPC socket receive queues (TIPC_NODE_RECVQ_DEPTH).

    Signed-off-by: Oscar Medina
    Signed-off-by: Allan Stephens
    Signed-off-by: David S. Miller

    oscar.medina@motorola.com
     
  • This patch removes an unused member (seq) scm_cookie; besides initialized
    to 0 in the header file, it is not used.

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

    Rami Rosen
     
  • Replaced '0' by 'bar' in the probe function.

    The 'bar' variable was already set to '0' and is already
    used in pci_iomap(). This is cleaner and improves code
    consistency.

    Signed-off-by: Michael Opdenacker
    Acked-by: Florian Fainelli
    Signed-off-by: David S. Miller

    Michael Opdenacker
     
  • This patch is the result of an automatic spatch transformation to convert
    all ndo_start_xmit() return values of 0 to NETDEV_TX_OK.

    Some occurences are missed by the automatic conversion, those will be
    handled in a seperate patch.

    Signed-off-by: Patrick McHardy
    Signed-off-by: David S. Miller

    Patrick McHardy
     
  • almost no users in the tree; and the few that use them treat them
    like NET_RX_DROP.

    Signed-off-by: Florian Westphal
    Signed-off-by: David S. Miller

    Florian Westphal
     
  • David S. Miller
     
  • The bit that tells us whether a statistics counter snapshot operation
    has completed is located in the GLOBAL register block, not in the
    GLOBAL2 register block, so fix up mv88e6xxx_stats_wait() to poll the
    right register address.

    Signed-off-by: Stephane Contri
    Signed-off-by: Lennert Buytenhek
    Cc: stable@kernel.org
    Signed-off-by: David S. Miller

    Stephane Contri
     
  • Eric Dumazet a écrit :
    > Ingo Molnar a écrit :
    >>> The following changes since commit 52989765629e7d182b4f146050ebba0abf2cb0b7:
    >>> Linus Torvalds (1):
    >>> Merge git://git.kernel.org/.../davem/net-2.6
    >>>
    >>> are available in the git repository at:
    >>>
    >>> master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6.git master
    >> Hm, something in this lot quickly wrecked networking here - see the
    >> tx timeout dump below. It starts with:
    >>
    >> [ 351.004596] WARNING: at net/sched/sch_generic.c:246 dev_watchdog+0x10b/0x19c()
    >> [ 351.011815] Hardware name: System Product Name
    >> [ 351.016220] NETDEV WATCHDOG: eth0 (forcedeth): transmit queue 0 timed out
    >>
    >> Config attached. Unfortunately i've got no time to do bisection
    >> today.
    >
    >
    >
    > forcedeth might have a problem, in its netif_wake_queue() logic, but
    > I could not see why a recent patch could make this problem visible now.
    >
    > CPU0/1: AMD Athlon(tm) 64 X2 Dual Core Processor 3800+ stepping 02
    > is not a new cpu either :)
    >
    > forcedeth uses an internal tx_stop without appropriate barrier.
    >
    > Could you try following patch ?
    >
    > (random guess as I dont have much time right now)

    We might have a race in napi_schedule(), leaving interrupts disabled forever.
    I cannot test this patch, I dont have the hardware...

    Tested-by: Ingo Molnar

    Signed-off-by: David S. Miller

    Eric Dumazet
     
  • The call resource_size(res) returns res->end - res->start + 1 and thus the
    second change is semantics-preserving. res_size is then used as the second
    argument of a call to request_mem_region, and the memory allocated by this
    call appears to be the same as what is released in the two calls to
    release_mem_region. So the size argument for those calls should be
    resource_size(size) as well. Alternatively, in the second call to
    release_mem_region, the second argument could be res_size, as that variable
    has already been initialized at the point of this call.

    The problem was found using the following semantic patch:
    (http://www.emn.fr/x-info/coccinelle/)

    //
    @@
    struct resource *res;
    @@

    - (res->end - res->start) + 1
    + resource_size(res)

    @@
    struct resource *res;
    @@

    - res->end - res->start
    + BAD(resource_size(res))
    //

    Signed-off-by: Julia Lawall
    Signed-off-by: David S. Miller

    Julia Lawall
     
  • add new id (RIOS System PC CARD3 ETHERNET).

    Signed-off-by: Ken Kawasaki
    Signed-off-by: David S. Miller

    Ken Kawasaki
     
  • This patch properly defines the maximum values for rx/tx coalescing timeouts.

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

    Eilon Greenstein
     
  • Problem reported by Flavio Leitner :
    When setting rx/tx coalescing timeout to the values less than 12 traffic was
    stopped.

    The FW supports coalescing in 12us granularity, and so value of less then 12
    should be interpreted as disabling coalescing

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

    Eilon Greenstein
     
  • It is currently possible for an asynchronous device unregister
    to cause the same tun device to be unregistered twice. This
    is because the unregister in tun_chr_close only checks whether
    __tun_get(tfile) != NULL. This however has nothing to do with
    whether the device has already been unregistered. All it tells
    you is whether __tun_detach has been called.

    This patch fixes this by using the most obvious thing to test
    whether the device has been unregistered.

    It also moves __tun_detach outside of rtnl_unlock since nothing
    that it does requires that lock.

    Signed-off-by: Herbert Xu
    Signed-off-by: David S. Miller

    Herbert Xu
     

05 Jul, 2009

9 commits

  • Linus Torvalds
     
  • Commit 537a1bf059fa312355696fa6db80726e655e7f17 (fbdev: add mutex for
    fb_mmap locking) introduces a ->mm_lock mutex for protecting smem
    assignments. Unfortunately in the case of sm501fb these happen quite
    early in the initialization code, well before the mutex_init() that takes
    place in register_framebuffer(), leading to:

    Badness at kernel/mutex.c:207

    Pid : 1, Comm: swapper
    CPU : 0 Not tainted (2.6.31-rc1-00284-g529ba0d-dirty #2273)

    PC is at __mutex_lock_slowpath+0x72/0x1bc
    PR is at __mutex_lock_slowpath+0x66/0x1bc
    ...

    matroxfb appears to have the same issue and has solved it with an early
    mutex_init(), so we do the same for sm501fb.

    Signed-off-by: Paul Mundt
    Cc: Krzysztof Helt
    Signed-off-by: Linus Torvalds

    Paul Mundt
     
  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/kyle/parisc-2.6: (27 commits)
    parisc: use generic atomic64 on 32-bit
    parisc: superio: fix build breakage
    parisc: Fix PCI resource allocation on non-PAT SBA machines
    parisc: perf: wire up sys_perf_counter_open
    parisc: add task_pt_regs macro
    parisc: wire sys_perf_counter_open to sys_ni_syscall
    parisc: inventory.c, fix bloated stack frame
    parisc: processor.c, fix bloated stack frame
    parisc: fix compile warning in mm/init.c
    parisc: remove dead code from sys_parisc32.c
    parisc: wire up rt_tgsigqueueinfo
    parisc: ensure broadcast tlb purge runs single threaded
    parisc: fix "delay!" timer handling
    parisc: fix mismatched parenthesis in memcpy.c
    parisc: Fix gcc 4.4 warning in lba_pci.c
    parisc: add parameter to read_cr16()
    parisc: decode_exc.c should include kernel.h
    parisc: remove obsolete hw_interrupt_type
    parisc: fix irq compile bugs in arch/parisc/kernel/irq.c
    parisc: advertise PCI devs after "assign_resources"
    ...

    Manually fixed up trivial conflicts in tools/perf/perf.h due to addition
    of SH vs HPPA perf-counter support.

    Linus Torvalds
     
  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/sameo/mfd-2.6:
    mfd: fix pcap adc locking
    mfd: sm501, fix lock imbalance

    Linus Torvalds
     
  • * 'for-2.6.31' of git://linux-nfs.org/~bfields/linux:
    NFSD: Don't hold unrefcounted creds over call to nfsd_setuser()

    Linus Torvalds
     
  • * 'upstream' of git://ftp.linux-mips.org/pub/scm/upstream-linus:
    MIPS: Fix CONFIG_FLATMEM version of pfn_valid()
    MIPS: Reorganize Cavium OCTEON PCI support.
    Update Yoichi Yuasa's e-mail address
    MIPS: Allow suspend and hibernation again on uniprocessor kernels.
    MIPS: 64-bit: Fix o32 core dump
    MIPS: BC47xx: Fix SSB irq setup
    MIPS: CMP: Update sync-r4k for current kernel
    MIPS: CMP: Move gcmp_probe to before the SMP ops
    MIPS: CMP: activate CMP support
    MIPS: CMP: Extend IPI handling to CPU number
    MIPS: CMP: Extend the GIC IPI interrupts beyond 32
    MIPS: Define __arch_swab64 for all mips r2 cpus
    MIPS: Update VR41xx GPIO driver to use gpiolib
    MIPS: Hookup new syscalls sys_rt_tgsigqueueinfo and sys_perf_counter_open.
    MIPS: Malta: Remove unnecessary function prototypes
    MIPS: MT: Remove unnecessary semicolons
    MIPS: Add support for Texas Instruments AR7 System-on-a-Chip

    Linus Torvalds
     
  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6:
    sound: do not set DEVNAME for OSS devices
    ALSA: hda - Add sanity check in PCM open callback
    ALSA: hda - Call snd_pcm_lib_hw_rates() again after codec open callback
    ALSA: hda - Avoid invalid formats and rates with shared SPDIF
    ALSA: hda - Improve ASUS eeePC 1000 mixer
    ALSA: hda - Add GPIO1 control at muting with HP laptops
    ALSA: usx2y - reparent sound device
    ALSA: snd_usb_caiaq: reparent sound device
    sound: virtuoso: fix Xonar D1/DX silence after resume
    ASoC: Only disable pxa2xx-i2s clocks if we enabled them
    ALSA: hda - Add quirk for HP 6930p
    ALSA: hda - Add missing static to patch_ca0110()
    ASoC: OMAP: fix OMAP1510 broken PCM pointer callback
    ASoC: remove BROKEN from Efika and pcm030 fabric drivers
    ASoC: Fix typo in MPC5200 PSC AC97 driver Kconfig

    Linus Torvalds
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/sam/kbuild-fixes:
    kbuild: finally remove the obsolete variable $TOPDIR
    gitignore: ignore scripts/ihex2fw
    Kbuild: Disable the -Wformat-security gcc flag
    gitignore: ignore gcov output files
    kbuild: deb-pkg ship changelog
    Add new __init_task_data macro to be used in arch init_task.c files.
    asm-generic/vmlinux.lds.h: shuffle INIT_TASK* macro names in vmlinux.lds.h
    Add new macros for page-aligned data and bss sections.
    asm-generic/vmlinux.lds.h: Fix up RW_DATA_SECTION definition.

    Linus Torvalds
     
  • * 'for-linus' of git://git.kernel.dk/linux-2.6-block:
    block: don't merge requests of different failfast settings
    cciss: Ignore stale commands after reboot

    Linus Torvalds
     

04 Jul, 2009

18 commits

  • Occasionally we may see an interrupt without an event in the eq.
    In intx, we currently see the event queue and return IRQ_NONE causing
    a the irq to be disabled ("no one cared".) Instead, read the CEV_ISR
    reg to check the existence of the interrupt.

    Signed-off-by: Sathya Perla
    Signed-off-by: David S. Miller

    Sathya Perla
     
  • This workaround is required for an issue in hardware where noise on the
    interconnect between the MAC and PHY could be generated by a lower power
    mode (K1) at 1000Mbps resulting in bad packets. Disable K1 while at 1000
    Mbps but keep it enabled for 10/100Mbps and when the cable is disconnected.

    Signed-off-by: Bruce Allan
    Signed-off-by: Jeff Kirsher
    Signed-off-by: David S. Miller

    Bruce Allan
     
  • Some PHYs may require two reads of the PHY_STATUS register to determine the
    link status. If the PHY is being accessed by another thread it is possible
    the first read could timeout and fail. In this case, put a delay in so
    the second read will pick up the correct link status.

    Signed-off-by: Bruce Allan
    Signed-off-by: Jeff Kirsher
    Signed-off-by: David S. Miller

    Bruce Allan
     
  • Limit NVM writes to 4K sections to prevent NVM corruption on larger
    sector allocations (up to 64K).

    Signed-off-by: Bruce Allan
    Signed-off-by: Jeff Kirsher
    Signed-off-by: David S. Miller

    Bruce Allan
     
  • The driver was accessing register bits for features on parts that do
    not support that feature. This could cause problems in the hardware.

    Signed-off-by: Bruce Allan
    Signed-off-by: Jeff Kirsher
    Signed-off-by: David S. Miller

    Bruce Allan
     
  • A previous workaround for 82578 to avoid link stall causes some PHY
    registers to get cleared inadvertently. Add a delay after all LCD resets
    to make sure PHY registers are in a stable state before continuing. Also,
    after resets check the EEC register for the state of PHY configuration
    performed by the MAC for ICH9 and earlier parts (as done before), but check
    the LAN_INIT_DONE bit in the STATUS register for ICH10 and newer parts (EEC
    doesn't exist in these newer parts).

    Signed-off-by: Bruce Allan
    Signed-off-by: Jeff Kirsher
    Signed-off-by: David S. Miller

    Bruce Allan
     
  • PHY loopback on 82578 fails to work as a result of flushing the packets
    in the FIFO buffer in the link stall workaround. Don't perform the
    workaround if in PHY loopback mode.

    Signed-off-by: Bruce Allan
    Signed-off-by: Jeff Kirsher
    Signed-off-by: David S. Miller

    Bruce Allan
     
  • Wake-on-lan is currently only supported by 82599 KX4 devices, in all
    other cases return a proper value from ixgbe_wol_exclusion function call.
    Otherwise from ethtool we will be able to change wol options of
    unsupported 8259x devices.

    Signed-off-by: Mallikarjuna R Chilakala
    Signed-off-by: Jeff Kirsher
    Signed-off-by: David S. Miller

    Mallikarjuna R Chilakala
     
  • Currently if we loaded the driver, insert an unsupported module, and then
    attempt to "ifconfig up" the device it will be brought down but the netdev
    would not be unregistered. This behavior is different than all other
    code paths. This patch corrects that by down'ing the device and then
    scheduling the sfp_config_module_task tasklet. The tasklet will detect
    this condition (like it does with other code paths) and do the
    unregister_netdev().

    I also removed the log message as this condition (an unsupported SFP+
    module) will be logged in sfp_config_module_task.

    Signed-off-by: Don Skidmore
    Signed-off-by: Jeff Kirsher
    Signed-off-by: David S. Miller

    Don Skidmore
     
  • The change to check the SFP+ module again on open() was
    causing the XFP (non-SFP+) adapters to be rejected. We
    only want to try and re-identify the SFP+ module if the
    original probe found that this device was an SFP+ device.
    So for this code path (driver loaded with SFP module, module
    inserted, ifconfig up of the device) the type will be
    ixgbe_phy_unknown for an unidentified SFP+ module. So we
    only check if that is the case.

    This problem also shows up on Copper devices.

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

    Don Skidmore
     
  • Several small fixes around negative test case of the insertion of a
    IXGBE_ERR_NOT_SUPPORTED module.

    - mdio45_probe call was always failing due to mdio.prtad not being
    set. The function set to mdio.mdio_read was still working as we just
    happen to always be at prtad == 0. This will allow us to set the phy_id
    and phy.type correctly now.

    - There was timing issue with i2c calls when initiated from a tasklet.
    A small delay was added to allow the electrical oscillation to calm down.

    - Logic change in ixgbe_sfp_task that allows NOT_SUPPORTED condition
    to be recognized.

    Signed-off-by: Don Skidmore
    Signed-off-by: Jeff Kirsher
    Signed-off-by: David S. Miller

    Don Skidmore
     
  • Some usage was only sizing a pointer rather than the data type.

    Signed-off-by: Ron Mercer
    Signed-off-by: David S. Miller

    Ron Mercer
     
  • We need to set/clear the mac address register when the link goes up/down
    respectively. Without this both ports of a 2-port device can end up
    with the same mac address in a bonding scenario.
    The new ql_link_on() and ql_link_off() will also be used in handling
    certain firmware events.

    Signed-off-by: Ron Mercer
    Signed-off-by: David S. Miller

    Ron Mercer
     
  • This addes functionality to set/clear the MAC address in the hardware
    when the link goes up/down.
    The MAC address register is persistent across function resets. In
    bonding the same address can bounce from one port to the other. This
    can cause packets to be delivered to the wrong port.
    This patch clears the MAC address in the hardware when the link is down
    and sets it when the link comes up.
    It was found that pulling/pushing the cable from one port to another
    causes the same MAC address to be in both ports.
    The next patch in this series will use this functionality as well.

    Signed-off-by: Ron Mercer
    Signed-off-by: David S. Miller

    Ron Mercer
     
  • Signed-off-by: Ron Mercer
    Signed-off-by: David S. Miller

    Ron Mercer
     
  • The caller will free acquired resouces if a failure occurs.

    Signed-off-by: Ron Mercer
    Signed-off-by: David S. Miller

    Ron Mercer
     
  • We were turning on the carrier without verifying the link was up.
    This adds link up to the link initialize check before turning carrier
    on.

    Signed-off-by: Ron Mercer
    Signed-off-by: David S. Miller

    Ron Mercer
     
  • Not clearing the routing bits can cause frames to erroneously get routed to
    management processor.

    Signed-off-by: Ron Mercer
    Signed-off-by: David S. Miller

    Ron Mercer