30 Jun, 2009

2 commits

  • FYI, there's a post-rc1 build regression with certain configs:

    drivers/built-in.o: In function `pci_hp_deregister':
    (.text+0xb166): undefined reference to `pci_hp_remove_module_link'
    drivers/built-in.o: In function `pci_hp_deregister':
    (.text+0xb19f): undefined reference to `pci_destroy_slot'
    drivers/built-in.o: In function `__pci_hp_register':
    (.text+0xb583): undefined reference to `pci_create_slot'
    drivers/built-in.o: In function `__pci_hp_register':
    (.text+0xb5b1): undefined reference to `pci_hp_create_module_link'
    make: *** [.tmp_vmlinux1] Error 1

    Caused by:

    | 2b121bc262fa03c94e653b2d44356c2f86c1bcdc is first bad commit
    | commit 2b121bc262fa03c94e653b2d44356c2f86c1bcdc
    | Date: Thu Jun 25 13:25:36 2009 +0200
    |
    | eeepc-laptop: Register as a pci-hotplug device

    which changed the driver to use the PCI hotplug infrastructure, but
    didn't do a good job on the Kconfig rules.

    Signed-off-by: Ingo Molnar
    Acked-by: Randy Dunlap
    Acked-by: Len Brown
    Signed-off-by: Linus Torvalds

    Ingo Molnar
     
  • Currently we reinit the ldisc on final tty close which is what the old code
    did to ensure that if the device retained its termios settings then it had the
    right ldisc. tty_ldisc_reinit does that but also leaves us with the reset
    ldisc reference which is then leaked.

    At this point we know the port will be recycled so we can kill the ldisc
    off completely rather than try and add another ldisc free up when the kref
    count hits zero.

    At this point it is safe to keep the ldisc closed as tty_ldisc waiting
    methods are only used from the user side, and as the final close we are
    the last such reference. Interrupt/driver side methods will always use the
    non wait version and get back a NULL.

    Found with kmemleak and investigated/identified by Catalin Marinas.

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

    Alan Cox
     

29 Jun, 2009

