01 Mar, 2006

17 commits

  • Some "inline" removing that Andrew suggested, removed some locking on
    add/remove at this level - we'll let the callees decide.

    Signed-off-by: Patrick Gefre
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Pat Gefre
     
  • The RedBoot boot loader writes flash partition tables containing native
    byte sex 32 bit values. When booting an opposite byte sex kernel (e.g. an
    LE kernel from BE RedBoot) the current MTD driver fails to handle the
    partition table and therefore is unable to generate the correct partition
    map for the flash.

    So far as I am aware this problem is ARM specific, because only ARM
    supports software change of the CPU (memory system) byte sex, however the
    partition table parsing is in generic MTD code. The patch below has been
    tested on NSLU2 (an IXP4XX based system) with a patch,
    10-ixp4xx-copy-from.patch (submitted to linux-arm-kernel - it's ARM
    specific) required to make the maps/ixp4xx.c driver work with an LE kernel.

    Builds of the patched system are in the 'unstable' release of OpenSlug and
    UcSlugC available from www.nslu2-linux.org. These builds are BE, the
    archives at www.nslu2-linux.org and www.handhelds.org (see
    monotone.vanille.de) can be built LE (currently DISTRO targets
    nslu-ltu.conf for LE thumb uclibc (32 bit kernel) and nslu2-lau.conf,
    nslu2-lag.conf for LE arm uclibc/glibc) and this patch has been tested
    extensively will both BE and LE systems on the NSLU2 (including swapping
    between BE and LE by reflashing from both RedBoot and Linux).

    The patch recognises that the FIS directory (the partition table) is
    byte-reversed by examining the partition table size, which is known to be
    one erase block (this is an assumption made elsewhere in redboot.c). If
    the size matches the erase block after byte swapping the value then
    byte-reversal is assumed, if not no further action is taken. The patched
    code is fail safe; should redboot.c be changed to support a partition table
    with a modified size field the test will fail and the partition table will
    be assumed to have the host byte sex.

    If byte-reversal is detected the patch byte swaps the remainder of the 32
    bit fields in the copy of the table; this copy is then used to set up the
    MTD partition map.

    Signed-off-by: John Bowler
    Cc: David Woodhouse
    Cc: Thomas Gleixner
    Cc: Martin Michlmayr
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    John Bowler
     
  • If negative entries (nodeid == 0) were sent in reply to LOOKUP requests,
    two bugs could be triggered:

    - looking up a negative entry would return -EIO,

    - revaildate on an entry which turned negative would send a FORGET
    request with zero nodeid, which would cause an abort() in the
    library.

    The above would only happen if the 'negative_timeout=N' option was used,
    otherwise lookups reply -ENOENT, which worked correctly.

    Signed-off-by: Miklos Szeredi
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Miklos Szeredi
     
  • Currently sys_migrate_pages only moves pages belonging to a process. This
    is okay when invoked from a regular user. But if invoked from root it
    should move all pages as documented in the migrate_pages manpage.

    Signed-off-by: Christoph Lameter
    Cc: Andi Kleen
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Christoph Lameter
     
  • This driver loops over 'num_online_cpus', but it doesn't account for holes
    in the online map created by offlined cpus, and assumes that the cpu
    numbers stay linear.

    Signed-off-by: Dave Jones
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Dave Jones
     
  • Linus Torvalds
     
  • This patch adds a bunch of new device IDs to the ftdi_sio driver for
    various devices from microHAM using FTDI chips.

    Micheal Studer supplied the PID for the USB-Y9 device. I examined the
    INF file in microHAM's Windows driver package for the USB-KW, USB-YS,
    USB-IC, USB-DB9 and USB-RS232 devices.

    Signed-off-by: Ian Abbott
    Signed-off-by: Greg Kroah-Hartman

    Ian Abbott
     
  • Added the USB vendorID of GSPDA and the productID of GSPDA's palm
    smartphone 'xplore m68' to the list of known devices.

    Signed-off-by: Hendrik Schweppe
    Signed-off-by: Greg Kroah-Hartman

    Hendrik Schweppe
     
  • Remote NDIS response to OID_GEN_SUPPORTED_LIST only allocated space
    for the data attached to the reply, and not the reply structure
    itself. This caused other kmalloc'd memory to be corrupted.

    Signed-off-by: Shaun Tancheff
    Signed-off-by: David Brownell
    Signed-off-by: Greg Kroah-Hartman

    Shaun Tancheff
     
  • There is a dead lock in lh7a40x udc driver. When the driver receive a
    SET_FEATURE HALT request, the dev lock is taken by the interrupt
    handler lh7a40x_udc_irq then the handler will call lh7a40x_set_halt
    function which in its turn will try to acquire the dev lock.

    Signed-off-by: Franck Bui-Huu
    Signed-off-by: Greg Kroah-Hartman

    Franck Bui-Huu
     
  • This patch (as656) adds an unusual_devs.h entry for the Lyra RCA RD1080
    MP3 player. Its card-reader firmware has the common
    report-one-too-many-sectors bug. This fixes Novell bug #152175.

    Signed-off-by: Alan Stern
    Signed-off-by: Greg Kroah-Hartman

    Alan Stern
     
  • This patch is for the Dual USB Joypad [0925:8866] from Wisegroup. The
    HID_QUIRK_NOGET is necessary for it to respond to input, and the
    HID_QUIRK_MULTI_INPUT is necessary to have two js# nodes appear.

    Signed-off-by: Andrew Fuller
    Cc: "Dmitry Torokhov"
    Signed-off-by: Greg Kroah-Hartman

    Andrew Fuller
     
  • Fix http://bugzilla.kernel.org/show_bug.cgi?id=6128

    Finish morphing the "early handoff" version of the EHCI BIOS handshake over
    to match the previous implementation inside the EHCI driver (except that
    now we forcibly disable the SMI). The version that had been with the PCI
    code was surprisingly full of bugs.

    Signed-off-by: David Brownell
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Greg Kroah-Hartman

    David Brownell
     
  • The caller takes the UART port lock, so we shouldn't try
    to take it again.

    Signed-off-by: David S. Miller

    David S. Miller
     
  • Linus Torvalds
     
  • Signed-off-by: Ralf Baechle

    Ralf Baechle
     
  • When a CPU has no scache, the scache flushing functions currently
    aren't getting initialized and the NULL pointer is eventually called
    as a function. Initialize the scache flushing functions as a noop
    when there's no scache.

    Initial patch by me and most of the debugging done by Martin Michlmayr.

    Signed-off-by: Martin Michlmayr
    Signed-off-by: Ralf Baechle

    Ralf Baechle
     

