16 Jan, 2012

1 commit

  • omap3isp depends on CONFIG_IOMMU_API, so avoid registering its
    device (and defining its configuration structs) on !CONFIG_IOMMU_API.

    This is generally nice to have, but more importantly, it fixes:

    arch/arm/plat-omap/include/plat/iommu.h: In function 'dev_to_omap_iommu':
    arch/arm/plat-omap/include/plat/iommu.h:135: error: 'struct
    dev_archdata' has no member named 'iommu'
    arch/arm/mach-omap2/devices.c: In function 'omap3_init_camera':
    arch/arm/mach-omap2/devices.c:222: error: 'struct dev_archdata' has no
    member named 'iommu'
    make[1]: *** [arch/arm/mach-omap2/devices.o] Error 1
    make: *** [arch/arm/mach-omap2] Error 2

    Which happens because while setting up the omap3isp device we try
    to access the (now nonexistent) iommu member of dev_archdata.

    Compile tested with omap2plus_defconfig on today's:

    commit e343a895a9f342f239c5e3c5ffc6c0b1707e6244
    Merge: 06792c4 193a667
    Author: Linus Torvalds
    Date: Tue Jan 10 18:04:27 2012 -0800

    Merge tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost

    Reported-by: Govindraj Raja
    Reported-by: Arik Nemtsov
    Signed-off-by: Ohad Ben-Cohen
    Cc: Tony Lindgren
    Cc: Joerg Roedel
    Cc: Laurent Pinchart
    Acked-by: Laurent Pinchart
    Acked-by: Tony Lindgren
    Signed-off-by: Joerg Roedel

    Ohad Ben-Cohen
     

09 Jan, 2012

2 commits


05 Jan, 2012

7 commits

  • Linus Torvalds
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net:
    fix CAN MAINTAINERS SCM tree type
    mwifiex: fix crash during simultaneous scan and connect
    b43: fix regression in PIO case
    ath9k: Fix kernel panic in AR2427 in AP mode
    CAN MAINTAINERS update
    net: fsl: fec: fix build for mx23-only kernel
    sch_qfq: fix overflow in qfq_update_start()
    Revert "Bluetooth: Increase HCI reset timeout in hci_dev_do_close"

    Linus Torvalds
     
  • bitmap size sanity checks should be done *before* allocating ->s_root;
    there their cleanup on failure would be correct. As it is, we do iput()
    on root inode, but leak the root dentry...

    Signed-off-by: Al Viro
    Acked-by: Josh Boyer
    Signed-off-by: Linus Torvalds

    Al Viro
     
  • This is the temporary simple fix for 3.2, we need more changes in this
    area.

    1. do_signal_stop() assumes that the running untraced thread in the
    stopped thread group is not possible. This was our goal but it is
    not yet achieved: a stopped-but-resumed tracee can clone the running
    thread which can initiate another group-stop.

    Remove WARN_ON_ONCE(!current->ptrace).

    2. A new thread always starts with ->jobctl = 0. If it is auto-attached
    and this group is stopped, __ptrace_unlink() sets JOBCTL_STOP_PENDING
    but JOBCTL_STOP_SIGMASK part is zero, this triggers WANR_ON(!signr)
    in do_jobctl_trap() if another debugger attaches.

    Change __ptrace_unlink() to set the artificial SIGSTOP for report.

    Alternatively we could change ptrace_init_task() to copy signr from
    current, but this means we can copy it for no reason and hide the
    possible similar problems.

    Acked-by: Tejun Heo
    Cc: [3.1]
    Signed-off-by: Oleg Nesterov
    Signed-off-by: Linus Torvalds

    Oleg Nesterov
     
  • Test-case:

    int main(void)
    {
    int pid, status;

    pid = fork();
    if (!pid) {
    for (;;) {
    if (!fork())
    return 0;
    if (waitpid(-1, &status, 0) < 0) {
    printf("ERR!! wait: %m\n");
    return 0;
    }
    }
    }

    assert(ptrace(PTRACE_ATTACH, pid, 0,0) == 0);
    assert(waitpid(-1, NULL, 0) == pid);

    assert(ptrace(PTRACE_SETOPTIONS, pid, 0,
    PTRACE_O_TRACEFORK) == 0);

    do {
    ptrace(PTRACE_CONT, pid, 0, 0);
    pid = waitpid(-1, NULL, 0);
    } while (pid > 0);

    return 1;
    }

    It fails because ->real_parent sees its child in EXIT_DEAD state
    while the tracer is going to change the state back to EXIT_ZOMBIE
    in wait_task_zombie().

    The offending commit is 823b018e which moved the EXIT_DEAD check,
    but in fact we should not blame it. The original code was not
    correct as well because it didn't take ptrace_reparented() into
    account and because we can't really trust ->ptrace.

    This patch adds the additional check to close this particular
    race but it doesn't solve the whole problem. We simply can't
    rely on ->ptrace in this case, it can be cleared if the tracer
    is multithreaded by the exiting ->parent.

    I think we should kill EXIT_DEAD altogether, we should always
    remove the soon-to-be-reaped child from ->children or at least
    we should never do the DEAD->ZOMBIE transition. But this is too
    complex for 3.2.

    Reported-and-tested-by: Denys Vlasenko
    Tested-by: Lukasz Michalik
    Acked-by: Tejun Heo
    Cc: [3.0+]
    Signed-off-by: Oleg Nesterov
    Signed-off-by: Linus Torvalds

    Oleg Nesterov
     
  • * git://git.samba.org/sfrench/cifs-2.6:
    [CIFS] default ntlmv2 for cifs mount delayed to 3.3
    cifs: fix bad buffer length check in coalesce_t2

    Linus Torvalds
     
  • …wireless into for-davem

    John W. Linville
     

