Skip to content
  1. Oct 30, 2008
  2. Oct 29, 2008
  3. Oct 28, 2008
    • Steven Rostedt's avatar
      ftrace: fix current_tracer error return · 60063a66
      Steven Rostedt authored
      The commit (in linux-tip) c2931e05
      
      
       ( ftrace: return an error when setting a nonexistent tracer )
      added useful code that would error when a bad tracer was written into
      the current_tracer file.
      
      But this had a bug if the amount written was more than the amount read by
      that code. The first iteration would set the tracer correctly, but since
      it did not consume the rest of what was written (usually whitespace), the
      userspace utility would continue to write what was not consumed. This
      second iteration would fail to find a tracer and return -EINVAL. Funny
      thing is that the tracer would have already been set.
      
      This patch just consumes all the data that is written to the file.
      
      Signed-off-by: default avatarSteven Rostedt <srostedt@redhat.com>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      60063a66
    • Xiantao Zhang's avatar
      KVM: ia64: Makefile fix for forcing to re-generate asm-offsets.h · e45948b0
      Xiantao Zhang authored
      
      
      To avoid using stale asm-offsets.h.
      
      Signed-off-by: default avatarXiantao Zhang <xiantao.zhang@intel.com>
      Signed-off-by: default avatarAvi Kivity <avi@redhat.com>
      e45948b0
    • Avi Kivity's avatar
      KVM: Future-proof device assignment ABI · bb45e202
      Avi Kivity authored
      
      
      Reserve some space so we can add more data.
      
      Signed-off-by: default avatarAvi Kivity <avi@qumranet.com>
      bb45e202
    • Xiantao Zhang's avatar
      KVM: ia64: Fix halt emulation logic · decc9016
      Xiantao Zhang authored
      
      
      Common halt logic was changed by x86 and did not update ia64.  This patch
      updates halt for ia64.
      
      Fixes a regression causing guests to hang with more than 2 vcpus.
      
      Signed-off-by: default avatarXiantao Zhang <xiantao.zhang@intel.com>
      Signed-off-by: default avatarAvi Kivity <avi@redhat.com>
      decc9016
    • Sheng Yang's avatar
      KVM: Fix guest shared interrupt with in-kernel irqchip · 5550af4d
      Sheng Yang authored
      
      
      Every call of kvm_set_irq() should offer an irq_source_id, which is
      allocated by kvm_request_irq_source_id(). Based on irq_source_id, we
      identify the irq source and implement logical OR for shared level
      interrupts.
      
      The allocated irq_source_id can be freed by kvm_free_irq_source_id().
      
      Currently, we support at most sizeof(unsigned long) different irq sources.
      
      [Amit: - rebase to kvm.git HEAD
             - move definition of KVM_USERSPACE_IRQ_SOURCE_ID to common file
             - move kvm_request_irq_source_id to the update_irq ioctl]
      
      [Xiantao: - Add kvm/ia64 stuff and make it work for kvm/ia64 guests]
      
      Signed-off-by: default avatarSheng Yang <sheng@linux.intel.com>
      Signed-off-by: default avatarAmit Shah <amit.shah@redhat.com>
      Signed-off-by: default avatarXiantao Zhang <xiantao.zhang@intel.com>
      Signed-off-by: default avatarAvi Kivity <avi@redhat.com>
      5550af4d
    • Marcelo Tosatti's avatar
      KVM: MMU: sync root on paravirt TLB flush · 6ad9f15c
      Marcelo Tosatti authored
      
      
      The pvmmu TLB flush handler should request a root sync, similarly to
      a native read-write CR3.
      
      Signed-off-by: default avatarMarcelo Tosatti <mtosatti@redhat.com>
      Signed-off-by: default avatarAvi Kivity <avi@redhat.com>
      6ad9f15c
    • Heiko Carstens's avatar
      lockdep: fix irqs on/off ip tracing · 6afe40b4
      Heiko Carstens authored
      Impact: fix lockdep lock-api-caller output when irqsoff tracing is enabled
      
      81d68a96
      
       "ftrace: trace irq disabled critical timings" added wrappers around
      trace_hardirqs_on/off_caller. However these functions use
      __builtin_return_address(0) to figure out which function actually disabled
      or enabled irqs. The result is that we save the ips of trace_hardirqs_on/off
      instead of the real caller. Not very helpful.
      
      However since the patch from Steven the ip already gets passed. So use that
      and get rid of __builtin_return_address(0) in these two functions.
      
      Signed-off-by: default avatarHeiko Carstens <heiko.carstens@de.ibm.com>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      6afe40b4
    • Christian Borntraeger's avatar
      [S390] s390: Fix build for !CONFIG_S390_GUEST + CONFIG_VIRTIO_CONSOLE · ea4bfdf5
      Christian Borntraeger authored
      The s390 kernel does not compile if virtio console is enabled, but guest
      support is disabled:
      
        LD      .tmp_vmlinux1
      arch/s390/kernel/built-in.o: In function `setup_arch':
      /space/linux-2.5/arch/s390/kernel/setup.c:773: undefined reference to
      `s390_virtio_console_init'
      
      The fix is related to
      commit 99e65c92
      
      
      Author: Christian Borntraeger <borntraeger@de.ibm.com>
      Date:   Fri Jul 25 15:50:04 2008 +0200
          KVM: s390: Fix guest kconfig
      
      Which changed the build process to build kvm_virtio.c only if CONFIG_S390_GUEST
      is set. We must ifdef the prototype in the header file accordingly.
      
      Reported-by: default avatarHeiko Carstens <heiko.carstens@de.ibm.com>
      Signed-off-by: default avatarChristian Borntraeger <borntraeger@de.ibm.com>
      Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
      ea4bfdf5
    • Heiko Carstens's avatar
      [S390] No more 4kb stacks. · 7f5a8ba6
      Heiko Carstens authored
      
      
      We got a stack overflow with a small stack configuration on a 32 bit
      system. It just looks like as 4kb isn't enough and too dangerous.
      So lets get rid of 4kb stacks on 32 bit.
      
      But one thing I completely dislike about the call trace below is that
      just for debugging or tracing purposes sprintf gets called (cio_start_key):
      
      	/* process condition code */
      	sprintf(dbf_txt, "ccode:%d", ccode);
      	CIO_TRACE_EVENT(4, dbf_txt);
      
      But maybe its just me who thinks that this could be done better.
      
          <4>Kernel stack overflow.
          <4>Modules linked in: dm_multipath sunrpc bonding qeth_l2 dm_mod qeth ccwgroup vmur
          <4>CPU: 1 Not tainted 2.6.27-30.x.20081015-s390default #1
          <4>Process httpd (pid: 3807, task: 20ae2df8, ksp: 1666fb78)
          <4>Krnl PSW : 040c0000 8027098a (number+0xe/0x348)
          <4>           R:0 T:1 IO:0 EX:0 Key:0 M:1 W:0 P:0 AS:0 CC:0 PM:0
          <4>Krnl GPRS: 00d43318 0027097c 1666f277 9666f270
          <4>           00000000 00000000 0000000a ffffffff
          <4>           9666f270 1666f228 1666f277 1666f098
          <4>           00000002 80270982 80271016 1666f098
          <4>Krnl Code: 8027097e: f0340dd0a7f1	srp	3536(4,%r0),2033(%r10),4
          <4>           80270984: 0f00		clcl	%r0,%r0
          <4>           80270986: a7840001		brc	8,80270988
          <4>          >8027098a: 18ef		lr	%r14,%r15
          <4>           8027098c: a7faff68		ahi	%r15,-152
          <4>           80270990: 18bf		lr	%r11,%r15
          <4>           80270992: 18a2		lr	%r10,%r2
          <4>           80270994: 1893		lr	%r9,%r3
      
      Modified calltrace with annotated stackframe size of each function:
      
      stackframe size
          |
       0 304 vsnprintf+850 [0x271016]
       1  72 sprintf+74 [0x271522]
       2  56 cio_start_key+262 [0x2d4c16]
       3  56 ccw_device_start_key+222 [0x2dfe92]
       4  56 ccw_device_start+40 [0x2dff28]
       5  48 raw3215_start_io+104 [0x30b0f8]
       6  56 raw3215_write+494 [0x30ba0a]
       7  40 con3215_write+68 [0x30bafc]
       8  40 __call_console_drivers+146 [0x12b0fa]
       9  32 _call_console_drivers+102 [0x12b192]
      10  64 release_console_sem+268 [0x12b614]
      11 168 vprintk+462 [0x12bca6]
      12  72 printk+68 [0x12bfd0]
      13 256 __print_symbol+50 [0x15a882]
      14  56 __show_trace+162 [0x103d06]
      15  32 show_trace+224 [0x103e70]
      16  48 show_stack+152 [0x103f20]
      17  56 dump_stack+126 [0x104612]
      18  96 __alloc_pages_internal+592 [0x175004]
      19  80 cache_alloc_refill+776 [0x196f3c]
      20  40 __kmalloc+258 [0x1972ae]
      21  40 __alloc_skb+94 [0x328086]
      22  32 pskb_copy+50 [0x328252]
      23  32 skb_realloc_headroom+110 [0x328a72]
      24 104 qeth_l2_hard_start_xmit+378 [0x7803bfde]
      25  56 dev_hard_start_xmit+450 [0x32ef6e]
      26  56 __qdisc_run+390 [0x3425d6]
      27  48 dev_queue_xmit+410 [0x331e06]
      28  40 ip_finish_output+308 [0x354ac8]
      29  56 ip_output+218 [0x355b6e]
      30  24 ip_local_out+56 [0x354584]
      31 120 ip_queue_xmit+300 [0x355cec]
      32  96 tcp_transmit_skb+812 [0x367da8]
      33  40 tcp_push_one+158 [0x369fda]
      34 112 tcp_sendmsg+852 [0x35d5a0]
      35 240 sock_sendmsg+164 [0x32035c]
      36  56 kernel_sendmsg+86 [0x32064a]
      37  88 sock_no_sendpage+98 [0x322b22]
      38 104 tcp_sendpage+70 [0x35cc1e]
      39  48 sock_sendpage+74 [0x31eb66]
      40  64 pipe_to_sendpage+102 [0x1c4b2e]
      41  64 __splice_from_pipe+120 [0x1c5340]
      42  72 splice_from_pipe+90 [0x1c57e6]
      43  56 generic_splice_sendpage+38 [0x1c5832]
      44  48 do_splice_from+104 [0x1c4c38]
      45  48 direct_splice_actor+52 [0x1c4c88]
      46  80 splice_direct_to_actor+180 [0x1c4f80]
      47  72 do_splice_direct+70 [0x1c5112]
      48  64 do_sendfile+360 [0x19de18]
      49  72 sys_sendfile64+126 [0x19df32]
      50 336 sysc_do_restart+18 [0x111a1a]
      
      Signed-off-by: default avatarHeiko Carstens <heiko.carstens@de.ibm.com>
      Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
      7f5a8ba6
    • Heiko Carstens's avatar
      [S390] Change default IPL method to IPL_VM. · 46e7951f
      Heiko Carstens authored
      
      
      allyesconfig and allmodconfig built kernels have a tape IPL record.
      A the vmreader record makes much more sense, since hardly anybody will
      ever IPL a kernel from tape. So change the default.
      As I side effect I can test these kernels without fiddling around with
      the kernel config ;)
      
      Signed-off-by: default avatarHeiko Carstens <heiko.carstens@de.ibm.com>
      Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
      46e7951f
    • Frank Munzert's avatar
      [S390] tape: disable interrupts in tape_open and tape_release · b3c21e49
      Frank Munzert authored
      
      
      Get tape device lock with interrupts disabled. Otherwise lockdep will issue a
      warning similar to:
      
      =================================
      [ INFO: inconsistent lock state ]
      2.6.27 #1
      ---------------------------------
      inconsistent {in-hardirq-W} -> {hardirq-on-W} usage.
      vol_id/2903 [HC0[0]:SC0[0]:HE1:SE1] takes:
       (sch->lock){++..}, at: [<000003e00004c7a2>] tape_open+0x42/0x1a4 [tape]
      {in-hardirq-W} state was registered at:
        [<000000000007ce5c>] __lock_acquire+0x894/0xa74
        [<000000000007d0ce>] lock_acquire+0x92/0xb8
        [<0000000000345154>] _spin_lock+0x5c/0x9c
        [<0000000000202264>] do_IRQ+0x124/0x1f0
        [<0000000000026610>] io_return+0x0/0x8
      
      irq event stamp: 847
      hardirqs last  enabled at (847): [<000000000007aca6>] trace_hardirqs_on+0x2a/0x38
      hardirqs last disabled at (846): [<0000000000076ca2>] trace_hardirqs_off+0x2a/0x38
      softirqs last  enabled at (0): [<000000000004909e>] copy_process+0x43e/0x11f4
      softirqs last disabled at (0): [<0000000000000000>] 0x0
      
      other info that might help us debug this:
      1 lock held by vol_id/2903:
       #0:  (&bdev->bd_mutex){--..}, at: [<000000000010e0f4>] do_open+0x78/0x358
      
      stack backtrace:
      CPU: 1 Not tainted 2.6.27 #1},
      Process vol_id (pid: 2903, task: 000000003d4c0000, ksp: 000000003d4e3b10)
      0400000000000000 000000003d4e3830 0000000000000002 0000000000000000
             000000003d4e38d0 000000003d4e3848 000000003d4e3848 00000000000168a8
             0000000000000000 000000003d4e3b10 0000000000000000 0000000000000000
             000000003d4e3830 000000000000000c 000000003d4e3830 000000003d4e38a0
             000000000034aa98 00000000000168a8 000000003d4e3830 000000003d4e3880
      Call Trace:
      ([<000000000001681c>] show_trace+0x138/0x158)
       [<0000000000016902>] show_stack+0xc6/0xf8
       [<00000000000170d4>] dump_stack+0xb0/0xc0
       [<0000000000078810>] print_usage_bug+0x1e8/0x228
       [<000000000007a71c>] mark_lock+0xb14/0xd24
       [<000000000007cd5a>] __lock_acquire+0x792/0xa74
       [<000000000007d0ce>] lock_acquire+0x92/0xb8
       [<0000000000345154>] _spin_lock+0x5c/0x9c
       [<000003e00004c7a2>] tape_open+0x42/0x1a4 [tape]
       [<000003e00005185c>] tapeblock_open+0x98/0xd0 [tape]
      
      Signed-off-by: default avatarFrank Munzert <munzert@de.ibm.com>
      Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
      b3c21e49
    • Roel Kluin's avatar
      [S390] appldata: unsigned ops->size cannot be negative · 13f8b7c5
      Roel Kluin authored
      
      
      unsigned ops->size cannot be negative
      
      Signed-off-by: default avatarRoel Kluin <roel.kluin@gmail.com>
      Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
      13f8b7c5
    • Frank Munzert's avatar
      [S390] tape block: complete request with correct locking · 7a4a1ccd
      Frank Munzert authored
      
      
      __blk_end_request must be called with request queue lock held. We need to use
      blk_end_request rather than  __blk_end_request.
      
      Signed-off-by: default avatarFrank Munzert <munzert@de.ibm.com>
      Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
      7a4a1ccd
    • Heiko Carstens's avatar
      [S390] Fix sysdev class file creation. · da5aae70
      Heiko Carstens authored
      
      
      Use sysdev_class_create_file() to create create sysdev class attributes
      instead of sysfs_create_file(). Using sysfs_create_file() wasn't a very
      good idea since the show and store functions have a different amount of
      parameters for sysfs files and sysdev class files.
      In particular the pointer to the buffer is the last argument and
      therefore accesses to random memory regions happened.
      Still worked surprisingly well until we got a kernel panic.
      
      Cc: stable@kernel.org
      Signed-off-by: default avatarHeiko Carstens <heiko.carstens@de.ibm.com>
      Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
      da5aae70
    • Christian Borntraeger's avatar
      [S390] pgtables: Fix race in enable_sie vs. page table ops · 250cf776
      Christian Borntraeger authored
      
      
      The current enable_sie code sets the mm->context.pgstes bit to tell
      dup_mm that the new mm should have extended page tables. This bit is also
      used by the s390 specific page table primitives to decide about the page
      table layout - which means context.pgstes has two meanings. This can cause
      any kind of bugs. For example  - e.g. shrink_zone can call
      ptep_clear_flush_young while enable_sie is running. ptep_clear_flush_young
      will test for context.pgstes. Since enable_sie changed that value of the old
      struct mm without changing the page table layout ptep_clear_flush_young will
      do the wrong thing.
      The solution is to split pgstes into two bits
      - one for the allocation
      - one for the current state
      
      Signed-off-by: default avatarChristian Borntraeger <borntraeger@de.ibm.com>
      Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
      250cf776
    • Jan Glauber's avatar
      [S390] qdio: remove incorrect memset · 2c780914
      Jan Glauber authored
      
      
      Remove the memset since zeroing the string is not needed and use
      snprintf instead of sprintf.
      
      Signed-off-by: default avatarJan Glauber <jang@linux.vnet.ibm.com>
      Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
      2c780914
    • Jan Glauber's avatar
      [S390] qdio: prevent double qdio shutdown in case of I/O errors · 7c045aa2
      Jan Glauber authored
      
      
      In case of I/O errors on a qdio subchannel qdio_shutdown may be
      called twice by the qdio driver and by zfcp. Remove the
      superfluous shutdown from qdio and let the upper layer driver
      handle the error condition.
      
      Signed-off-by: default avatarJan Glauber <jang@linux.vnet.ibm.com>
      Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
      7c045aa2
    • qinghuang feng's avatar
      lockdep: minor fix for debug_show_all_locks() · 46fec7ac
      qinghuang feng authored
      
      
      When we failed to get tasklist_lock eventually (count equals 0),
      we should only print " ignoring it.\n", and not print
      " locked it.\n" needlessly.
      
      Signed-off-by: default avatarQinghuang Feng <qhfeng.kernel@gmail.com>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      46fec7ac
    • Frederic Weisbecker's avatar
      tracing: fix a build error on alpha · 21798a84
      Frederic Weisbecker authored
      
      
      Impact: build fix on Alpha
      
      When tracing is enabled, some arch have included <linux/irqflags.h>
      on their <asm/system.h> but others like alpha or m68k don't.
      
      Build error on alpha:
      
      kernel/trace/trace.c: In function 'tracing_cpumask_write':
      kernel/trace/trace.c:2145: error: implicit declaration of function 'raw_local_irq_disable'
      kernel/trace/trace.c:2162: error: implicit declaration of function 'raw_local_irq_enable'
      
      Tested on Alpha through a cross-compiler (should correct a similar issue on m68k).
      
      Reported-by: default avatarAlexey Dobriyan <adobriyan@gmail.com>
      Signed-off-by: default avatarFrederic Weisbecker <fweisbec@gmail.com>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      21798a84
    • Shaohua Li's avatar
      x86, memory hotplug: remove wrong -1 in calling init_memory_mapping() · 60817c9b
      Shaohua Li authored
      
      
      Impact: fix crash with memory hotplug
      
      Shuahua Li found:
      
      | I just did some experiments on a desktop for memory hotplug and this bug
      | triggered a crash in my test.
      |
      | Yinghai's suggestion also fixed the bug.
      
      We don't need to round it, just remove that extra -1
      
      Signed-off-by: default avatarYinghai <yinghai@kernel.org>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      60817c9b
    • David Milburn's avatar
      libata: ahci enclosure management bit mask · 87943acf
      David Milburn authored
      
      
      Enclosure management bit mask definitions.
      
      Signed-off-by: default avatarDavid Milburn <dmilburn@redhat.com>
      Signed-off-by: default avatarJeff Garzik <jgarzik@redhat.com>
      87943acf
    • David Milburn's avatar
      libata: ahci enclosure management led sync · eb40963c
      David Milburn authored
      
      
      Synchronize ahci_sw_activity and ahci_sw_activity_blink with ata_port lock.
      
      Signed-off-by: default avatarDavid Milburn <dmilburn@redhat.com>
      Signed-off-by: default avatarJeff Garzik <jgarzik@redhat.com>
      eb40963c