05 May, 2010

3 commits


04 May, 2010

3 commits

  • Zoom2 and 3 have UARTs only on the external debug board.
    GPMC needs to be mapped early to use it for DEBUG_LL.

    Additionally, 0xfb000000 overlaps with other areas, so
    use 0xfa400000 for the virtual address instead.

    Note that with the pending serial.c patches you need to
    set console=ttyS0,115200n8 as it will be the only UART
    mapped. To use DEBUG_LL, you need to pass also earlyprintk
    in cmdline.

    Cc: Allen Pais
    Acked-by: Vikram Pandita
    Signed-off-by: Tony Lindgren

    Tony Lindgren
     
  • This removes the dependency to the UART1 being available for storing
    the debug configuration in uncompress.h. This will simplify the
    DEBUG_LL UART configuration for boards that may not have UART1, or
    have an external UART as it requires only one mapping for DEBUG_LL.

    The patch has a few limitations. Basically now we're assuming that
    the kernel uncompress code won't overlap with OMAP_UART_INFO. We also
    assume the printascii is called at least once before paging_init in
    order for addruart to have a chance to read the UART setup from
    OMAP_UART_INFO.

    As suggested by Cyril Chemparathy ,
    Vikram Pandita and
    Kevin Hilman . Based on an earlier
    patch posted for Davinci by Cyril Chemparathy .

    Signed-off-by: Tony Lindgren

    Tony Lindgren
     
  • Otherwise we'll get an error about get_irqnr_and_base being defined
    twice. Add an entry for omap4, and use ARCH_OMAP3 for omap3 instead of
    ARCH_OMAP3430.

    Also fix the check for omap1 to use ARCH_OMAP2PLUS to avoid having to
    add ARCH_OMAP4 separately there.

    Signed-off-by: Tony Lindgren

    Tony Lindgren
     

30 Apr, 2010

12 commits


29 Apr, 2010