9 commits

  • * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6:
    be2net: Fix to avoid a crash seen on PPC with LRO and Jumbo frames.
    gro: Flush GRO packets in napi_disable_pending path
    inet: Call skb_orphan before tproxy activates
    mac80211: Use rcu_barrier() on unload.
    sunrpc: Use rcu_barrier() on unload.
    bridge: Use rcu_barrier() instead of syncronize_net() on unload.
    ipv6: Use rcu_barrier() on module unload.
    decnet: Use rcu_barrier() on module unload.
    sky2: Fix checksum endianness
    mdio add missing GPL flag
    sh_eth: remove redundant test on unsigned
    fsl_pq_mdio: Fix fsl_pq_mdio to work with modules
    ipv6: avoid wraparound for expired preferred lifetime
    tcp: missing check ACK flag of received segment in FIN-WAIT-2 state
    atl1*: add device_set_wakeup_enable to atl1*_set_wol
    Phonet: generate Netlink RTM_DELADDR when destroying a device
    Phonet: publicize the Netlink notification function
    Revert "veth: prevent oops caused by netdev destructor"
    cpmac: fix compilation failure introduced with netdev_ops conversion
    ipsec: Fix name of CAST algorithm

    Linus Torvalds
     
  • While testing the driver on PPC, we ran into a crash with LRO, Jumbo frames.
    With CONFIG_PPC_64K_PAGES configured (a default in PPC), MAX_SKB_FRAGS drops to 3 and we were crossing the array limits on skb_shinfo(skb)->frags[].
    Now we coalesce the frags from the same physical page into one slot in
    skb_shinfo(skb)->frags[] and go to the next index when the frag is from

    different physical page.

    This patch is against the net-2.6 tree.

    Signed-off-by: Ajit Khaparde
    Signed-off-by: David S. Miller

    Ajit Khaparde
     
  • * 'kvm-updates/2.6.31' of git://git.kernel.org/pub/scm/virt/kvm/kvm:
    KVM: shut up uninit compiler warning in paging_tmpl.h
    KVM: Ignore reads to K7 EVNTSEL MSRs
    KVM: VMX: Handle vmx instruction vmexits
    KVM: s390: Allow stfle instruction in the guest
    KVM: kvm/x86_emulate.c toggle_interruptibility() should be static
    KVM: ia64: fix ia64 build due to missing kallsyms_lookup() and double export
    KVM: protect concurrent make_all_cpus_request
    KVM: MMU: Allow 4K ptes with bit 7 (PAT) set
    KVM: Fix dirty bit tracking for slots with large pages

    Linus Torvalds
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/sfrench/cifs-2.6:
    cifs: fix fh_mutex locking in cifs_reopen_file

    Linus Torvalds
     
  • * git://git.infradead.org/iommu-2.6:
    intel-iommu: fix Identity Mapping to be arch independent

    Linus Torvalds
     
  • …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, delay: tsc based udelay should have rdtsc_barrier
    x86, setup: correct include file in <asm/boot.h>
    x86, setup: Fix typo "CONFIG_x86_64" in <asm/boot.h>
    x86, mce: percpu mcheck_timer should be pinned
    x86: Add sysctl to allow panic on IOCK NMI error
    x86: Fix uv bau sending buffer initialization
    x86, mce: Fix mce resume on 32bit
    x86: Move init_gbpages() to setup_arch()
    x86: ensure percpu lpage doesn't consume too much vmalloc space
    x86: implement percpu_alloc kernel parameter
    x86: fix pageattr handling for lpage percpu allocator and re-enable it
    x86: reorganize cpa_process_alias()
    x86: prepare setup_pcpu_lpage() for pageattr fix
    x86: rename remap percpu first chunk allocator to lpage
    x86: fix duplicate free in setup_pcpu_remap() failure path
    percpu: fix too lazy vunmap cache flushing
    x86: Set cpu_llc_id on AMD CPUs

    Linus Torvalds
     
  • …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:
    timer stats: Optimize by adding quick check to avoid function calls
    timers: Fix timer_migration interface which accepts any number as input

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

    * 'tracing-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
    ftrace: Fix the output of profile
    ring-buffer: Make it generally available
    ftrace: Remove duplicate newline
    tracing: Fix trace_buf_size boot option
    ftrace: Fix t_hash_start()
    ftrace: Don't manipulate @pos in t_start()
    ftrace: Don't increment @pos in g_start()
    tracing: Reset iterator in t_start()
    trace_stat: Don't increment @pos in seq start()
    tracing_bprintk: Don't increment @pos in t_start()
    tracing/events: Don't increment @pos in s_start()

    Linus Torvalds
     
  • * 'for-linus' of git://git.o-hand.com/linux-rpurdie-leds:
    leds: Futher document blink_set
    leds: Add options to have GPIO LEDs start on or keep their state
    leds: LED driver for National Semiconductor LP3944 Funlight Chip
    leds: pca9532 - Indent using tabs, not spaces.
    leds: Remove an orphan Kconfig entry
    leds: Further document parameters for blink_set()
    leds: alix-leds2 fixed for Award BIOS
    leds: leds-gpio - fix a section mismatch
    leds: add the sysfs interface into the leds-bd2802 driver for changing wave pattern and led current.
    leds: change the license information
    leds: fix led-bd2802 errors while resuming

    Linus Torvalds
     

28 Jun, 2009

