18 May, 2007

32 commits

  • * master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6:
    [IPV4]: Remove IPVS icmp hack from route.c for now.
    [IPV4]: Correct rp_filter help text.
    [TCP]: TCP_CONG_YEAH requires TCP_CONG_VEGAS
    [TCP] slow start: Make comments and code logic clearer.
    [BLUETOOTH]: Fix locking in hci_sock_dev_event().
    [NET]: Fix BMSR_100{HALF,FULL}2 defines in linux/mii.h
    [NET]: lockdep classes in register_netdevice

    Linus Torvalds
     
  • The slab manipulation functions should not be triggered by slabs that
    are unresovable in the subset of slabs selected on the command line.

    Signed-off-by: Christoph Lameter
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Christoph Lameter
     
  • As pointed out by Jarek Poplawski, the patch

    [WORKQUEUE]: cancel_delayed_work: use del_timer() instead of del_timer_sync()
    commit: 071b638689464c6b39407025eedd810d5b5e6f5d

    was wrong, it was merged by mistake after that.

    From the changelog:

    after this patch:
    ...
    delayed_work_timer_fn->__queue_work() in progress.

    The latter doesn't differ from the caller's POV,

    it does make a difference if the caller calls flush_workqueue() after
    cancel_delayed_work(), in that case flush_workqueue() can miss this
    work_struct.

    Signed-off-by: Oleg Nesterov
    Cc: Jarek Poplawski
    Cc: David Howells
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Oleg Nesterov
     
  • Revert: 2d771cd86d4c3af26f34a7bcdc1b87696824cad9

    This is dangerous if enabled and a better solution to the
    problem is being worked on.

    Signed-off-by: David S. Miller

    David S. Miller
     
  • This reverts commit c8fdd247255a3a027cd9f66dcf93e6847d1d2f85.

    It turns out the kernel was correct, and the gcc complaint was a gcc
    bug. The preferred stack boundary is expressed not in bytes, but in the
    the log2() of the preferred boundary, so "-mpreferred-stack-boundary=2"
    is in fact exactly what we want, but a gcc that is compiled for x86-64
    will consider it an error (because the 64-bit calling sequence says that
    the stack should be 16-byte aligned) even if we are then using "-m32" to
    generate 32-bit code.

    Noted-by: Mikulas Patocka
    Cc: Jan Hubicka
    Acked-by: Andi Kleen
    Signed-off-by: Linus Torvalds

    Linus Torvalds
     
  • * git://git.linux-nfs.org/pub/linux/nfs-2.6:
    SUNRPC: Fix sparse warnings
    NLM: Fix sparse warnings
    NFS: Fix more sparse warnings
    NFS: Fix some 'sparse' warnings...
    SUNRPC: remove dead variable 'rpciod_running'
    NFS4: Fix incorrect use of sizeof() in fs/nfs/nfs4xdr.c
    NFS: use zero_user_page
    NLM: don't use CLONE_SIGHAND in nlmclnt_recovery
    NLM: Fix locking client timeouts...

    Linus Torvalds
     
  • * 'upstream-linus' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/libata-dev:
    sata_via: pcim_iomap_regions() conversion missed BAR5
    libata: remove libata.spindown_compat
    sata_nv: fix fallout of devres conversion
    drivers/ata: remove the wildcard from sata_nv driver

    Linus Torvalds
     
  • pcim_iomap_regions() conversion missed BAR5. Fix it.

    Signed-off-by: Tejun Heo
    Signed-off-by: Jeff Garzik

    Tejun Heo
     
  • With STANDBYDOWN tracking added, libata.spindown_compat isn't
    necessary anymore. If userspace shutdown(8) issues STANDBYNOW, libata
    warns. If userspace shutdown(8) doesn't issue STANDBYNOW, libata does
    the right thing. Userspace can tell whether kernel supports spindown
    by testing whether sysfs node manage_start_stop exists as before.

    Signed-off-by: Tejun Heo
    Signed-off-by: Jeff Garzik

    Tejun Heo
     
  • As with all other drivers, sata_nv's hpriv is allocated with
    devm_kzalloc() and there's no need to free it explicitly. Kill
    nv_remove_one() which incorrectly used kfree() instead of devm_kfree()
    and use ata_pci_remove_one() directly.

    Original fix is from Peer Chen.

    Signed-off-by: Tejun Heo
    Cc: Peer Chen
    Signed-off-by: Jeff Garzik

    Tejun Heo
     
  • Because nvidia SATA controllers onward base on AHCI, so wildcard in sata_nv
    driver is unnecessary. Also the wildcard sometimes cause sata_nv driver to
    be loaded for AHCI controllers,which is not as expected.

    Signed-off-by: Peer Chen
    Cc: Tejun Heo
    Cc: Jeff Garzik
    Signed-off-by: Andrew Morton
    Signed-off-by: Jeff Garzik

    Peer Chen
     
  • pci_enable_msi failure is a normal event so we should not print any error.
    Going over the code I spotted a missing pci_disable_msi() leak when irq
    allocation fails. The whole code also needed a cleanup, so I combined the
    two different calls to pci_request_irq into a single call making this
    look a lot better. All #ifdef CONFIG_PCI_MSI's have been removed.

    Compile tested with both CONFIG_PCI_MSI enabled and disabled.

    Signed-off-by: Auke Kok
    Cc: H. Peter Anvin
    Signed-off-by: Jeff Garzik

    Auke Kok
     
  • pci_enable_msi calls can fail for normal operational reasons. Driver
    should not print an error message in that case. Fix a leak that leaves
    msi enabled if pci_request_irq fails. We can remove CONFIG_PCI_MSI
    ifdefs alltogether

    Signed-off-by: Auke Kok
    Signed-off-by: Jeff Garzik

    Auke Kok
     
  • NetXen: Fix for driver on System-p
    This patch will fix a ping issue on system-p

    Signed-off by: Milan Bag
    Signed-off by: Adhiraj Joshi
    Signed-by: Mithlesh Thukral

    Signed-off-by: Jeff Garzik

    Mithlesh Thukral
     
  • Spidernet was the driver I original did all the node-aware netdevice
    allocation for, but after a year it still hasn't hit mainline.

    Signed-off-by: Christoph Hellwig
    Signed-off-by: Linas Vepstas
    Signed-off-by: Jeff Garzik

    Christoph Hellwig
     
  • The hardware must not see that is given ownership of a buffer until it is
    completely written, and when the driver receives ownership of a buffer,
    it must ensure that any other reads to the buffer reflect its final
    state. Thus, I/O barriers are added where required.

    Without this patch, I have observed GCC reordering the setting of
    bdp->length and bdp->status in gfar_new_skb. Hardware reordering
    was also theoretically possible.

    Signed-off-by: Scott Wood
    Signed-off-by: Jeff Garzik

    Scott Wood
     
  • Fix link speed detection change.
    Thanks to Stefan Roese for finding this bug.

    CC: Stefan Roese
    Signed-off-by: Eugene Surovegin
    Signed-off-by: Jeff Garzik

    Eugene Surovegin
     
  • Original patch is from Jeff Haran with my minor style
    fixes. His comments follow:

    The first problem was in the function that configures the PHY for
    autonegotiation, genmii_setup_aneg(). The original code does a
    read/modify/write of the autonegotiation advertizement register (reg 4),
    followed by a read/modify/write of the control register (reg 0). While
    the original code follows the proper procedure as per reading the IEEE
    specs, what I found is that on at least one PHY model (National DP83843)
    the read of the control register comes back with the soft reset bit set
    (bit 15). Because of the read/modify/write operation, this causes the
    write to write a 1 back to the reset bit, which initiates a software
    reset of the PHY. This software reset causes the PHY to return to its
    power up state which advertizes all modes of operation, thus negating
    the write to the autoneg advertizement register. The modification is to
    spin reading the control register until the soft reset bit is clear
    before doing the modify/write.
    The second problem was in the function that configures the PHY for
    forced operation, genmii_setup_forced(). The original code initiates a
    software reset operation via a write of a 1 to bit 15 of the control
    register (reg 0), but then proceeds to do a second write to that same
    register without waiting until that reset bit is cleared by the PHY
    itself (which according to the IEEE specs indicates that the PHY reset
    is complete). This is a violation of how one is supposed to use this
    software reset feature of these PHYs and I believe was the cause of
    mysterious, difficult to reproduce link failures that we've observed on
    some of our systems that use this driver. The fix is to modify the
    function so that it spins waiting for the reset bit to clear after doing
    the soft reset and before doing the subsequent write.

    Signed-off-by: Jeff Haran
    CC: Benjamin Herrenschmidt
    Signed-off-by: Eugene Surovegin
    Signed-off-by: Jeff Garzik

    Eugene Surovegin
     
  • Fix "Section mismatch" warnings

    Signed-off-by: Eugene Surovegin
    Signed-off-by: Jeff Garzik

    Eugene Surovegin
     
  • Signed-off-by: Christoph Hellwig
    Signed-off-by: Jeff Garzik

    Christoph Hellwig
     
  • Do some memory barrier changes for safety/perfomance:
    Don't need read after update to index, mmiowb() followed by read at end
    of irq is sufficient.

    Signed-off-by: Stephn Hemminger
    Signed-off-by: Jeff Garzik

    Stephen Hemminger
     
  • This workaround was added to deal with NAPI core and how
    it affected dual port shared polling. It turned out not to
    be necessary. Stopping device 0 only doesn't stop NAPI from
    working completely after that.

    Signed-off-by: Stephen Hemminger
    Signed-off-by: Jeff Garzik

    Stephen Hemminger
     
  • Make sure that if we ever get a MIB counter overflow interrupt (normally
    masked off), that the IRQ is cleared.

    Signed-off-by: Stephen Hemminger
    Signed-off-by: Jeff Garzik

    Stephen Hemminger
     
  • When driver can't allocate receive buffer it drops incoming
    packet. Keep a counter.

    Signed-off-by: Stephen Hemminger
    Signed-off-by: Jeff Garzik

    Stephen Hemminger
     
  • Align the PHY setup of the sky2 driver with the vendor sk98lin (10.0.4.3)
    driver. The PHY register settings are mostly black magic, even with access
    to the documentation it isn't clear what the right values are. The changes
    are mostly comments, the code change only affects the Yukon FE (100 mbit only)
    version.

    Signed-off-by: Stephen Hemminger
    Signed-off-by: Jeff Garzik

    Stephen Hemminger
     
  • The problems with Gigabyte motherboards are system configuration dependent.
    Since it works fine for some users, it doesn't make sense to deprive
    them.

    Signed-off-by: Stephen Hemminger
    Signed-off-by: Jeff Garzik

    Stephen Hemminger
     
  • As mentioned in http://bugzilla.kernel.org/show_bug.cgi?id=5015
    The helptext implies that this is on by default.
    This may be true on some distros (Fedora/RHEL have it enabled
    in /etc/sysctl.conf), but the kernel defaults to it off.

    Signed-off-by: Dave Jones
    Signed-off-by: David S. Miller

    Dave Jones
     
  • These two congestion control modules share code.

    Signed-off-by: David S. Miller

    David S. Miller
     
  • Add more comments to describe our version of tcp_slow_start().

    Signed-off-by: Stephen Hemminger
    Signed-off-by: David S. Miller

    Stephen Hemminger
     
  • We presently use lock_sock() to acquire a lock on a socket in
    hci_sock_dev_event(), but this goes BUG because lock_sock()
    can sleep and we're already holding a read-write spinlock at
    that point. So, we must use the non-sleeping BH version,
    bh_lock_sock().

    However, hci_sock_dev_event() is called from user context and
    hence using simply bh_lock_sock() will deadlock against a
    concurrent softirq that tries to acquire a lock on the same
    socket. Hence, disabling BH's before acquiring the socket lock
    and enable them afterwards, is the proper solution to fix
    socket locking in hci_sock_dev_event().

    Signed-off-by: Satyam Sharma
    Signed-off-by: Marcel Holtmann
    Signed-off-by: Jiri Kosina
    Signed-off-by: David S. Miller

    Satyam Sharma
     
  • Noticed by Matvejchikov Ilya.

    Signed-off-by: David S. Miller

    David S. Miller
     
  • After initializing dev->_xmit_lock register_netdevice()
    sets lockdep class according to dev->type.

    Idea of this patch - by David Miller.

    Reported & tested by: "Yuriy N. Shkandybin"
    Signed-off-by: Jarek Poplawski
    Signed-off-by: David S. Miller

    Jarek Poplawski
     