28 Feb, 2006

23 commits

  • Linus Torvalds
     
  • During testing of SLES10, we encountered a hang in the CFQ io scheduler.
    Turns out the deferred slice expiry logic is buggy, so remove that for
    now. We could be left with an idle queue that would never wake up. So
    kill that logic, always expire immediately. Also fix a potential timer
    race condition.

    Patch looks bigger than it is, because it moves a function.

    Signed-off-by: Jens Axboe
    Signed-off-by: Linus Torvalds

    Jens Axboe
     
  • Before the merge I updated create_pte_mapping() to work for iSeries, by
    calling iSeries_hpte_bolt_or_insert. (4c55130b2aa93370f1bf52d2304394e91cf8ee39)

    Later we changed iSeries_hpte_insert to cope with the bolting case, and called
    that instead from create_pte_mapping() (which was renamed to htab_bolt_mapping)
    (3c726f8dee6f55e96475574e9f645327e461884c).

    Unfortunately that change introduced a subtle bug, where we pass an absolute
    address to iSeries_hpte_insert() where it expects a physical address. This
    leads to us calling phys_to_abs() twice on the physical address, which is
    seriously bogus.

    This only causes a problem if the absolute address from the first translation
    can be looked up again in the chunk_map, which depends on the size and layout
    of memory. I've seen it fail on one box, but not others.

    The minimal fix is to pass the physical address to iSeries_hpte_insert(). For
    2.6.17 we should make phys_to_abs() BUG if we try to double-translate an
    address.

    Signed-off-by: Michael Ellerman
    Signed-off-by: Paul Mackerras

    Michael Ellerman
     
  • This patch fixes a crash in handle_eeh_events,
    but ethtool -t still doesnt work right.

    ...
    pepino:~ # cpu 0x3: Vector: 300 (Data Access) at [c00000005192bbe0]
    pc: c00000000004a380: .handle_eeh_events+0xe0/0x23c
    lr: c00000000004a374: .handle_eeh_events+0xd4/0x23c
    sp: c00000005192be60
    msr: 9000000000009032
    dar: 268
    dsisr: 40000000
    current = 0xc0000001fe7bf1a0
    paca = 0xc00000000048b280
    pid = 16322, comm = eehd
    enter ? for help
    [c00000005192bf00] c00000000004a808 .eeh_event_handler+0xcc/0x130
    [c00000005192bf90] c000000000025e00 .kernel_thread+0x4c/0x68

    ...

    (none):/# /usr/sbin/ethtool -i eth0
    driver: e100
    version: 3.5.10-k2-NAPI
    firmware-version: N/A
    bus-info: 0000:21:01.0
    (none):/# /usr/sbin/ethtool -t eth0
    Call Trace:
    [C00000000F8DEFF0] [C00000000000F270] .show_stack+0x74/0x1b4 (unreliable)
    [C00000000F8DF0A0] [C000000000049D04] .eeh_dn_check_failure+0x290/0x2d8
    [C00000000F8DF150] [C000000000049E58] .eeh_check_failure+0x10c/0x138
    [C00000000F8DF1E0] [C0000000002DFDB0] .e100_hw_reset+0x70/0xf4
    [C00000000F8DF270] [C0000000002E1BBC] .e100_hw_init+0x2c/0x260
    [C00000000F8DF310] [C0000000002E2464] .e100_loopback_test+0x8c/0x220
    [C00000000F8DF3C0] [C0000000002E28DC] .e100_diag_test+0xdc/0x16c
    [C00000000F8DF490] [C000000000420BE0] .dev_ethtool+0xf24/0x14f8
    [C00000000F8DF8F0] [C00000000041F4A8] .dev_ioctl+0x5cc/0x740
    [C00000000F8DFA20] [C00000000040FEFC] .sock_ioctl+0x3d0/0x404
    [C00000000F8DFAC0] [C0000000000D513C] .do_ioctl+0x68/0x108
    [C00000000F8DFB50] [C0000000000D56B0] .vfs_ioctl+0x4d4/0x510
    [C00000000F8DFC10] [C0000000000D5740] .sys_ioctl+0x54/0x94
    [C00000000F8DFCC0] [C0000000000FB6EC] .ethtool_ioctl+0x11c/0x150
    [C00000000F8DFD60] [C0000000000F7E40] .compat_sys_ioctl+0x338/0x3bc
    [C00000000F8DFE30] [C00000000000871C] syscall_exit+0x0/0x40
    EEH: Detected PCI bus error on device 0000:21:01.0
    EEH: This PCI device has failed 1 times since last reboot: -

    modprobe: FATAL: Could not load /lib/modules/2.6.16-rc4-git7/modules.dep: No such file or directory

    Cannot get strings: No such device
    (none):/#
    (none):/# EEH: Unable to configure device bridge (-3) for /pci@400000000110/pci@2,2

    (none):/# Call Trace:
    [C00000000FA17940] [C00000000000F270] .show_stack+0x74/0x1b4 (unreliable)
    [C00000000FA179F0] [C000000000049D04] .eeh_dn_check_failure+0x290/0x2d8
    [C00000000FA17AA0] [C00000000001E114] .rtas_read_config+0x120/0x154
    [C00000000FA17B40] [C000000000049664] .early_enable_eeh+0x274/0x2bc
    [C00000000FA17C00] [C000000000049708] .eeh_add_device_early+0x5c/0x6c
    [C00000000FA17C90] [C000000000049748] .eeh_add_device_tree_early+0x30/0x5c
    [C00000000FA17D20] [C000000000046568] .pcibios_add_pci_devices+0x8c/0x1f8
    [C00000000FA17DD0] [C00000000004A528] .eeh_reset_device+0xe0/0x110
    [C00000000FA17E60] [C00000000004A698] .handle_eeh_events+0x140/0x250
    [C00000000FA17F00] [C00000000004AC7C] .eeh_event_handler+0xe8/0x140
    [C00000000FA17F90] [C000000000025784] .kernel_thread+0x4c/0x68
    EEH: Detected PCI bus error on device
    EEH: This PCI device has failed 1 times since last reboot: -
    EEH: Unable to configure device bridge (-3) for /pci@400000000110/pci@2,2
    Call Trace:
    [C00000000FA17940] [C00000000000F270] .show_stack+0x74/0x1b4 (unreliable)
    [C00000000FA179F0] [C000000000049D04] .eeh_dn_check_failure+0x290/0x2d8
    [C00000000FA17AA0] [C00000000001E114] .rtas_read_config+0x120/0x154
    [C00000000FA17B40] [C000000000049664] .early_enable_eeh+0x274/0x2bc
    [C00000000FA17C00] [C000000000049708] .eeh_add_device_early+0x5c/0x6c
    [C00000000FA17C90] [C000000000049748] .eeh_add_device_tree_early+0x30/0x5c
    [C00000000FA17D20] [C000000000046568] .pcibios_add_pci_devices+0x8c/0x1f8
    [C00000000FA17DD0] [C00000000004A528] .eeh_reset_device+0xe0/0x110
    [C00000000FA17E60] [C00000000004A698] .handle_eeh_events+0x140/0x250
    [C00000000FA17F00] [C00000000004AC7C] .eeh_event_handler+0xe8/0x140
    [C00000000FA17F90] [C000000000025784] .kernel_thread+0x4c/0x68
    EEH: Detected PCI bus error on device
    EEH: This PCI device has failed 1 times since last reboot: -
    EEH: Unable to configure device bridge (-3) for /pci@400000000110/pci@2,2
    Call Trace:
    [C00000000FA17940] [C00000000000F270] .show_stack+0x74/0x1b4 (unreliable)
    [C00000000FA179F0] [C000000000049D04] .eeh_dn_check_failure+0x290/0x2d8
    [C00000000FA17AA0] [C00000000001E114] .rtas_read_config+0x120/0x154
    [C00000000FA17B40] [C000000000049664] .early_enable_eeh+0x274/0x2bc
    [C00000000FA17C00] [C000000000049708] .eeh_add_device_early+0x5c/0x6c
    [C00000000FA17C90] [C000000000049748] .eeh_add_device_tree_early+0x30/0x5c
    [C00000000FA17D20] [C000000000046568] .pcibios_add_pci_devices+0x8c/0x1f8
    [C00000000FA17DD0] [C00000000004A528] .eeh_reset_device+0xe0/0x110
    [C00000000FA17E60] [C00000000004A698] .handle_eeh_events+0x140/0x250
    [C00000000FA17F00] [C00000000004AC7C] .eeh_event_handler+0xe8/0x140
    [C00000000FA17F90] [C000000000025784] .kernel_thread+0x4c/0x68
    EEH: Detected PCI bus error on device
    and so on

    Signed-off-by: Olaf Hering
    Acked-by: Linas Vepstas
    Signed-off-by: Paul Mackerras

    Olaf Hering
     
  • A bug in the assembly code of the vdso can cause gettimeofday() to hang
    or to return incorrect results. The wrong register was used to test for
    pending updates of the calibration variables and to create a dependency
    for subsequent loads. This fixes it.

    Signed-off-by: Benjamin Herrenschmidt
    Signed-off-by: Paul Mackerras

    Benjamin Herrenschmidt
     
  • Some hotplug driver functions were migrated to the kernel for use by EEH
    in commit 2bf6a8fa21570f37fd1789610da30f70a05ac5e3.

    Previously, the PCI Hotplug module had been changed to use the new
    OFDT-based PCI probe when appropriate:
    5fa80fcdca9d20d30c9ecec30d4dbff4ed93a5c6

    When rpaphp_pci_config_slot() was moved from the rpaphp driver to the
    new kernel function pcibios_add_pci_devices(), the OFDT-based probe
    stuff was dropped. This patch restores it.

    Signed-off-by: John Rose
    Signed-off-by: Paul Mackerras

    John Rose
     
  • Linus Torvalds
     
  • …sumption on IBM systems"

    This reverts commit 13a229abc25640813f1480c0478dfc6bdbc1c19e.

    Quoth Andi:
    "After some consideration and feedback from various people it turns
    out this wasn't that good an idea. It has some problems and needs
    more work. Since it was only an optimization anyways it's best to
    just back it out again for now."

    Signed-off-by: Linus Torvalds <torvalds@osdl.org>

    Linus Torvalds
     
  • Until problems are sorted.

    Jeff Garzik
     
  • Linus Torvalds
     
  • obscure corruption case

    SGI-PV: 942658
    SGI-Modid: xfs-linux-melb:xfs-kern:207119a

    Signed-off-by: Eric Sandeen
    Signed-off-by: Nathan Scott

    Eric Sandeen
     
  • regressed recently via the fix for inherited quota inode attributes.

    SGI-PV: 947312
    SGI-Modid: xfs-linux-melb:xfs-kern:25318a

    Signed-off-by: Nathan Scott

    Nathan Scott
     
  • fix. Noticed by Roger Willcocks.

    SGI-PV: 949821
    SGI-Modid: xfs-linux-melb:xfs-kern:25257a

    Signed-off-by: Nathan Scott

    Nathan Scott
     
  • Linus Torvalds
     
  • In 295f7324ff8d9ea58b4d3ec93b1aaa1d80e048a9 I moved defer_accept from
    tcp_sock to request_queue and mistakingly reset it at reqsl_queue_alloc, causing
    calls to setsockopt(TCP_DEFER_ACCEPT ) to be lost after bind, the fix is to
    remove the zeroing of rskq_defer_accept from reqsl_queue_alloc.

    Thanks to Alexandra N. Kossovsky for
    reporting and testing the suggested fix.

    Signed-off-by: Arnaldo Carvalho de Melo
    Signed-off-by: David S. Miller

    Arnaldo Carvalho de Melo
     
  • The nfnetlink_log infrastructure changes broke compatiblity of the LOG
    targets. They currently use whatever log backend was registered first,
    which means that if ipt_ULOG was loaded first, no messages will be printed
    to the ring buffer anymore.

    Restore compatiblity by using the old log functions by default and only use
    the nf_log backend if the user explicitly said so.

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

    Patrick McHardy
     
  • The comparison wants to find out if the last list iteration reached the
    end of the list. It needs to compare the iterator with the list head to
    do this, not the element it is looking for.

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

    Patrick McHardy
     
  • The only point of registering a queue handler is to provide an outfn,
    so there is no need to check for it.

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

    Patrick McHardy
     
  • Packets should be rerouted when they come back from userspace, not before.
    Also move the queue_rerouters to RCU to avoid taking the queue_handler_lock
    for each reinjected packet.

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

    Patrick McHardy
     
  • Every rerouter needs to provide a save and a reroute function, we don't
    need to check for them. But we do need to check if a rerouter is registered
    at all for the current family, with bridging for example packets of
    unregistered families can hit nf_queue.

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

    Patrick McHardy
     
  • Use the registered data structure instead of copying it.

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

    Patrick McHardy
     
  • The only reason post_input exists at all is that it gives us the
    potential to adjust the checksums incrementally in future which
    we ought to do.

    However, after thinking about it for a bit we can adjust the
    checksums without using this post_input stuff at all. The crucial
    point is that only the inner-most NAT-T SA needs to be considered
    when adjusting checksums. What's more, the checksum adjustment
    comes down to a single u32 due to the linearity of IP checksums.

    We just happen to have a spare u32 lying around in our skb structure :)
    When ip_summed is set to CHECKSUM_NONE on input, the value of skb->csum
    is currently unused. All we have to do is to make that the checksum
    adjustment and voila, there goes all the post_input and decap structures!

    I've left in the decap data structures for now since it's intricately
    woven into the sec_path stuff. We can kill them later too.

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

    Herbert Xu
     
  • We used to keep sg on the stack which is why the extra block was useful.
    We've long since stopped doing that so let's kill the block and save
    some indentation.

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

    Herbert Xu