10 commits

  • Dixes compilation warning:
    CC arch/x86/kernel/io_delay.o
    arch/x86/kvm/paging_tmpl.h: In function ‘paging64_fetch’:
    arch/x86/kvm/paging_tmpl.h:279: warning: ‘sptep’ may be used uninitialized in this function
    arch/x86/kvm/paging_tmpl.h: In function ‘paging32_fetch’:
    arch/x86/kvm/paging_tmpl.h:279: warning: ‘sptep’ may be used uninitialized in this function

    warning is bogus (always have a least one level), but need to shut the compiler
    up.

    Signed-off-by: Jaswinder Singh Rajput
    Signed-off-by: Avi Kivity

    Jaswinder Singh Rajput
     
  • In commit 7fe29e0faacb650d31b9e9f538203a157bec821d we ignored the
    reads to the P6 EVNTSEL MSRs. That fixed crashes on Intel machines.

    Ignore the reads to K7 EVNTSEL MSRs as well to fix this on AMD
    hosts.

    This fixes Kaspersky antivirus crashing Windows guests on AMD hosts.

    Signed-off-by: Amit Shah
    Signed-off-by: Avi Kivity

    Amit Shah
     
  • IF a guest tries to use vmx instructions, inject a #UD to let it know the
    instruction is not implemented, rather than crashing.

    This prevents guest userspace from crashing the guest kernel.

    Cc: stable@kernel.org
    Signed-off-by: Avi Kivity

    Avi Kivity
     
  • 2.6.31-rc introduced an architecture level set checker based on facility
    bits. e.g. if the kernel is compiled to run only on z9, several facility
    bits are checked very early and the kernel refuses to boot if a z9 specific
    facility is missing.
    Until now kvm on s390 did not implement the store facility extended (STFLE)
    instruction. A 2.6.31-rc kernel that was compiled for z9 or higher did not
    boot in kvm. This patch implements stfle.

    This patch should go in before 2.6.31.

    Signed-off-by: Christian Borntraeger
    Signed-off-by: Avi Kivity

    Christian Borntraeger
     
  • toggle_interruptibility() is used only by same file, it should be static.

    Fixed following sparse warning :

    arch/x86/kvm/x86_emulate.c:1364:6: warning: symbol 'toggle_interruptibility' was not declared. Should it be static?

    Signed-off-by: Jaswinder Singh Rajput
    Signed-off-by: Avi Kivity

    Jaswinder Singh Rajput
     
  • Fix problem with double export of certain symbols from vsprintf.c
    which we do not wish to export from the kvm-intel.ko module.

    In addition, we do not have access to kallsyms_lookup() from the
    module, so make sure to #undef CONFIG_KALLSYMS

    Signed-off-by: Jes Sorensen
    Acked-by: Xiantao Zhang
    Signed-off-by: Avi Kivity

    Jes Sorensen
     
  • make_all_cpus_request contains a race condition which can
    trigger false request completed status, as follows:

    CPU0 CPU1

    if (test_and_set_bit(req,&vcpu->requests))
    .... if (test_and_set_bit(req,&vcpu->requests))
    .. return
    proceed to smp_call_function_many(wait=1)

    Use a spinlock to serialize concurrent CPUs.

    Cc: stable@kernel.org
    Signed-off-by: Andrea Arcangeli
    Signed-off-by: Marcelo Tosatti
    Signed-off-by: Avi Kivity

    Marcelo Tosatti
     
  • Bit 7 is perfectly legal in the 4K page leve; it is used for the PAT.

    Signed-off-by: Avi Kivity

    Avi Kivity
     
  • When slot is already allocated and being asked to be tracked we need
    to break the large pages.

    This code flush the mmu when someone ask a slot to start dirty bit
    tracking.

    Cc: stable@kernel.org
    Signed-off-by: Izik Eidus
    Signed-off-by: Avi Kivity

    Izik Eidus
     
  • Fixes a regression caused by commit a6ce4932fbdbcd8f8e8c6df76812014351c32892

    When this lock was converted to a mutex, the locks were turned into
    unlocks and vice-versa.

    Signed-off-by: Jeff Layton
    Acked-by: Shirish Pargaonkar
    Cc: Stable Tree
    Signed-off-by: Steve French

    Jeff Layton
     

27 Jun, 2009

