19 Sep, 2008

1 commit

  • This patch adds support for AT91SAM9260-based board AFEB9260
    which is a product from both Open Source design which runs
    Open Source software. Some commertial projects
    are made with this design. A board is basically AT91SAM9260-EK
    with some modifications and different peripherals and different
    parts used. Main purpose of this project is to gain experience in
    hardware design.
    More info: http://groups.google.com/group/arm9fpga-evolution-board
    (In Russian only, sorry).
    Subversion repository: svn://194.85.238.22/home/users/george/svn/arm9eb

    By this patch only basic functionality is provided.

    Signed-off-by: Sergey Lapin
    Acked-by: Andrew Victor
    Signed-off-by: Russell King

    Sergey Lapin
     

10 Sep, 2008

14 commits

  • Linus Torvalds
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6:
    ipv6: Fix OOPS in ip6_dst_lookup_tail().
    ipsec: Restore larval states and socket policies in dump
    [Bluetooth] Reject L2CAP connections on an insecure ACL link
    [Bluetooth] Enforce correct authentication requirements
    [Bluetooth] Fix reference counting during ACL config stage

    Linus Torvalds
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-2.6:
    sparc64: Disable timer interrupts in fixup_irqs().

    Linus Torvalds
     
  • This fixes kernel bugzilla 11469: "TUN with 1024 neighbours:
    ip6_dst_lookup_tail NULL crash"

    dst->neighbour is not necessarily hooked up at this point
    in the processing path, so blindly dereferencing it is
    the wrong thing to do. This NULL check exists in other
    similar paths and this case was just an oversight.

    Also fix the completely wrong and confusing indentation
    here while we're at it.

    Based upon a patch by Evgeniy Polyakov.

    Signed-off-by: Neil Horman
    Signed-off-by: David S. Miller

    Neil Horman
     
  • …el/git/tip/linux-2.6-tip

    * 'timers-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
    clockevents: remove WARN_ON which was used to gather information

    Linus Torvalds
     
  • The issue of the endless reprogramming loop due to a too small
    min_delta_ns was fixed with the previous updates of the clock events
    code, but we had no information about the spread of this problem. I
    added a WARN_ON to get automated information via kerneloops.org and to
    get some direct reports, which allowed me to analyse the affected
    machines.

    The WARN_ON has served its purpose and would be annoying for a release
    kernel. Remove it and just keep the information about the increase of
    the min_delta_ns value.

    Signed-off-by: Thomas Gleixner

    Thomas Gleixner
     
  • …git/tip/linux-2.6-tip

    * 'x86-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
    x86: fix memmap=exactmap boot argument
    x86: disable static NOPLs on 32 bits
    xen: fix 2.6.27-rc5 xen balloon driver warnings

    Linus Torvalds
     
  • When using kdump modifying the e820 map is yielding strange results.

    For example starting with

    BIOS-provided physical RAM map:
    BIOS-e820: 0000000000000100 - 0000000000093400 (usable)
    BIOS-e820: 0000000000093400 - 00000000000a0000 (reserved)
    BIOS-e820: 0000000000100000 - 000000003fee0000 (usable)
    BIOS-e820: 000000003fee0000 - 000000003fef3000 (ACPI data)
    BIOS-e820: 000000003fef3000 - 000000003ff80000 (ACPI NVS)
    BIOS-e820: 000000003ff80000 - 0000000040000000 (reserved)
    BIOS-e820: 00000000e0000000 - 00000000f0000000 (reserved)
    BIOS-e820: 00000000fec00000 - 00000000fec10000 (reserved)
    BIOS-e820: 00000000fee00000 - 00000000fee01000 (reserved)
    BIOS-e820: 00000000ff000000 - 0000000100000000 (reserved)

    and booting with args

    memmap=exactmap memmap=640K@0K memmap=5228K@16384K memmap=125188K@22252K memmap=76K#1047424K memmap=564K#1047500K

    resulted in:

    user-defined physical RAM map:
    user: 0000000000000000 - 0000000000093400 (usable)
    user: 0000000000093400 - 00000000000a0000 (reserved)
    user: 0000000000100000 - 000000003fee0000 (usable)
    user: 000000003fee0000 - 000000003fef3000 (ACPI data)
    user: 000000003fef3000 - 000000003ff80000 (ACPI NVS)
    user: 000000003ff80000 - 0000000040000000 (reserved)
    user: 00000000e0000000 - 00000000f0000000 (reserved)
    user: 00000000fec00000 - 00000000fec10000 (reserved)
    user: 00000000fee00000 - 00000000fee01000 (reserved)
    user: 00000000ff000000 - 0000000100000000 (reserved)

    But should have resulted in:

    user-defined physical RAM map:
    user: 0000000000000000 - 00000000000a0000 (usable)
    user: 0000000001000000 - 000000000151b000 (usable)
    user: 00000000015bb000 - 0000000008ffc000 (usable)
    user: 000000003fee0000 - 000000003ff80000 (ACPI data)

    This is happening because of an improper usage of strcmp() in the
    e820 parsing code. The strcmp() always returns !0 and never resets the
    value for e820.nr_map and returns an incorrect user-defined map.

    This patch fixes the problem.

    Signed-off-by: Prarit Bhargava
    Signed-off-by: Ingo Molnar

    Prarit Bhargava
     
  • * 'for-linus' of git://git390.osdl.marist.edu/pub/scm/linux-2.6:
    [S390] cio: allow offline processing for disconnected devices
    [S390] cio: handle ssch() return codes correctly.
    [S390] cio: Correct cleanup on error.
    [S390] CVE-2008-1514: prevent ptrace padding area read/write in 31-bit mode

    Linus Torvalds
     
  • * 'upstream' of git://ftp.linux-mips.org/pub/scm/upstream-linus:
    [MIPS] IP22: Fix detection of second HPC3 on Challenge S

    Linus Torvalds
     
  • * 'linux-next' of git://git.infradead.org/~dedekind/ubifs-2.6:
    UBIFS: make minimum fanout 3
    UBIFS: fix division by zero
    UBIFS: amend f_fsid
    UBIFS: fill f_fsid
    UBIFS: improve statfs reporting even more
    UBIFS: introduce LEB overhead
    UBIFS: add forgotten gc_idx_lebs component
    UBIFS: fix assertion
    UBIFS: improve statfs reporting
    UBIFS: remove incorrect index space check
    UBIFS: push empty flash hack down
    UBIFS: do not update min_idx_lebs in stafs
    UBIFS: allow for racing between GC and TNC
    UBIFS: always read hashed-key nodes under TNC mutex
    UBIFS: fix zero-length truncations

    Linus Torvalds
     
  • It was introduced by "vsprintf: add support for '%pS' and '%pF' pointer
    formats" in commit 0fe1ef24f7bd0020f29ffe287dfdb9ead33ca0b2. However,
    the current way its coded doesn't work on parisc64. For two reasons: 1)
    parisc isn't in the #ifdef and 2) parisc has a different format for
    function descriptors

    Make dereference_function_descriptor() more accommodating by allowing
    architecture overrides. I put the three overrides (for parisc64, ppc64
    and ia64) in arch/kernel/module.c because that's where the kernel
    internal linker which knows how to deal with function descriptors sits.

    Signed-off-by: James Bottomley
    Acked-by: Benjamin Herrenschmidt
    Acked-by: Tony Luck
    Acked-by: Kyle McMartin
    Signed-off-by: Linus Torvalds

    James Bottomley
     
  • Jie Yang at Atheros is getting more directly involved with upstream work
    on the atl* drivers. This patch changes the ATL1 entry to ATLX (atl2
    support posted to netdev today) and adds him as a maintainer.

    Signed-off-by: Linus Torvalds

    Chris Snook
     
  • In the 2.6.27 circle ->fasync lost the BKL, and the last remaining
    ->open variant that takes the BKL is also gone. ->get_sb and ->kill_sb
    didn't have BKL forever, so updated the entries while we're at that.

    Signed-off-by: Christoph Hellwig
    Signed-off-by: Linus Torvalds

    Christoph Hellwig
     