04 Jan, 2012

14 commits

  • This reverts commit 93b2ec0128c431148b216b8f7337c1a52131ef03.

    The call to "schedule_work()" in rtc_initialize_alarm() happens too
    early, and can cause oopses at bootup

    Neil Brown explains why we do it:

    "If you set an alarm in the future, then shutdown and boot again after
    that time, then you will end up with a timer_queue node which is in
    the past.

    When this happens the queue gets stuck. That entry-in-the-past won't
    get removed until and interrupt happens and an interrupt won't happen
    because the RTC only triggers an interrupt when the alarm is "now".

    So you'll find that e.g. "hwclock" will always tell you that
    'select' timed out.

    So we force the interrupt work to happen at the start just in case."

    and has a patch that convert it to do things in-process rather than with
    the worker thread, but right now it's too late to play around with this,
    so we just revert the patch that caused problems for now.

    Reported-by: Sander Eikelenboom
    Requested-by: Konrad Rzeszutek Wilk
    Requested-by: John Stultz
    Cc: Neil Brown
    Signed-off-by: Linus Torvalds

    Linus Torvalds
     
  • Turned out the ntlmv2 (default security authentication)
    upgrade was harder to test than expected, and we ran
    out of time to test against Apple and a few other servers
    that we wanted to. Delay upgrade of default security
    from ntlm to ntlmv2 (on mount) to 3.3. Still works
    fine to specify it explicitly via "sec=ntlmv2" so this
    should be fine.

    Acked-by: Jeff Layton
    Signed-off-by: Steve French

    Steve French
     
  • The current check looks to see if the RFC1002 length is larger than
    CIFSMaxBufSize, and fails if it is. The buffer is actually larger than
    that by MAX_CIFS_HDR_SIZE.

    This bug has been around for a long time, but the fact that we used to
    cap the clients MaxBufferSize at the same level as the server tended
    to paper over it. Commit c974befa changed that however and caused this
    bug to bite in more cases.

    Reported-and-Tested-by: Konstantinos Skarlatos
    Tested-by: Shirish Pargaonkar
    Signed-off-by: Jeff Layton
    Signed-off-by: Steve French

    Jeff Layton
     
  • This reverts commit c0afabd3d553c521e003779c127143ffde55a16f.

    It causes failures on Toshiba laptops - instead of disabling the alarm,
    it actually seems to enable it on the affected laptops, resulting in
    (for example) the laptop powering on automatically five minutes after
    shutdown.

    There's a patch for it that appears to work for at least some people,
    but it's too late to play around with this, so revert for now and try
    again in the next merge window.

    See for example

    http://bugs.debian.org/652869

    Reported-and-bisected-by: Andreas Friedrich (Toshiba Tecra)
    Reported-by: Antonio-M. Corbi Bellot (Toshiba Portege R500)
    Reported-by: Marco Santos (Toshiba Portege Z830)
    Reported-by: Christophe Vu-Brugier (Toshiba Portege R830)
    Cc: Jonathan Nieder
    Requested-by: John Stultz
    Cc: stable@kernel.org # for the versions that applied this
    Signed-off-by: Linus Torvalds

    Linus Torvalds
     
  • vfork parent uninterruptibly and unkillably waits for its child to
    exec/exit. This wait is of unbounded length. Ignore such waits
    in the hung_task detector.

    Signed-off-by: Mandeep Singh Baines
    Reported-by: Sasha Levin
    LKML-Reference:
    Cc: Linus Torvalds
    Cc: Ingo Molnar
    Cc: Peter Zijlstra
    Cc: Andrew Morton
    Cc: John Kacur
    Cc: stable@kernel.org
    Signed-off-by: Linus Torvalds

    Mandeep Singh Baines
     
  • Commit 1e39f384bb01 ("evm: fix build problems") makes the stub version
    of security_old_inode_init_security() return 0 when CONFIG_SECURITY is
    not set.

    But that makes callers such as reiserfs_security_init() assume that
    security_old_inode_init_security() has set name, value, and len
    arguments properly - but security_old_inode_init_security() left them
    uninitialized which then results in interesting failures.

    Revert security_old_inode_init_security() to the old behavior of
    returning EOPNOTSUPP since both callers (reiserfs and ocfs2) handle this
    just fine.

    [ Also fixed the S_PRIVATE(inode) case of the actual non-stub
    security_old_inode_init_security() function to return EOPNOTSUPP
    for the same reason, as pointed out by Mimi Zohar.

    It got incorrectly changed to match the new function in commit
    fb88c2b6cbb1: "evm: fix security/security_old_init_security return
    code". - Linus ]

    Reported-by: Jorge Bastos
    Acked-by: James Morris
    Acked-by: Mimi Zohar
    Signed-off-by: Jan Kara
    Signed-off-by: Linus Torvalds

    Jan Kara
     
  • As pointed out by Joe Perches the SCM tree type was missing in my patch.

    Signed-off-by: Oliver Hartkopp

    CC: Oliver Hartkopp
    CC: Urs Thuermann
    CC: Wolfgang Grandegger
    CC: Marc Kleine-Budde
    CC: linux-can@vger.kernel.org

    Oliver Hartkopp
     
  • If 'iw connect' command is fired when driver is already busy in
    serving 'iw scan' command, ssid specific scan operation for connect
    is skipped. In this case cmd wait queue handler gets called with no
    command in queue (i.e. adapter->cmd_queued = NULL).

    This patch adds a NULL check in mwifiex_wait_queue_complete()
    routine to fix crash observed during simultaneous scan and assoc
    operations.

    Signed-off-by: Amitkumar Karwar
    Signed-off-by: Bing Zhao
    Signed-off-by: John W. Linville

    Amitkumar Karwar
     
  • This patch fixes the regression, introduced by

    commit 17030f48e31adde5b043741c91ba143f5f7db0fd
    From: Rafał Miłecki
    Date: Thu, 11 Aug 2011 17:16:27 +0200
    Subject: [PATCH] b43: support new RX header, noticed to be used in 598.314+ fw

    in PIO case.

    Signed-off-by: Guennadi Liakhovetski
    Signed-off-by: John W. Linville

    Guennadi Liakhovetski
     
  • don't do aggregation related stuff for 'AP mode client power save
    handling' if aggregation is not enabled in the driver, otherwise it
    will lead to panic because those data structures won't be never
    intialized in 'ath_tx_node_init' if aggregation is disabled

    EIP is at ath_tx_aggr_wakeup+0x37/0x80 [ath9k]
    EAX: e8c09a20 EBX: f2a304e8 ECX: 00000001 EDX: 00000000
    ESI: e8c085e0 EDI: f2a304ac EBP: f40e1ca4 ESP: f40e1c8c
    DS: 007b ES: 007b FS: 00d8 GS: 00e0 SS: 0068
    Process swapper/1 (pid: 0, ti=f40e0000 task=f408e860
    task.ti=f40dc000)
    Stack:
    0001e966 e8c09a20 00000000 f2a304ac e8c085e0 f2a304ac
    f40e1cb0 f8186741
    f8186700 f40e1d2c f922988d f2a304ac 00000202 00000001
    c0b4ba43 00000000
    0000000f e8eb75c0 e8c085e0 205b0001 34383220 f2a304ac
    f2a30000 00010020
    Call Trace:
    [] ath9k_sta_notify+0x41/0x50 [ath9k]
    [] ? ath9k_get_survey+0x110/0x110 [ath9k]
    [] ieee80211_sta_ps_deliver_wakeup+0x9d/0x350
    [mac80211]
    [] ? __module_address+0x95/0xb0
    [] ap_sta_ps_end+0x63/0xa0 [mac80211]
    [] ieee80211_rx_h_sta_process+0x156/0x2b0
    [mac80211]
    [] ieee80211_rx_handlers+0xce/0x510 [mac80211]
    [] ? trace_hardirqs_on+0xb/0x10
    [] ? skb_queue_tail+0x3e/0x50
    [] ieee80211_prepare_and_rx_handle+0x111/0x750
    [mac80211]
    [] ieee80211_rx+0x349/0xb20 [mac80211]
    [] ? ieee80211_rx+0x99/0xb20 [mac80211]
    [] ath_rx_tasklet+0x818/0x1d00 [ath9k]
    [] ? ath9k_tasklet+0x35/0x1c0 [ath9k]
    [] ? ath9k_tasklet+0x35/0x1c0 [ath9k]
    [] ath9k_tasklet+0xf3/0x1c0 [ath9k]
    [] tasklet_action+0xbe/0x180

    Cc: stable@kernel.org
    Cc: Senthil Balasubramanian
    Cc: Rajkumar Manoharan
    Reported-by: Ashwin Mendonca
    Tested-by: Ashwin Mendonca
    Signed-off-by: Mohammed Shafi Shajakhan
    Signed-off-by: John W. Linville

    Mohammed Shafi Shajakhan
     
  • John W. Linville
     
  • Update the CAN MAINTAINERS section:

    - point out active maintainers
    - pull the CAN driver discussion away from netdev ML
    - point to the new CAN web site on gitorious.org
    - add CAN development git repository URL to submit patches

    Signed-off-by: Oliver Hartkopp

    CC: Oliver Hartkopp
    CC: Urs Thuermann
    CC: Wolfgang Grandegger
    CC: Marc Kleine-Budde
    CC: linux-can@vger.kernel.org
    Signed-off-by: David S. Miller

    Oliver Hartkopp
     
  • If one only selects mx23-based boards, compile fails:

    drivers/net/ethernet/freescale/fec.c:410:2: error: 'FEC_HASH_TABLE_HIGH' undeclared (first use in this function)
    drivers/net/ethernet/freescale/fec.c:411:2: error: 'FEC_HASH_TABLE_LOW' undeclared (first use in this function)

    This is because fec.h uses CONFIG_SOC_IMX28 to determine the register
    layout of the core which makes sense since the MX23 does not have a fec.
    However, Kconfig uses the broader ARCH_MXS symbol and this way even
    makes the fec-driver default for MX23. Adapt Kconfig to use the more
    precise SOC_IMX28 as well.

    Signed-off-by: Wolfram Sang
    Cc: Fabio Estevam
    Cc: Uwe Kleine-König
    Cc: Shawn Guo
    Cc: David S. Miller
    Acked-by: Fabio Estevam
    Signed-off-by: David S. Miller

    Wolfram Sang
     
  • grp->slot_shift is between 22 and 41, so using 32bit wide variables is
    probably a typo.

    This could explain QFQ hangs Dave reported to me, after 2^23 packets ?

    (23 = 64 - 41)

    Reported-by: Dave Taht
    Signed-off-by: Eric Dumazet
    CC: Stephen Hemminger
    CC: Dave Taht
    Signed-off-by: David S. Miller

    Eric Dumazet
     

03 Jan, 2012

2 commits


02 Jan, 2012

1 commit


01 Jan, 2012

3 commits

  • * 'fix/asoc' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound:
    ASoC: wm8776: add missing break in sample size switch

    Linus Torvalds
     
  • The current gspca core code has a regression where it no longer properly
    falls back to lower alt settings when there is not enough bandwidth.

    This causes many iso based usb-1 cameras to not work when plugged into a
    usb2 hub or a sandybridge chipset motherboard!

    This patch fixes this.

    Signed-off-by: Hans de Goede
    Signed-off-by: Mauro Carvalho Chehab
    Signed-off-by: Linus Torvalds

    Mauro Carvalho Chehab
     
  • It was found (by Sasha) that if you use a futex located in the gate
    area we get stuck in an uninterruptible infinite loop, much like the
    ZERO_PAGE issue.

    While looking at this problem, PeterZ realized you'll get into similar
    trouble when hitting any install_special_pages() mapping. And are there
    still drivers setting up their own special mmaps without page->mapping,
    and without special VM or pte flags to make get_user_pages fail?

    In most cases, if page->mapping is NULL, we do not need to retry at all:
    Linus points out that even /proc/sys/vm/drop_caches poses no problem,
    because it ends up using remove_mapping(), which takes care not to
    interfere when the page reference count is raised.

    But there is still one case which does need a retry: if memory pressure
    called shmem_writepage in between get_user_pages_fast dropping page
    table lock and our acquiring page lock, then the page gets switched from
    filecache to swapcache (and ->mapping set to NULL) whatever the refcount.
    Fault it back in to get the page->mapping needed for key->shared.inode.

    Reported-by: Sasha Levin
    Signed-off-by: Hugh Dickins
    Cc: stable@vger.kernel.org
    Signed-off-by: Linus Torvalds

    Hugh Dickins
     

31 Dec, 2011

10 commits