12 commits

  • When NAPI is disabled while we're in net_rx_action, we end up
    calling __napi_complete without flushing GRO packets. This is
    a bug as it would cause the GRO packets to linger, of course it
    also literally BUGs to catch error like this :)

    This patch changes it to napi_complete, with the obligatory IRQ
    reenabling. This should be safe because we've only just disabled
    IRQs and it does not materially affect the test conditions in
    between.

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

    Herbert Xu
     
  • As transparent proxying looks up the socket early and assigns
    it to the skb for later processing, we must drop any existing
    socket ownership prior to that in order to distinguish between
    the case where tproxy is active and where it is not.

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

    Herbert Xu
     
  • The mac80211 module uses rcu_call() thus it should use rcu_barrier()
    on module unload.

    The rcu_barrier() is placed in mech.c ieee80211_stop_mesh() which is
    invoked from ieee80211_stop() in case vif.type == NL80211_IFTYPE_MESH_POINT.

    Acked-by: Paul E. McKenney
    Acked-by: Johannes Berg
    Signed-off-by: Jesper Dangaard Brouer
    Signed-off-by: David S. Miller

    Jesper Dangaard Brouer
     
  • The sunrpc module uses rcu_call() thus it should use rcu_barrier() on
    module unload.

    Have not verified that the possibility for new call_rcu() callbacks
    has been disabled. As a hint for checking, the functions calling
    call_rcu() (unx_destroy_cred and generic_destroy_cred) are
    registered as crdestroy function pointer in struct rpc_credops.

    Acked-by: Paul E. McKenney
    Acked-by: Trond Myklebust
    Signed-off-by: Jesper Dangaard Brouer
    Signed-off-by: David S. Miller

    Jesper Dangaard Brouer
     
  • When unloading modules that uses call_rcu() callbacks, then we must
    use rcu_barrier(). This module uses syncronize_net() which is not
    enough to be sure that all callback has been completed.

    Acked-by: Paul E. McKenney
    Signed-off-by: Jesper Dangaard Brouer
    Signed-off-by: David S. Miller

    Jesper Dangaard Brouer
     
  • The ipv6 module uses rcu_call() thus it should use rcu_barrier() on
    module unload.

    Acked-by: Paul E. McKenney
    Signed-off-by: Jesper Dangaard Brouer
    Signed-off-by: David S. Miller

    Jesper Dangaard Brouer
     
  • The decnet module unloading as been disabled with a '#if 0' statement,
    because it have had issues.

    We add a rcu_barrier() anyhow for correctness.

    The maintainer (Chrissie Caulfield) will look into the unload issue
    when time permits.

    Acked-by: Paul E. McKenney
    Acked-by: Chrissie Caulfield
    Signed-off-by: Jesper Dangaard Brouer
    Signed-off-by: David S. Miller

    Jesper Dangaard Brouer
     
  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/bp/bp:
    amd64_edac: misc small cleanups
    amd64_edac: fix ecc_enable_override handling
    amd64_edac: check only ECC bit in amd64_determine_edac_cap

    Linus Torvalds
     
  • * 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc: (29 commits)
    powerpc/rtas: Fix watchdog driver temperature read functionality
    powerpc/mm: Fix potential access to freed pages when using hugetlbfs
    powerpc/440: Fix warning early debug code
    powerpc/of: Fix usage of dev_set_name() in of_device_alloc()
    powerpc/pasemi: Use raw spinlock in SMP TB sync
    powerpc: Use one common impl. of RTAS timebase sync and use raw spinlock
    powerpc/rtas: Turn rtas lock into a raw spinlock
    powerpc: Add irqtrace support for 32-bit powerpc
    powerpc/BSR: Fix BSR to allow mmap of small BSR on 64k kernel
    powerpc/BSR: add 4096 byte BSR size
    powerpc: Map more memory early on 601 processors
    powerpc/pmac: Fix DMA ops for MacIO devices
    powerpc/mm: Make k(un)map_atomic out of line
    powerpc: Fix mpic alloc warning
    powerpc: Fix output from show_regs
    powerpc/pmac: Fix issues with PowerMac "PowerSurge" SMP
    powerpc/amigaone: Limit ISA I/O range to 4k in the device tree
    powerpc/warp: Platform fix for i2c change
    powerpc: Have git ignore generated files from dtc compile
    powerpc/mpic: Fix mapping of "DCR" based MPIC variants
    ...

    Linus Torvalds
     
  • * 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6:
    ACPI: video: prevent NULL deref in acpi_get_pci_dev()
    eeepc-laptop: add rfkill support for the 3G modem in Eee PC 901 Go
    eeepc-laptop: get the right value for CMSG
    eeepc-laptop: makes get_acpi() returns -ENODEV
    eeepc-laptop: right parent device
    eeepc-laptop: rfkill refactoring
    eeepc-laptop.c: use pr_fmt and pr_
    eeepc-laptop: Register as a pci-hotplug device

    Linus Torvalds
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/sfrench/cifs-2.6:
    [CIFS] remove unknown mount option warning message
    [CIFS] remove bkl usage from umount begin
    cifs: Fix incorrect return code being printed in cFYI messages
    [CIFS] cleanup asn handling for ntlmssp
    [CIFS] Copy struct *after* setting the port, instead of before.
    cifs: remove rw/ro options
    cifs: fix problems with earlier patches
    cifs: have cifs parse scope_id out of IPv6 addresses and use it
    [CIFS] Do not send tree disconnect if session is already disconnected
    [CIFS] Fix build break
    cifs: display scopeid in /proc/mounts
    cifs: add new routine for converting AF_INET and AF_INET6 addrs
    cifs: have cifs_show_options show forceuid/forcegid options
    cifs: remove unneeded NULL checks from cifs_show_options

    Linus Torvalds
     
  • sky2 driver on PowerPC targets floods kernel log with following errors:

    eth1: hw csum failure.
    Call Trace:
    [ef84b8a0] [c00075e4] show_stack+0x50/0x160 (unreliable)
    [ef84b8d0] [c02fa178] netdev_rx_csum_fault+0x3c/0x5c
    [ef84b8f0] [c02f6920] __skb_checksum_complete_head+0x7c/0x84
    [ef84b900] [c02f693c] __skb_checksum_complete+0x14/0x24
    [ef84b910] [c0337e08] tcp_v4_rcv+0x4c8/0x6f8
    [ef84b940] [c031a9c8] ip_local_deliver+0x98/0x210
    [ef84b960] [c031a788] ip_rcv+0x38c/0x534
    [ef84b990] [c0300338] netif_receive_skb+0x260/0x36c
    [ef84b9c0] [c025de00] sky2_poll+0x5dc/0xcf8
    [ef84ba20] [c02fb7fc] net_rx_action+0xc0/0x144

    The NIC is Yukon-2 EC chip revision 1.

    Converting checksum field from le16 to CPU byte order fixes the issue.

    Signed-off-by: Anton Vorontsov
    Signed-off-by: David S. Miller

    Anton Vorontsov
     

26 Jun, 2009

7 commits