09 Sep, 2008

25 commits

  • The commit commit 4c563f7669c10a12354b72b518c2287ffc6ebfb3 ("[XFRM]:
    Speed up xfrm_policy and xfrm_state walking") inadvertently removed
    larval states and socket policies from netlink dumps. This patch
    restores them.

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

    Herbert Xu
     
  • When disconnected ccw devices are removed, the device has to be set
    offline, otherwise there will be side effects including a reference
    count imbalance. This patch modifies ccw_device_offline to work for
    devices in disconnecte/not operational state. ccw_device_offline is
    called by cio for devices which are online during device removal.

    Signed-off-by: Peter Oberparleiter
    Signed-off-by: Martin Schwidefsky

    Peter Oberparleiter
     
  • ssch() has two classes of return codes:
    - condition codes (0-3) which need to be translated to Linux
    error codes
    - Linux error codes (-EIO on exceptions) which should be passed
    to the caller (instead of erronously being handled like
    condition code 3)

    Signed-off-by: Cornelia Huck
    Signed-off-by: Martin Schwidefsky

    Cornelia Huck
     
  • Fix cleanup on error in chp_new() and init_channel_subsystem()
    (must not call kfree() on structures that had been registered).

    Signed-off-by: Cornelia Huck
    Signed-off-by: Martin Schwidefsky

    Cornelia Huck
     
  • When running a 31-bit ptrace, on either an s390 or s390x kernel,
    reads and writes into a padding area in struct user_regs_struct32
    will result in a kernel panic.

    This is also known as CVE-2008-1514.

    Test case available here:
    http://sources.redhat.com/cgi-bin/cvsweb.cgi/~checkout~/tests/ptrace-tests/tests/user-area-padding.c?cvsroot=systemtap

    Steps to reproduce:
    1) wget the above
    2) gcc -o user-area-padding-31bit user-area-padding.c -Wall -ggdb2 -D_GNU_SOURCE -m31
    3) ./user-area-padding-31bit

    Test status
    -----------
    Without patch, both s390 and s390x kernels panic. With patch, the test case,
    as well as the gdb testsuite, pass without incident, padding area reads
    returning zero, writes ignored.

    Nb: original version returned -EINVAL on write attempts, which broke the
    gdb test and made the test case slightly unhappy, Jan Kratochvil suggested
    the change to return 0 on write attempts.

    Signed-off-by: Jarod Wilson
    Tested-by: Jan Kratochvil
    Signed-off-by: Martin Schwidefsky

    Jarod Wilson
     
  • David S. Miller
     
  • The Security Mode 4 of the Bluetooth 2.1 specification has strict
    authentication and encryption requirements. It is the initiators job
    to create a secure ACL link. However in case of malicious devices, the
    acceptor has to make sure that the ACL is encrypted before allowing
    any kind of L2CAP connection. The only exception here is the PSM 1 for
    the service discovery protocol, because that is allowed to run on an
    insecure ACL link.

    Previously it was enough to reject a L2CAP connection during the
    connection setup phase, but with Bluetooth 2.1 it is forbidden to
    do any L2CAP protocol exchange on an insecure link (except SDP).

    The new hci_conn_check_link_mode() function can be used to check the
    integrity of an ACL link. This functions also takes care of the cases
    where Security Mode 4 is disabled or one of the devices is based on
    an older specification.

    Signed-off-by: Marcel Holtmann

    Marcel Holtmann
     
  • With the introduction of Security Mode 4 and Simple Pairing from the
    Bluetooth 2.1 specification it became mandatory that the initiator
    requires authentication and encryption before any L2CAP channel can
    be established. The only exception here is PSM 1 for the service
    discovery protocol (SDP). It is meant to be used without any encryption
    since it contains only public information. This is how Bluetooth 2.0
    and before handle connections on PSM 1.

    For Bluetooth 2.1 devices the pairing procedure differentiates between
    no bonding, general bonding and dedicated bonding. The L2CAP layer
    wrongly uses always general bonding when creating new connections, but it
    should not do this for SDP connections. In this case the authentication
    requirement should be no bonding and the just-works model should be used,
    but in case of non-SDP connection it is required to use general bonding.

    If the new connection requires man-in-the-middle (MITM) protection, it
    also first wrongly creates an unauthenticated link key and then later on
    requests an upgrade to an authenticated link key to provide full MITM
    protection. With Simple Pairing the link key generation is an expensive
    operation (compared to Bluetooth 2.0 and before) and doing this twice
    during a connection setup causes a noticeable delay when establishing
    a new connection. This should be avoided to not regress from the expected
    Bluetooth 2.0 connection times. The authentication requirements are known
    up-front and so enforce them.

    To fulfill these requirements the hci_connect() function has been extended
    with an authentication requirement parameter that will be stored inside
    the connection information and can be retrieved by userspace at any
    time. This allows the correct IO capabilities exchange and results in
    the expected behavior.

    Signed-off-by: Marcel Holtmann

    Marcel Holtmann
     
  • The ACL config stage keeps holding a reference count on incoming
    connections when requesting the extended features. This results in
    keeping an ACL link up without any users. The problem here is that
    the Bluetooth specification doesn't define an ownership of the ACL
    link and thus it can happen that the implementation on the initiator
    side doesn't care about disconnecting unused links. In this case the
    acceptor needs to take care of this.

    Signed-off-by: Marcel Holtmann

    Marcel Holtmann
     
  • When a CPU is offlined, we leave the timer interrupts disabled
    because fixup_irqs() does not explicitly take care of that case.

    Fix this by invoking tick_ops->disable_irq().

    Based upon analysis done by Paul E. McKenney.

    Signed-off-by: David S. Miller

    David S. Miller
     
  • * 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/hskinnemoen/avr32-2.6:
    avr32: pm_standby low-power ram bug fix
    avr32: Fix lockup after Java stack underflow in user mode

    Linus Torvalds
     
  • * 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc:
    powerpc: Fix rare boot build breakage
    powerpc/spufs: Fix possible scheduling of a context to multiple SPEs
    powerpc/spufs: Fix race for a free SPU
    powerpc/spufs: Fix multiple get_spu_context()

    Linus Torvalds
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6:
    Revert "crypto: camellia - Use kernel-provided bitops, unaligned access helpers"

    Linus Torvalds
     
  • * master.kernel.org:/home/rmk/linux-2.6-arm:
    [ARM] 5241/1: provide ioremap_wc()
    [ARM] omap: fix virtual vs physical address space confusions
    [ARM] remove unused #include
    [ARM] omap: fix build error in ohci-omap.c
    [ARM] omap: fix gpio.c build error

    Linus Torvalds
     
  • …l/git/tip/linux-2.6-tip

    * 'sched-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
    sched: arch_reinit_sched_domains() must destroy domains to force rebuild
    sched, cpuset: rework sched domains and CPU hotplug handling (v4)

    Linus Torvalds
     
  • * 'upstream-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jgarzik/libata-dev:
    ahci: RAID mode SATA patch for Intel Ibex Peak DeviceIDs
    pata_sil680: remove duplicate pcim_enable_device
    libata-sff: kill spurious WARN_ON() in ata_hsm_move()
    sata_nv: disable hardreset for generic
    ahci: disable PMP for marvell ahcis
    sata_mv: add RocketRaid 1720 PCI ID to driver
    ahci, pata_marvell: play nicely together

    Linus Torvalds
     
  • ... one entry lacked a colon which broke one of my scripts.

    Signed-off-by: Uwe Kleine-König
    Signed-off-by: Linus Torvalds

    Uwe Kleine-König
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6:
    bridge: don't allow setting hello time to zero
    netns : fix kernel panic in timewait socket destruction
    pkt_sched: Fix qdisc state in net_tx_action()
    netfilter: nf_conntrack_irc: make sure string is terminated before calling simple_strtoul
    netfilter: nf_conntrack_gre: nf_ct_gre_keymap_flush() fixlet
    netfilter: nf_conntrack_gre: more locking around keymap list
    netfilter: nf_conntrack_sip: de-static helper pointers

    Linus Torvalds
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-2.6:
    sparc64: Prevent sparc64 from invoking irq handlers on offline CPUs
    sparc64: Fix IPI call locking.

    Linus Torvalds
     
  • The hw interface drivers for the usb serial devices deference the tty
    structure to set up the parameters for the initial console. The tty
    structure should be passed as a parameter to the set_termios() call.

    Signed-off-by: Jason Wessel
    Signed-off-by: Alan Cox
    Signed-off-by: Linus Torvalds

    Jason Wessel
     
  • Automounter maps can contain mount options valid for other NFS
    implementations but not for Linux. The Linux automounter uses the
    mount command's "-s" command line option ("s" for "sloppy") so that
    mount requests containing such options are not rejected.

    Commit f45663ce5fb30f76a3414ab3ac69f4dd320e760a attempted to address a
    known regression with text-based NFS mount option parsing. Unrecognized
    mount options would cause mount requests to fail, even if the "-s"
    option was used on the mount command line.

    Unfortunately, this commit was not complete as submitted. It adds a
    new mount option, "sloppy". But it is missing a hunk, so it now allows
    NFS mounts with unrecognized mount options, even if the "sloppy" option
    is not present. This could be a problem if a required critical mount
    option such as "sync" is misspelled, for example, and is considered a
    regression from 2.6.26.

    This patch restores the missing hunk. Now, the default behavior of
    text-based NFS mount options is as before: any unrecognized mount option
    will cause the mount to fail.

    Please include this in 2.6.27-rc.

    Thanks to Neil Brown for reporting this.

    Signed-off-by: Chuck Lever
    Acked-by: J. Bruce Fields
    Signed-off-by: Linus Torvalds

    Chuck Lever
     
  • Dushan Tcholich reports that on his system ksoftirqd can consume
    between %6 to %10 of cpu time, and cause ~200 context switches per
    second.

    He then correlated this with a report by bdupree@techfinesse.com:

    http://marc.info/?l=linux-kernel&m=119613299024398&w=2

    and the culprit cause seems to be starting the bridge interface.
    In particular, when starting the bridge interface, his scripts
    are specifying a hello timer interval of "0".

    The bridge hello time can't be safely set to values less than 1
    second, otherwise it is possible to end up with a runaway timer.

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

    Stephen Hemminger
     
  • How to reproduce ?
    - create a network namespace
    - use tcp protocol and get timewait socket
    - exit the network namespace
    - after a moment (when the timewait socket is destroyed), the kernel
    panics.

    # BUG: unable to handle kernel NULL pointer dereference at
    0000000000000007
    IP: [] inet_twdr_do_twkill_work+0x6e/0xb8
    PGD 119985067 PUD 11c5c0067 PMD 0
    Oops: 0000 [1] SMP
    CPU 1
    Modules linked in: ipv6 button battery ac loop dm_mod tg3 libphy ext3 jbd
    edd fan thermal processor thermal_sys sg sata_svw libata dock serverworks
    sd_mod scsi_mod ide_disk ide_core [last unloaded: freq_table]
    Pid: 0, comm: swapper Not tainted 2.6.27-rc2 #3
    RIP: 0010:[] []
    inet_twdr_do_twkill_work+0x6e/0xb8
    RSP: 0018:ffff88011ff7fed0 EFLAGS: 00010246
    RAX: ffffffffffffffff RBX: ffffffff82339420 RCX: ffff88011ff7ff30
    RDX: 0000000000000001 RSI: ffff88011a4d03c0 RDI: ffff88011ac2fc00
    RBP: ffffffff823392e0 R08: 0000000000000000 R09: ffff88002802a200
    R10: ffff8800a5c4b000 R11: ffffffff823e4080 R12: ffff88011ac2fc00
    R13: 0000000000000001 R14: 0000000000000001 R15: 0000000000000000
    FS: 0000000041cbd940(0000) GS:ffff8800bff839c0(0000)
    knlGS:0000000000000000
    CS: 0010 DS: 0018 ES: 0018 CR0: 000000008005003b
    CR2: 0000000000000007 CR3: 00000000bd87c000 CR4: 00000000000006e0
    DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
    DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
    Process swapper (pid: 0, threadinfo ffff8800bff9e000, task
    ffff88011ff76690)
    Stack: ffffffff823392e0 0000000000000100 ffffffff821e3a3a
    0000000000000008
    0000000000000000 ffffffff821e3a61 ffff8800bff7c000 ffffffff8203c7e7
    ffff88011ff7ff10 ffff88011ff7ff10 0000000000000021 ffffffff82351108
    Call Trace:
    [] ? inet_twdr_hangman+0x0/0x9e
    [] ? inet_twdr_hangman+0x27/0x9e
    [] ? run_timer_softirq+0x12c/0x193
    [] ? __do_softirq+0x5e/0xcd
    [] ? call_softirq+0x1c/0x28
    [] ? do_softirq+0x2c/0x68
    [] ? smp_apic_timer_interrupt+0x8e/0xa9
    [] ? apic_timer_interrupt+0x66/0x70
    [] ? default_idle+0x27/0x3b
    [] ? cpu_idle+0x5f/0x7d

    Code: e8 01 00 00 4c 89 e7 41 ff c5 e8 8d fd ff ff 49 8b 44 24 38 4c 89 e7
    65 8b 14 25 24 00 00 00 89 d2 48 8b 80 e8 00 00 00 48 f7 d0 8b 04 d0
    48 ff 40 58 e8 fc fc ff ff 48 89 df e8 c0 5f 04 00
    RIP [] inet_twdr_do_twkill_work+0x6e/0xb8
    RSP
    CR2: 0000000000000007

    This patch provides a function to purge all timewait sockets related
    to a network namespace. The timewait sockets life cycle is not tied with
    the network namespace, that means the timewait sockets stay alive while
    the network namespace dies. The timewait sockets are for avoiding to
    receive a duplicate packet from the network, if the network namespace is
    freed, the network stack is removed, so no chance to receive any packets
    from the outside world. Furthermore, having a pending destruction timer
    on these sockets with a network namespace freed is not safe and will lead
    to an oops if the timer callback which try to access data belonging to
    the namespace like for example in:
    inet_twdr_do_twkill_work
    -> NET_INC_STATS_BH(twsk_net(tw), LINUX_MIB_TIMEWAITED);

    Purging the timewait sockets at the network namespace destruction will:
    1) speed up memory freeing for the namespace
    2) fix kernel panic on asynchronous timewait destruction

    Signed-off-by: Daniel Lezcano
    Acked-by: Denis V. Lunev
    Acked-by: Eric W. Biederman
    Signed-off-by: David S. Miller

    Daniel Lezcano
     
  • On 32-bit, at least the generic nops are fairly reasonable, but the
    default nops for 64-bit really look pretty sad, and the P6 nops really do
    look better.

    So I would suggest perhaps moving the static P6 nop selection into the
    CONFIG_X86_64 thing.

    The alternative is to just get rid of that static nop selection, and just
    have two cases: 32-bit and 64-bit, and just pick obviously safe cases for
    them.

    Signed-off-by: H. Peter Anvin

    Linus Torvalds
     
  • Set the class so it doesn't clash with the normal memory class.

    Signed-off-by: Jeremy Fitzhardinge
    Signed-off-by: Ingo Molnar
    ===================================================================

    Jeremy Fitzhardinge