25 Mar, 2008

7 commits

  • Implement ata_qc_raw_nbytes() which determines the raw user-requested
    size of a PC command.

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

    Tejun Heo
     
  • * 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc:
    [POWERPC] Fix Oops with TQM5200 on TQM5200
    [POWERPC] mpc5200: Fix null dereference if bestcomm fails to initialize
    [POWERPC] mpc5200-fec: Fix possible NULL dereference in mdio driver
    [POWERPC] Fix crash in init_ipic_sysfs on efika
    [POWERPC] Don't use 64k pages for ioremap on pSeries

    Linus Torvalds
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-2.6:
    [SPARC64]: exec PT_DTRACE
    [SPARC64]: Use shorter list_splice_init() for brevity.
    [SPARC64]: Remove most limitations to kernel image size.

    Linus Torvalds
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6:
    sch_htb: fix "too many events" situation
    connector: convert to single-threaded workqueue
    [ATM]: When proc_create() fails, do some error handling work and return -ENOMEM.
    [SUNGEM]: Fix NAPI assertion failure.
    BNX2X: prevent ethtool from setting port type
    [9P] net/9p/trans_fd.c: remove unused variable
    [IPV6] net/ipv6/ndisc.c: remove unused variable
    [IPV4] fib_trie: fix warning from rcu_assign_poinger
    [TCP]: Let skbs grow over a page on fast peers
    [DLCI]: Fix tiny race between module unload and sock_ioctl.
    [SCTP]: Fix build warnings with IPV6 disabled.
    [IPV4]: Fix null dereference in ip_defrag

    Linus Torvalds
     
  • The iWARP protocol limits RDMA read requests to a single scatter
    entry. NFS/RDMA has code in rdma_read_max_sge() that is supposed to
    limit the sge_count for RDMA read requests to 1, but the code to do
    that is inside an #ifdef RDMA_TRANSPORT_IWARP block. In the mainline
    kernel at least, RDMA_TRANSPORT_IWARP is an enum and not a
    preprocessor #define, so the #ifdef'ed code is never compiled.

    In my test of a kernel build with -j8 on an NFS/RDMA mount, this
    problem eventually leads to trouble starting with:

    svcrdma: Error posting send = -22
    svcrdma : RDMA_READ error = -22

    and things go downhill from there.

    The trivial fix is to delete the #ifdef guard. The check seems to be
    a remnant of when the NFS/RDMA code was not merged and needed to
    compile against multiple kernel versions, although I don't think it
    ever worked as intended. In any case now that the code is upstream
    there's no need to test whether the RDMA_TRANSPORT_IWARP constant is
    defined or not.

    Without this patch, my kernel build on an NFS/RDMA mount using NetEffect
    adapters quickly and 100% reproducibly failed with an error like:

    ld: final link failed: Software caused connection abort

    With the patch applied I was able to complete a kernel build on the
    same setup.

    (Tom Tucker says this is "actually an _ancient_ remnant when it had to
    compile against iWARP vs. non-iWARP enabled OFA trees.")

    Signed-off-by: Roland Dreier
    Acked-by: Tom Tucker
    Signed-off-by: J. Bruce Fields
    Signed-off-by: Linus Torvalds

    Roland Dreier
     
  • It appears that 64-bit PCI resources cannot possibly ever have worked on
    x86-32 even when the RESOURCES_64BIT config option was set, because any
    driver that tried to [pci_]ioremap() the resource would have been unable
    to do so because the high 32 bits would have been silently dropped on
    the floor by the ioremap() routines that only used "unsigned long".

    Change them to use "resource_size_t" instead, which properly encodes the
    whole 64-bit resource data if RESOURCES_64BIT is enabled.

    Acked-by: H. Peter Anvin
    Acked-by: Stefan Richter
    Cc: Ivan Kokshaysky
    Signed-off-by: Linus Torvalds

    Linus Torvalds
     
  • The printk() can deadlock because it can wake up klogd(), and
    task enqueueing will try to read the time in order to set a hrtimer.

    Reported-by: Marcin Slusarz
    Debugged-by: Peter Zijlstra
    Cc: Ingo Molnar
    Cc: Thomas Gleixner
    Signed-off-by: Linus Torvalds

    Linus Torvalds
     

24 Mar, 2008

10 commits

  • The "bestcomm-core" driver defines its of_match table as follows

    static struct of_device_id mpc52xx_bcom_of_match[] = {
    { .type = "dma-controller", .compatible = "fsl,mpc5200-bestcomm", },
    { .type = "dma-controller", .compatible = "mpc5200-bestcomm", },
    {},
    };

    so while registering the driver, the driver's probe function won't be
    called, because the device tree node doesn't have a device_type
    property. Thus the driver's bcom_engine structure won't be allocated.
    Referencing this structure later causes observed Oops.

    Checking bcom_eng pointer for NULL before referencing data pointed
    by it prevents oopsing, but fec driver still doesn't work (because
    of the lost bestcomm match and resulted task allocation failure).
    Actually the compatible property exists and should match and so
    the fec driver should work.

    This removes .type = "dma-controller" from the bestcomm driver's
    mpc52xx_bcom_of_match table to solve the problem.

    Signed-off-by: Anatolij Gustschin
    Acked-by: Grant Likely
    Signed-off-by: Paul Mackerras

    Anatolij Gustschin
     
  • If the bestcomm initialization fails, calls to the task allocate
    function should fail gracefully instead of oopsing with a NULL deref.

    Signed-off-by: Grant Likely
    Signed-off-by: Paul Mackerras

    Grant Likely
     
  • If the reg property is missing from the phy node (unlikely, but possible),
    then the kernel will oops with a NULL pointer dereference. This fixes
    it by checking the pointer first.

    Signed-off-by: Grant Likely
    Signed-off-by: Paul Mackerras

    Grant Likely
     
  • The global primary_ipic in arch/powerpc/sysdev/ipic.c can remain NULL
    if ipic_init() fails, which will happen on machines that don't have an
    ipic interrupt controller. init_ipic_sysfs() will crash in that case.

    Acked-by: Grant Likely

    Signed-off-by: Paul Mackerras

    Olaf Hering
     
  • On pSeries, the hypervisor doesn't let us map in the eHEA ethernet
    adapter using 64k pages, and thus the ehea driver will fail if 64k
    pages are configured. This works around the problem by always
    using 4k pages for ioremap on pSeries (but not on other platforms).
    A better fix would be to check whether the partition could ever
    have an eHEA adapter, and only force 4k pages if it could, but this
    will do for 2.6.25.

    This is based on an earlier patch by Tony Breeds.

    Signed-off-by: Paul Mackerras

    Paul Mackerras
     
  • The PT_DTRACE flag is meaningless and obsolete.
    Don't touch it.

    Signed-off-by: Roland McGrath
    Signed-off-by: David S. Miller

    Roland McGrath
     
  • Signed-off-by: Robert P. J. Day
    Signed-off-by: David S. Miller

    Robert P. J. Day
     
  • HTB is event driven algorithm and part of its work is to apply
    scheduled events at proper times. It tried to defend itself from
    livelock by processing only limited number of events per dequeue.
    Because of faster computers some users already hit this hardcoded
    limit.

    This patch limits processing up to 2 jiffies (why not 1 jiffie ?
    because it might stop prematurely when only fraction of jiffie
    remains).

    Signed-off-by: Martin Devera
    Signed-off-by: David S. Miller

    Martin Devera
     
  • From: Evgeniy Polyakov

    We don't need one cqueue thread for each CPU. cqueue is used for
    receiving userspace datagrams, which are very rare and thus will
    happily live with a single queue.

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

    Evgeniy Polyakov
     
  • Signed-off-by: Wang Chen
    Signed-off-by: David S. Miller

    Wang Chen
     