17 May, 2007

8 commits

  • Trond Myklebust
     
  • The function ipxrtr_route_packet() takes a 'len' argument of type
    size_t. However, its prototype in af_ipx.c incorrectly suggests that the
    corresponding argument is of type 'int' instead.

    Discovered by building with --combine and letting the compiler see it
    all at once.

    Signed-off-by: David Woodhouse
    Signed-off-by: Linus Torvalds

    David Woodhouse
     
  • After a suspend/resume cycle, the UART may have been reset into
    low-speed mode -- either because it's actually been reset, or because
    the firmware pokes at the old-style divisor registers. If we detected it
    as a NS16550A SuperIO chip in the first place and set baud_base to
    921600, then we should do so again in the resume path.

    This patch adds that code to serial8250_resume_port(), and also makes
    serial8250_resume() actually call serial8250_resume_port() for each port
    instead of just calling uart_resume_port() directly. And thus fixes
    serial port operation after suspend/resume.

    It also fixes a bogus comment where we write the EXCR2 register with a
    comment saying /* EXCR1 */

    Signed-off-by: David Woodhouse
    Acked-by: Alan Cox
    Signed-off-by: Linus Torvalds

    David Woodhouse
     
  • Re-introduce rmap verification patches that Hugh removed when he removed
    PG_map_lock. PG_map_lock actually isn't needed to synchronise access to
    anonymous pages, because PG_locked and PTL together already do.

    These checks were important in discovering and fixing a rare rmap corruption
    in SLES9.

    Signed-off-by: Nick Piggin
    Cc: Hugh Dickins
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Nick Piggin
     
  • grow_dev_page() simply passes GFP_NOFS to find_or_create_page. This means
    the allocation of radix tree nodes is done with GFP_NOFS and the allocation
    of a new page is done using GFP_NOFS.

    The mapping has a flags field that contains the necessary allocation flags
    for the page cache allocation. These need to be consulted in order to get
    DMA and HIGHMEM allocations etc right. And yes a blockdev could be
    allowing Highmem allocations if its a ramdisk.

    Cc: Hugh Dickins
    Signed-off-by: Christoph Lameter
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Christoph Lameter
     
  • The sysfs files /sys/power/disk and /sys/power/state do not work as
    documented, since they allow the user to write only a few initial
    characters of the input string to trigger the option (eg. 'echo pl >
    /sys/power/disk' activates the platform mode of hibernation). Fix it.

    Special thanks to Peter Moulder for
    pointing out the problem.

    Signed-off-by: Rafael J. Wysocki
    Acked-by: Pavel Machek
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Rafael J. Wysocki
     
  • i_mutex on quota files is special. Unlike i_mutexes for other inodes it is
    acquired under dqonoff_mutex. Tell lockdep about this lock ranking. Also
    comment and code in quota_sync_sb() seem to be bogus (as i_mutex for quota
    file can be acquired under dqonoff_mutex). Move truncate_inode_pages()
    call under dqonoff_mutex and save some problems with races...

    Signed-off-by: Jan Kara
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jan Kara
     
  • No other architecture calls check_pgt_cache() from within flush_tlb_mm(),
    and i386 is already calling check_pgt_cache() from the usual places,
    tlb_finish_mmu() and cpu_idle() (the latter being odd, but not unusual).
    flush_tlb_mm() has no business to be freeing pages: remove that line, which
    sneaked in with slub's i386 support.

    Signed-off-by: Hugh Dickins
    Cc: Andi Kleen
    Acked-by: Christoph Lameter
    Acked-by: William Lee Irwin III
    Cc: David Miller
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Hugh Dickins