20 commits

  • The pktcdvd driver uses proper locking and does not need the BKL in the
    ioctl and llseek functions of the character device, so kill both.

    Moving the compat_ioctl handling from common code into the driver itself
    fixes build problems when CONFIG_BLOCK is disabled.

    Acked-by: Randy Dunlap
    Signed-off-by: Arnd Bergmann
    Signed-off-by: Linus Torvalds

    Arnd Bergmann
     
  • Commit b3d0ab7e60d1865bb6f6a79a77aaba22f2543236 ("exofs: add bdi backing
    to mount session") has a bug in the placement of the bdi member at
    struct exofs_sb_info. The layout member must be kept last.

    Signed-off-by: Boaz Harrosh
    Acked-by: Jens Axboe
    Signed-off-by: Linus Torvalds

    Boaz Harrosh
     
  • …git/x86/linux-2.6-tip

    * 'x86-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/x86/linux-2.6-tip:
    x86: Disable large pages on CPUs with Atom erratum AAE44
    x86-64: Clear a 64-bit FS/GS base on fork if selector is nonzero
    x86, mrst: Conditionally register cpu hotplug notifier for apbt

    Linus Torvalds
     
  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci-2.6:
    x86/PCI: compute Address Space length rather than using _LEN
    x86/PCI: never allocate PCI MMIO resources below BIOS_END

    Linus Torvalds
     
  • If dentry found stale happens to be a root of disconnected tree, we
    can't d_drop() it; its d_hash is actually part of s_anon and d_drop()
    would simply hide it from shrink_dcache_for_umount(), leading to
    all sorts of fun, including busy inodes on umount and oopsen after
    that.

    Bug had been there since at least 2006 (commit c636eb already has it),
    so it's definitely -stable fodder.

    Signed-off-by: Al Viro
    Cc: stable@kernel.org
    Signed-off-by: Linus Torvalds

    Al Viro
     
  • The switch to using GPIOLIB broke the sd/mmc card detection on the
    RealView development boards if GPIO_PL061 was not selected.
    This patch selects GPIO_PL061 if GPIOLIB is selected.
    The sense of the return value from mmc_status has also changed
    and is corrected.

    Signed-off-by: Colin Tuckley
    Acked-by: Catalin Marinas
    Signed-off-by: Russell King

    Colin Tuckley
     
  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/lrg/voltage-2.6:
    regulator: fix enabling regulator issue on max8925

    Linus Torvalds
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6: (27 commits)
    sfc: Change falcon_probe_board() to fail for unsupported boards
    sfc: Always close net device at the end of a disabling reset
    sfc: Wait at most 10ms for the MC to finish reading out MAC statistics
    sctp: Fix oops when sending queued ASCONF chunks
    sctp: fix to calc the INIT/INIT-ACK chunk length correctly is set
    sctp: per_cpu variables should be in bh_disabled section
    sctp: fix potential reference of a freed pointer
    sctp: avoid irq lock inversion while call sk->sk_data_ready()
    Revert "tcp: bind() fix when many ports are bound"
    net/usb: add sierra_net.c driver
    cdc_ether: fix autosuspend for mbm devices
    bluetooth: handle l2cap_create_connless_pdu() errors
    gianfar: Wait for both RX and TX to stop
    ipheth: potential null dereferences on error path
    smc91c92_cs: spin_unlock_irqrestore before calling smc_interrupt()
    drivers/usb/net/kaweth.c: add device "Allied Telesyn AT-USB10 USB Ethernet Adapter"
    bnx2: Update version to 2.0.9.
    bnx2: Prevent "scheduling while atomic" warning with cnic, bonding and vlan.
    bnx2: Fix lost MSI-X problem on 5709 NICs.
    cxgb3: Wait longer for control packets on initialization
    ...

    Linus Torvalds
     
  • The driver needs specific PHY and board support code for each SFC4000
    board; there is no point trying to continue if it is missing.
    Currently unsupported boards can trigger an 'oops'.

    Signed-off-by: Ben Hutchings
    Cc: stable@kernel.org
    Signed-off-by: David S. Miller

    Ben Hutchings
     
  • This fixes a regression introduced by commit
    eb9f6744cbfa97674c13263802259b5aa0034594 "sfc: Implement ethtool
    reset operation".

    Signed-off-by: Ben Hutchings
    Cc: stable@kernel.org
    Signed-off-by: David S. Miller

    Ben Hutchings
     
  • The original code would wait indefinitely if MAC stats DMA failed.

    Signed-off-by: Ben Hutchings
    Cc: stable@kernel.org
    Signed-off-by: David S. Miller

    Ben Hutchings
     
  • When we finish processing ASCONF_ACK chunk, we try to send
    the next queued ASCONF. This action runs the sctp state
    machine recursively and it's not prepared to do so.

    kernel BUG at kernel/timer.c:790!
    invalid opcode: 0000 [#1] SMP
    last sysfs file: /sys/module/ipv6/initstate
    Modules linked in: sha256_generic sctp libcrc32c ipv6 dm_multipath
    uinput 8139too i2c_piix4 8139cp mii i2c_core pcspkr virtio_net joydev
    floppy virtio_blk virtio_pci [last unloaded: scsi_wait_scan]

    Pid: 0, comm: swapper Not tainted 2.6.34-rc4 #15 /Bochs
    EIP: 0060:[] EFLAGS: 00010286 CPU: 0
    EIP is at add_timer+0xd/0x1b
    EAX: cecbab14 EBX: 000000f0 ECX: c0957b1c EDX: 03595cf4
    ESI: cecba800 EDI: cf276f00 EBP: c0957aa0 ESP: c0957aa0
    DS: 007b ES: 007b FS: 00d8 GS: 00e0 SS: 0068
    Process swapper (pid: 0, ti=c0956000 task=c0988ba0 task.ti=c0956000)
    Stack:
    c0957ae0 d1851214 c0ab62e4 c0ab5f26 0500ffff 00000004 00000005 00000004
    00000000 d18694fd 00000004 1666b892 cecba800 cecba800 c0957b14
    00000004
    c0957b94 d1851b11 ceda8b00 cecba800 cf276f00 00000001 c0957b14
    000000d0
    Call Trace:
    [] ? sctp_side_effects+0x607/0xdfc [sctp]
    [] ? sctp_do_sm+0x108/0x159 [sctp]
    [] ? sctp_pname+0x0/0x1d [sctp]
    [] ? sctp_primitive_ASCONF+0x36/0x3b [sctp]
    [] ? sctp_process_asconf_ack+0x2a4/0x2d3 [sctp]
    [] ? sctp_sf_do_asconf_ack+0x1dd/0x2b4 [sctp]
    [] ? sctp_do_sm+0xb8/0x159 [sctp]
    [] ? sctp_cname+0x0/0x52 [sctp]
    [] ? sctp_assoc_bh_rcv+0xac/0xe1 [sctp]
    [] ? sctp_inq_push+0x2d/0x30 [sctp]
    [] ? sctp_rcv+0x797/0x82e [sctp]

    Tested-by: Wei Yongjun
    Signed-off-by: Yuansong Qiao
    Signed-off-by: Shuaijun Zhang
    Signed-off-by: Vlad Yasevich
    Signed-off-by: David S. Miller

    Vlad Yasevich
     
  • When calculating the INIT/INIT-ACK chunk length, we should not
    only account the length of parameters, but also the parameters
    zero padding length, such as AUTH HMACS parameter and CHUNKS
    parameter. Without the parameters zero padding length we may get
    following oops.

    skb_over_panic: text:ce2068d2 len:130 put:6 head:cac3fe00 data:cac3fe00 tail:0xcac3fe82 end:0xcac3fe80 dev:
    ------------[ cut here ]------------
    kernel BUG at net/core/skbuff.c:127!
    invalid opcode: 0000 [#2] SMP
    last sysfs file: /sys/module/aes_generic/initstate
    Modules linked in: authenc ......

    Pid: 4102, comm: sctp_darn Tainted: G D 2.6.34-rc2 #6
    EIP: 0060:[] EFLAGS: 00010282 CPU: 0
    EIP is at skb_over_panic+0x37/0x3e
    EAX: 00000078 EBX: c07c024b ECX: c07c02b9 EDX: cb607b78
    ESI: 00000000 EDI: cac3fe7a EBP: 00000002 ESP: cb607b74
    DS: 007b ES: 007b FS: 00d8 GS: 0033 SS: 0068
    Process sctp_darn (pid: 4102, ti=cb607000 task=cabdc990 task.ti=cb607000)
    Stack:
    c07c02b9 ce2068d2 00000082 00000006 cac3fe00 cac3fe00 cac3fe82 cac3fe80
    c07c024b cac3fe7c cac3fe7a c0608dec ca986e80 ce2068d2 00000006 0000007a
    cb8120ca ca986e80 cb812000 00000003 cb8120c4 ce208a25 cb8120ca cadd9400
    Call Trace:
    [] ? sctp_addto_chunk+0x45/0x85 [sctp]
    [] ? skb_put+0x2e/0x32
    [] ? sctp_addto_chunk+0x45/0x85 [sctp]
    [] ? sctp_make_init+0x279/0x28c [sctp]
    [] ? apic_timer_interrupt+0x2a/0x30
    [] ? sctp_sf_do_prm_asoc+0x2b/0x7b [sctp]
    [] ? sctp_do_sm+0xa0/0x14a [sctp]
    [] ? sctp_pname+0x0/0x14 [sctp]
    [] ? sctp_primitive_ASSOCIATE+0x2b/0x31 [sctp]
    [] ? sctp_sendmsg+0x7a0/0x9eb [sctp]
    [] ? inet_sendmsg+0x3b/0x43
    [] ? task_tick_fair+0x2d/0xd9
    [] ? sock_sendmsg+0xa7/0xc1
    [] ? smp_apic_timer_interrupt+0x6b/0x75
    [] ? dequeue_task_fair+0x34/0x19b
    [] ? sched_clock_local+0x17/0x11e
    [] ? _copy_from_user+0x2b/0x10c
    [] ? verify_iovec+0x3c/0x6a
    [] ? sys_sendmsg+0x186/0x1e2
    [] ? __wake_up_common+0x34/0x5b
    [] ? __wake_up+0x2c/0x3b
    [] ? tty_wakeup+0x43/0x47
    [] ? remove_wait_queue+0x16/0x24
    [] ? n_tty_read+0x5b8/0x65e
    [] ? default_wake_function+0x0/0x8
    [] ? sys_socketcall+0x17f/0x1cd
    [] ? sysenter_do_call+0x12/0x22
    Code: 0f 45 de 53 ff b0 98 00 00 00 ff b0 94 ......
    EIP: [] skb_over_panic+0x37/0x3e SS:ESP 0068:cb607b74

    To reproduce:

    # modprobe sctp
    # echo 1 > /proc/sys/net/sctp/addip_enable
    # echo 1 > /proc/sys/net/sctp/auth_enable
    # sctp_test -H 3ffe:501:ffff:100:20c:29ff:fe4d:f37e -P 800 -l
    # sctp_darn -H 3ffe:501:ffff:100:20c:29ff:fe4d:f37e -P 900 -h 192.168.0.21 -p 800 -I -s -t
    sctp_darn ready to send...
    3ffe:501:ffff:100:20c:29ff:fe4d:f37e:900-192.168.0.21:800 Interactive mode> bindx-add=192.168.0.21
    3ffe:501:ffff:100:20c:29ff:fe4d:f37e:900-192.168.0.21:800 Interactive mode> bindx-add=192.168.1.21
    3ffe:501:ffff:100:20c:29ff:fe4d:f37e:900-192.168.0.21:800 Interactive mode> snd=10

    ------------------------------------------------------------------
    eth0 has addresses: 3ffe:501:ffff:100:20c:29ff:fe4d:f37e and 192.168.0.21
    eth1 has addresses: 192.168.1.21
    ------------------------------------------------------------------

    Reported-by: George Cheimonidis
    Signed-off-by: Wei Yongjun
    Signed-off-by: Vlad Yasevich
    Signed-off-by: David S. Miller

    Wei Yongjun
     
  • Since the change of the atomics to percpu variables, we now
    have to disable BH in process context when touching percpu variables.

    Signed-off-by: Vlad Yasevich
    Signed-off-by: David S. Miller

    Vlad Yasevich
     
  • When sctp attempts to update an assocition, it removes any
    addresses that were not in the updated INITs. However, the loop
    may attempt to refrence a transport with address after removing it.

    Signed-off-by: Vlad Yasevich
    Signed-off-by: David S. Miller

    Vlad Yasevich
     
  • sk->sk_data_ready() of sctp socket can be called from both BH and non-BH
    contexts, but the default sk->sk_data_ready(), sock_def_readable(), can
    not be used in this case. Therefore, we have to make a new function
    sctp_data_ready() to grab sk->sk_data_ready() with BH disabling.

    =========================================================
    [ INFO: possible irq lock inversion dependency detected ]
    2.6.33-rc6 #129
    ---------------------------------------------------------
    sctp_darn/1517 just changed the state of lock:
    (clock-AF_INET){++.?..}, at: [] sock_def_readable+0x20/0x80
    but this lock took another, SOFTIRQ-unsafe lock in the past:
    (slock-AF_INET){+.-...}

    and interrupts could create inverse lock ordering between them.

    other info that might help us debug this:
    1 lock held by sctp_darn/1517:
    #0: (sk_lock-AF_INET){+.+.+.}, at: [] sctp_sendmsg+0x23d/0xc00 [sctp]

    Signed-off-by: Wei Yongjun
    Signed-off-by: Vlad Yasevich
    Signed-off-by: David S. Miller

    Wei Yongjun
     
  • This reverts two commits:

    fda48a0d7a8412cedacda46a9c0bf8ef9cd13559
    tcp: bind() fix when many ports are bound

    and a follow-on fix for it:

    6443bb1fc2050ca2b6585a3fa77f7833b55329ed
    ipv6: Fix inet6_csk_bind_conflict()

    It causes problems with binding listening sockets when time-wait
    sockets from a previous instance still are alive.

    It's too late to keep fiddling with this so late in the -rc
    series, and we'll deal with it in net-next-2.6 instead.

    Signed-off-by: David S. Miller

    David S. Miller
     
  • With CONFIG_NFS_V4 and data version 4, nfs_get_sb will allocate memory for
    export_path in nfs4_validate_text_mount_data, so we need to free it then.
    This is addressed in following kmemleak report:

    unreferenced object 0xffff88016bf48a50 (size 16):
    comm "mount.nfs", pid 22567, jiffies 4651574704 (age 175471.200s)
    hex dump (first 16 bytes):
    2f 6f 70 74 2f 77 6f 72 6b 00 6b 6b 6b 6b 6b a5 /opt/work.kkkkk.
    backtrace:
    [] kmemleak_alloc+0x60/0xa7
    [] kmemleak_alloc_recursive.clone.5+0x1b/0x1d
    [] __kmalloc_track_caller+0x18f/0x1b7
    [] kstrndup+0x37/0x54
    [] nfs_parse_devname+0x152/0x204 [nfs]
    [] nfs4_validate_text_mount_data+0xd0/0xdc [nfs]
    [] nfs_get_sb+0x325/0x736 [nfs]
    [] vfs_kern_mount+0xbd/0x17c
    [] do_kern_mount+0x4d/0xed
    [] do_mount+0x787/0x7fe
    [] sys_mount+0x88/0xc2
    [] system_call_fastpath+0x16/0x1b

    Signed-off-by: Xiaotian Feng
    Cc: Trond Myklebust
    Cc: Chuck Lever
    Cc: Benny Halevy
    Cc: Al Viro
    Cc: Andy Adamson
    Signed-off-by: Trond Myklebust

    Xiaotian Feng
     
  • The original code passed an ERR_PTR() to rpc_put_task() and instead of
    returning zero on success it returned -ENOMEM.

    Signed-off-by: Dan Carpenter
    Signed-off-by: Trond Myklebust

    Dan Carpenter
     
  • ACPI _CRS Address Space Descriptors have _MIN, _MAX, and _LEN. Linux has
    been computing Address Spaces as [_MIN to _MIN + _LEN - 1]. Based on the
    tests in the bug reports below, Windows apparently uses [_MIN to _MAX].

    Per spec (ACPI 4.0, Table 6-40), for _CRS fixed-size, fixed location
    descriptors, "_LEN must be (_MAX - _MIN + 1)", and when that's true, it
    doesn't matter which way we compute the end. But of course, there are
    BIOSes that don't follow this rule, and we're better off if Linux handles
    those exceptions the same way as Windows.

    This patch makes Linux use [_MIN to _MAX], as Windows seems to do. This
    effectively reverts d558b483d5 and 03db42adfe and replaces them with
    simpler code.

    https://bugzilla.kernel.org/show_bug.cgi?id=14337 (round)
    https://bugzilla.kernel.org/show_bug.cgi?id=15480 (truncate)

    Signed-off-by: Bjorn Helgaas
    Signed-off-by: Jesse Barnes

    Bjorn Helgaas
     

28 Apr, 2010

2 commits

  • * 'urgent' of git://git.kernel.org/pub/scm/linux/kernel/git/brodo/pcmcia-2.6:
    pcmcia: fix matching rules for pseudo-multi-function cards
    pcmcia: pcmcia_dev_present bugfix

    Linus Torvalds
     
  • * 'for-linus' of git://git.kernel.dk/linux-2.6-block:
    coda: move backing-dev.h kernel include inside __KERNEL__
    mtd: ensure that bdi entries are properly initialized and registered
    Move mtd_bdi_*mappable to mtdcore.c
    btrfs: convert to using bdi_setup_and_register()
    Catch filesystems lacking s_bdi
    drbd: Terminate a connection early if sending the protocol fails
    drbd: fix memory leak
    Fix JFFS2 sync silent failure
    smbfs: add bdi backing to mount session
    ncpfs: add bdi backing to mount session
    exofs: add bdi backing to mount session
    ecryptfs: add bdi backing to mount session
    coda: add bdi backing to mount session
    cifs: add bdi backing to mount session
    afs: add bdi backing to mount session.
    9p: add bdi backing to mount session
    bdi: add helper function for doing init and register of a bdi for a file system
    block: ensure jiffies wrap is handled correctly in blk_rq_timed_out_timer

    Linus Torvalds