23 Mar, 2008

16 commits

  • As reported by Johannes Berg:

    I started getting this warning with recent kernels:

    [ 773.908927] ------------[ cut here ]------------
    [ 773.908954] Badness at net/core/dev.c:2204
    ...

    If we loop more than once in gem_poll(), we'll
    use more than the real budget in our gem_rx()
    calls, thus eventually trigger the caller's
    assertions in net_rx_action().

    Subtract "work_done" from "budget" for the second
    arg to gem_rx() to fix the bug.

    Signed-off-by: David S. Miller

    David S. Miller
     
  • On 10GBaseT boards setting the type to TP will cause the driver to try
    to configure 1GBaseT.
    Since there are currently no boards that support setting of the port
    type, disable this for now.

    Signed-off-by: Eliezer Tamir
    Signed-off-by: David S. Miller

    Eliezer Tamir
     
  • The variable cb is initialized but never used otherwise.

    The semantic patch that makes this change is as follows:
    (http://www.emn.fr/x-info/coccinelle/)

    //
    @@
    type T;
    identifier i;
    constant C;
    @@

    (
    extern T i;
    |
    - T i;

    )
    //

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

    Julia Lawall
     
  • The variable hlen is initialized but never used otherwise.

    The semantic patch that makes this change is as follows:
    (http://www.emn.fr/x-info/coccinelle/)

    //
    @@
    type T;
    identifier i;
    constant C;
    @@

    (
    extern T i;
    |
    - T i;

    )
    //

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

    Julia Lawall
     
  • This gets rid of a warning caused by the test in rcu_assign_pointer.
    I tried to fix rcu_assign_pointer, but that devolved into a long set
    of discussions about doing it right that came to no real solution.
    Since the test in rcu_assign_pointer for constant NULL would never
    succeed in fib_trie, just open code instead.

    Signed-off-by: Stephen Hemminger
    Acked-by: Paul E. McKenney
    Signed-off-by: David S. Miller

    Stephen Hemminger
     
  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband:
    RDMA/nes: Fix MSS calculation on RDMA path

    Linus Torvalds
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/bart/ide-2.6:
    Revert "ide-tape: schedule driver for removal after 6 months"
    ide: mark "hdx=remap" and "hdx=remap63" kernel parameters as obsoleted
    ide: mark "hdx=[driver_name]" and "hdx=scsi" kernel parameters as obsoleted
    ide: Documentation/ide/ide.txt fixes
    ide: mark special "ide0=" kernel parameters as obsoleted
    ide: remove commented out entries from ide_pio_blacklist[]

    Linus Torvalds
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/sfrench/cifs-2.6:
    [CIFS] Fix mem leak on dfs referral
    [CIFS] file create with acl support enabled is slow
    [CIFS] Fix mtime on cp -p when file data cached but written out too late
    [CIFS] Fix build problem
    [CIFS] cifs: replace remaining __FUNCTION__ occurrences
    [CIFS] DFS patch that connects inode with dfs handling ops

    Linus Torvalds
     
  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/x86/linux-2.6-x86:
    x86: revert: reserve dma32 early for gart

    Linus Torvalds
     
  • Change pagemap output format to allow for future reporting of huge pages.

    (Format comment and minor cleanups: mpm@selenic.com)

    Signed-off-by: Hans Rosenfeld
    Signed-off-by: Matt Mackall
    Signed-off-by: Linus Torvalds

    Hans Rosenfeld
     
  • Suppressing uevents turned out to be a bad idea as it screws up the
    order of events, making user space very confused. Change the system to
    use sysfs groups instead.

    This is a regression that, for some odd reason, has gone unnoticed for
    some time. It confuses hal so that the block devices (which have the
    mmc device as a parent) are not registered. End result being that
    desktop magic when cards are inserted won't work.

    Signed-off-by: Pierre Ossman
    Signed-off-by: Linus Torvalds

    Pierre Ossman
     
  • Increase the number of PnP memory resources from 12 to 24.

    This removes an "exceeded the max num of mem resources" warning on boot. I
    also noticed the reservation of two more iomem ranges on the computer on
    which this was tested.

    Signed-off-by: Darren Salt
    Signed-off-by: Ingo Molnar
    Acked-by: Bjorn Helgaas
    Signed-off-by: Linus Torvalds

    Darren Salt
     
  • PNP_MAX_MEM and PNP_MAX_PORT are mainly used to size tables of PNP
    device resources. In 2.6.24, we increased their values to accomodate
    ACPI devices that have many resources:

    2.6.23 2.6.24
    ------ ------
    PNP_MAX_MEM 4 12
    PNP_MAX_PORT 8 40

    However, ISAPNP also used these constants as the size of parts of the
    logical device register set. This register set is fixed by hardware,
    so increasing the constants meant that we were reading and writing
    unintended parts of the register set.

    This patch changes ISAPNP to use the correct register set sizes (the
    same values we used prior to 2.6.24).

    Signed-off-by: Bjorn Helgaas
    Signed-off-by: Linus Torvalds

    Bjorn Helgaas
     
  • Signed-off-by: Igor Mammedov
    Signed-off-by: Steve French

    Steve French
     
  • While testing the virtio-net driver on KVM with TSO I noticed
    that TSO performance with a 1500 MTU is significantly worse
    compared to the performance of non-TSO with a 16436 MTU. The
    packet dump shows that most of the packets sent are smaller
    than a page.

    Looking at the code this actually is quite obvious as it always
    stop extending the packet if it's the first packet yet to be
    sent and if it's larger than the MSS. Since each extension is
    bound by the page size, this means that (given a 1500 MTU) we're
    very unlikely to construct packets greater than a page, provided
    that the receiver and the path is fast enough so that packets can
    always be sent immediately.

    The fix is also quite obvious. The push calls inside the loop
    is just an optimisation so that we don't end up doing all the
    sending at the end of the loop. Therefore there is no specific
    reason why it has to do so at MSS boundaries. For TSO, the
    most natural extension of this optimisation is to do the pushing
    once the skb exceeds the TSO size goal.

    This is what the patch does and testing with KVM shows that the
    TSO performance with a 1500 MTU easily surpasses that of a 16436
    MTU and indeed the packet sizes sent are generally larger than
    16436.

    I don't see any obvious downsides for slower peers or connections,
    but it would be prudent to test this extensively to ensure that
    those cases don't regress.

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

    Herbert Xu
     
  • Revert

    commit f62f1fc9ef94f74fda2b456d935ba2da69fa0a40
    Author: Yinghai Lu
    Date: Fri Mar 7 15:02:50 2008 -0800

    x86: reserve dma32 early for gart

    The patch has a dependency on bootmem modifications which are not .25
    material that late in the -rc cycle. The problem which is addressed by
    the patch is limited to machines with 256G and more memory booted with
    NUMA disabled. This is not a .25 regression and the audience which is
    affected by this problem is very limited, so it's safer to do the
    revert than pulling in intrusive bootmem changes right now.

    Signed-off-by: Thomas Gleixner

    Thomas Gleixner
     

22 Mar, 2008

7 commits