28 Jul, 2008

22 commits

  • memparse()'s first argument can be const, so it should be.

    Signed-off-by: Jeremy Fitzhardinge
    Cc: Andrew Morton
    Signed-off-by: Ingo Molnar

    Jeremy Fitzhardinge
     
  • * 'hotfixes' of git://git.linux-nfs.org/projects/trondmy/nfs-2.6:
    NFS: Ensure we call nfs_sb_deactive() after releasing the directory inode
    nfs_remount oops when rebooting + possible fix

    Linus Torvalds
     
  • * 'x86/urgent' of git://git.kernel.org/pub/scm/linux/kernel/git/x86/linux-2.6-tip:
    x86: fix cpu hotplug on 32bit

    Linus Torvalds
     
  • * master.kernel.org:/home/rmk/linux-2.6-arm:
    [ARM] Fix shared mmap when more than two maps of the same file exist
    [ARM] fix VIPT/VIVT macro optimisations, add comments
    [ARM] 5179/1: Replace obsolete IRQT_* and __IRQT_* values with IRQ_TYPE_*
    [ARM] update defconfig for eseries.
    [ARM] PXA: squash warning in pxafb
    [ARM] pxa: PXA25x UDC - Fix warning during build
    [ARM] fix nwflash.c: 6ee8928d94841aa764aeaf645ad16daff811dc26
    [ARM] fix IOP32x, IOP33x, MXC and Samsung builds
    [ARM] pci: provide dummy pci_get_legacy_ide_irq()
    [ARM] fix fls() for 64-bit arguments
    [ARM] fix mode for board-yl-9200.c
    [ARM] 5176/1: arm/Makefile: fix: ARM946T -> ARM946E

    Linus Torvalds
     
  • Simplify the code of include/linux/task_io_accounting.h.

    It is also more reasonable to have all the task i/o-related statistics in a
    single struct (task_io_accounting).

    Signed-off-by: Andrea Righi
    Signed-off-by: Oleg Nesterov
    Signed-off-by: Linus Torvalds

    Andrea Righi
     
  • In order to avoid the "Busy inodes after unmount" error message, we need to
    ensure that nfs_async_unlink_release() releases the super block after the
    call to nfs_free_unlinkdata().

    Signed-off-by: Trond Myklebust

    Trond Myklebust
     
  • Jeff, Trond,

    The commit

    48b605f83c920d8daa50e43fc2c7f718e04c7bfa (NFS: implement option checking
    when remounting NFS filesystems (resend))

    generate an Oops on my platform when rebooting while its root FS on
    an NFS share (NFSv3, TCP) :

    Unmounting local filesystems...done.
    Unable to handle kernel NULL pointer dereference at virtual address 00000000
    pgd = c3d00000
    [00000000] *pgd=a3d72031, *pte=00000000, *ppte=00000000
    Internal error: Oops: 17 [#1]
    Modules linked in: cpufreq_powersave cpufreq_ondemand cpufreq_userspace cpufreq_conservative ext3 jbd sd_mod pata_pcmcia libata scsi_mod pcmcia loop firmware_class pxafb cfbcopyarea cfbimgblt cfbfillrect pxa2xx_cs pxa2xx_core pcmcia_core snd_pxa2xx_ac97 snd_ac97_codec ac97_bus snd_pxa2xx_pcm snd_pcm_oss snd_mixer_oss snd_pcm snd_timer snd isp116x_hcd soundcore rtc_sa1100 snd_page_alloc pxa25x_udc usbcore rtc_ds1307 rtc_core
    CPU: 0 Not tainted (2.6.26-03414-g33af79d-dirty #15)
    PC is at nfs_remount+0x40/0x264
    LR is at do_remount_sb+0x158/0x194
    pc : [] lr : [] psr: 60000013
    sp : c2dd1e70 ip : c2dd1e98 fp : c2dd1e94
    r10: 00000040 r9 : c3d17000 r8 : c3c3fc40
    r7 : 00000000 r6 : 00000000 r5 : c3d2b200 r4 : 00000000
    r3 : 00000003 r2 : 00000000 r1 : c2dd1e9c r0 : c3c3fc00
    Flags: nZCv IRQs on FIQs on Mode SVC_32 ISA ARM Segment user
    Control: 0000397f Table: a3d00000 DAC: 00000015
    Process mount (pid: 1462, stack limit = 0xc2dd0270)
    Stack: (0xc2dd1e70 to 0xc2dd2000)
    1e60: 00000000 c3c3fc00 00000000 00000000
    1e80: c3c3fc40 c3d17000 c2dd1ebc c2dd1e98 c0076c40 c00bbf20 c01c61e4 00000001
    1ea0: c2dd1ebc 00000001 c3c3fc00 c2dd1ef0 c2dd1ee4 c2dd1ec0 c008c6d8 c0076af4
    1ec0: 00000021 00000040 c2dd1ef0 c3d77000 c3eaa000 00000000 c2dd1f6c c2dd1ee8
    1ee0: c008d1bc c008c5f8 00000000 c2dd0000 c3c0c320 c3805b38 c002064c 0001f820
    1f00: 0001f810 00000001 00000001 00000000 c2dd0000 00000000 c2dd1f34 c2dd1f28
    1f20: c005ead8 c005e6f8 c2dd1f44 c2dd1f38 c005eaf8 c005ead0 c2dd1f6c c2dd1f48
    1f40: c008ae3c 00000000 c3d77000 0001f810 c0ed0021 c0020ca8 c2dd0000 00000000
    1f60: c2dd1fa4 c2dd1f70 c008d2d4 c008d0bc 00000000 0001f810 c2dd1f9c c3eaa000
    1f80: c3d17000 00000000 00000000 be8b6aa8 be8b6ad0 00000015 00000000 c2dd1fa8
    1fa0: c0020b00 c008d254 00000000 be8b6aa8 0001f810 0001f820 0001f830 c0ed0021
    1fc0: 00000000 be8b6aa8 be8b6ad0 00000015 00000000 be8b6ad0 0001f810 be8b6aa8
    1fe0: 0001f810 be8b6964 0000aab8 40125124 60000010 0001f810 00000000 00000000
    Backtrace:
    [] (nfs_remount+0x0/0x264) from [] (do_remount_sb+0x158/0x194)
    r9:c3d17000 r8:c3c3fc40 r7:00000000 r6:00000000 r5:c3c3fc00
    r4:00000000
    [] (do_remount_sb+0x0/0x194) from [] (do_remount+0xec/0x118)
    r6:c2dd1ef0 r5:c3c3fc00 r4:00000001
    [] (do_remount+0x0/0x118) from [] (do_mount+0x10c/0x198)
    [] (do_mount+0x0/0x198) from [] (sys_mount+0x8c/0xd4)
    [] (sys_mount+0x0/0xd4) from [] (ret_fast_syscall+0x0/0x2c)
    r7:00000015 r6:be8b6ad0 r5:be8b6aa8 r4:00000000
    Code: 0a000086 ea000006 e3530003 8a000004 (e5923000)
    ---[ end trace 55e1b689cf8c8a6a ]---
    ------------[ cut here ]------------
    WARNING: at kernel/exit.c:966 do_exit+0x3c/0x628()
    Modules linked in: cpufreq_powersave cpufreq_ondemand cpufreq_userspace cpufreq_conservative ext3 jbd sd_mod pata_pcmcia libata scsi_mod pcmcia loop firmware_class pxafb cfbcopyarea cfbimgblt cfbfillrect pxa2xx_cs pxa2xx_core pcmcia_core snd_pxa2xx_ac97 snd_ac97_codec ac97_bus snd_pxa2xx_pcm snd_pcm_oss snd_mixer_oss snd_pcm snd_timer snd isp116x_hcd soundcore rtc_sa1100 snd_page_alloc pxa25x_udc usbcore rtc_ds1307 rtc_core
    [] (dump_stack+0x0/0x14) from [] (warn_on_slowpath+0x4c/0x68)
    [] (warn_on_slowpath+0x0/0x68) from [] (do_exit+0x3c/0x628)
    r6:0000000b r5:c3c3dc80 r4:c2dd0000
    [] (do_exit+0x0/0x628) from [] (die+0x2b0/0x30c)
    [] (die+0x0/0x30c) from [] (__do_kernel_fault+0x6c/0x80)
    [] (__do_kernel_fault+0x0/0x80) from [] (do_page_fault+0x210/0x230)
    r7:c3fa7118 r6:c3c3dc80 r5:c3d166a8 r4:00010000
    [] (do_page_fault+0x0/0x230) from [] (do_DataAbort+0x3c/0xa0)
    [] (do_DataAbort+0x0/0xa0) from [] (__dabt_svc+0x4c/0x60)
    Exception stack(0xc2dd1e28 to 0xc2dd1e70)
    1e20: c3c3fc00 c2dd1e9c 00000000 00000003 00000000 c3d2b200
    1e40: 00000000 00000000 c3c3fc40 c3d17000 00000040 c2dd1e94 c2dd1e98 c2dd1e70
    1e60: c0076c40 c00bbf54 60000013 ffffffff
    r8:c3c3fc40 r7:00000000 r6:00000000 r5:c2dd1e5c r4:ffffffff
    [] (nfs_remount+0x0/0x264) from [] (do_remount_sb+0x158/0x194)
    r9:c3d17000 r8:c3c3fc40 r7:00000000 r6:00000000 r5:c3c3fc00
    r4:00000000
    [] (do_remount_sb+0x0/0x194) from [] (do_remount+0xec/0x118)
    r6:c2dd1ef0 r5:c3c3fc00 r4:00000001
    [] (do_remount+0x0/0x118) from [] (do_mount+0x10c/0x198)
    [] (do_mount+0x0/0x198) from [] (sys_mount+0x8c/0xd4)
    [] (sys_mount+0x0/0xd4) from [] (ret_fast_syscall+0x0/0x2c)
    r7:00000015 r6:be8b6ad0 r5:be8b6aa8 r4:00000000
    ---[ end trace 55e1b689cf8c8a6a ]---
    /etc/rc6.d/S60umountroot: line 17: 1462 Segmentation fault mount $MOUNT_FORCE_OPT -n -o remount,ro -t dummytype dummydev / 2> /dev/null

    The new super.c:nfs_remount function doesn't check the validity of the
    options/options4 pointers. Unfortunately, this seems to happend.
    The obvious patch seems to check the pointers, and not to do anything if
    the happend to be NULL.

    Tested on an XScale PXA255 system, latest git.

    Regards,

    M.

    Signed-off-by: Marc Zyngier
    Signed-off-by: Trond Myklebust

    Marc Zyngier
     
  • commit 3e9704739daf46a8ba6593d749c67b5f7cd633d2 ("x86: boot secondary
    cpus through initial_code") causes the kernel to crash when a CPU is
    brought online after the read only sections have been write
    protected. The write to initial_code in do_boot_cpu() fails.

    Move inital_code to .cpuinit.data section.

    Signed-off-by: Thomas Gleixner
    Acked-by: H. Peter Anvin

    Thomas Gleixner
     
  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394-2.6:
    firewire: state userland requirements in Kconfig help
    firewire: avoid memleak after phy config transmit failure
    firewire: fw-ohci: TSB43AB22/A dualbuffer workaround
    firewire: queue the right number of data
    firewire: warn on unfinished transactions during card removal
    firewire: small fw_fill_request cleanup
    firewire: fully initialize fw_transaction before marking it pending
    firewire: fix race of bus reset with request transmission

    Linus Torvalds
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6: (59 commits)
    [SCSI] replace __FUNCTION__ with __func__
    [SCSI] extend the last_sector_bug flag to cover more sectors
    [SCSI] qla2xxx: Update version number to 8.02.01-k6.
    [SCSI] qla2xxx: Additional NPIV corrections.
    [SCSI] qla2xxx: suppress uninitialized-var warning
    [SCSI] qla2xxx: use memory_read_from_buffer()
    [SCSI] qla2xxx: Issue proper ISP callbacks during stop-firmware.
    [SCSI] ch: fix ch_remove oops
    [SCSI] 3w-9xxx: add MSI support and misc fixes
    [SCSI] scsi_lib: use blk_rq_tagged in scsi_request_fn
    [SCSI] ibmvfc: Update driver version to 1.0.1
    [SCSI] ibmvfc: Add ADISC support
    [SCSI] ibmvfc: Miscellaneous fixes
    [SCSI] ibmvfc: Fix hang on module removal
    [SCSI] ibmvfc: Target refcounting fixes
    [SCSI] ibmvfc: Reduce unnecessary log noise
    [SCSI] sym53c8xx: free luntbl in sym_hcb_free
    [SCSI] scsi_scan.c: Release mutex in error handling code
    [SCSI] scsi_eh_prep_cmnd should save scmd->underflow
    [SCSI] sd: Support for SCSI disk (SBC) Data Integrity Field
    ...

    Linus Torvalds
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/hskinnemoen/avr32-2.6:
    avr32: some mmc/sd cleanups
    include/video/atmel_lcdc.h must #include
    avr32: allow system timer to share interrupt to make OProfile work
    drivers/misc/atmel-ssc.c: Removed duplicated include
    avr32: Add platform data for AC97C platform device
    avr32: clean up mci platform code
    fix avr32 build errors

    Linus Torvalds
     
  • * 'kvm-updates-2.6.27' of git://git.kernel.org/pub/scm/linux/kernel/git/avi/kvm:
    KVM: ppc: fix invalidation of large guest pages
    KVM: s390: Fix possible host kernel bug on lctl(g) handling
    KVM: s390: Fix instruction naming for lctlg
    KVM: s390: Fix program check on interrupt delivery handling
    KVM: s390: Change guestaddr type in gaccess
    KVM: s390: Fix guest kconfig
    KVM: s390: Advertise KVM_CAP_USER_MEMORY
    KVM: ia64: Fix irq disabling leak in error handling code
    KVM: VMX: Fix undefined beaviour of EPT after reload kvm-intel.ko
    KVM: VMX: Fix bypass_guest_pf enabling when disable EPT in module parameter
    KVM: task switch: translate guest segment limit to virt-extension byte granular field
    KVM: Avoid instruction emulation when event delivery is pending
    KVM: task switch: use seg regs provided by subarch instead of reading from GDT
    KVM: task switch: segment base is linear address
    KVM: SVM: allow enabling/disabling NPT by reloading only the architecture module

    Linus Torvalds
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/sam/kbuild-next: (25 commits)
    setlocalversion: do not describe if there is nothing to describe
    kconfig: fix typos: "Suport" -> "Support"
    kconfig: make defconfig is no longer chatty
    kconfig: make oldconfig is now less chatty
    kconfig: speed up all*config + randconfig
    kconfig: set all new symbols automatically
    kconfig: add diffconfig utility
    kbuild: remove Module.markers during mrproper
    kbuild: sparse needs CF not CHECKFLAGS
    kernel-doc: handle/strip __init
    vmlinux.lds: move __attribute__((__cold__)) functions back into final .text section
    init: fix URL of "The GNU Accounting Utilities"
    kbuild: add arch/$ARCH/include to search path
    kbuild: asm symlink support for arch/$ARCH/include
    kbuild: support arch/$ARCH/include for tags, cscope
    kbuild: prepare headers_* for arch/$ARCH/include
    kbuild: install all headers when arch is changed
    kbuild: make clean removes *.o.* as well
    kbuild: optimize headers_* targets
    kbuild: only one call for include/ in make headers_*
    ...

    Linus Torvalds
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6:
    crypto: talitos - sparse fix
    crypto: talitos - Stop leaking memory in error path
    crypto: talitos - Fix GFP flag usage
    crypto: talitos - Preempt overflow interrupts
    crypto: talitos - Correct dst != src case handling
    crypto: talitos - Remove calls to of_node_put

    Linus Torvalds
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/kkeil/ISDN-2.6:
    Fix namespace issue with Hisax

    Linus Torvalds
     
  • On powerpc (allyesconfig build) we get this error:

    drivers/isdn/hardware/mISDN/hfcpci.c:1991: error: implicit declaration of function 'virt_to_bus'

    Signed-off-by: Stephen Rothwell
    Signed-off-by: Linus Torvalds

    Stephen Rothwell
     
  • Put all i/o statistics in struct proc_io_accounting and use inline functions to
    initialize and increment statistics, removing a lot of single variable
    assignments.

    This also reduces the kernel size as following (with CONFIG_TASK_XACCT=y and
    CONFIG_TASK_IO_ACCOUNTING=y).

    text data bss dec hex filename
    11651 0 0 11651 2d83 kernel/exit.o.before
    11619 0 0 11619 2d63 kernel/exit.o.after
    10886 132 136 11154 2b92 kernel/fork.o.before
    10758 132 136 11026 2b12 kernel/fork.o.after

    3082029 807968 4818600 8708597 84e1f5 vmlinux.o.before
    3081869 807968 4818600 8708437 84e155 vmlinux.o.after

    Signed-off-by: Andrea Righi
    Acked-by: Oleg Nesterov
    Signed-off-by: Linus Torvalds

    Andrea Righi
     
  • Remove the following warning with CONFIG_TRACING=y:

    kernel/trace/trace.c: In function ‘s_next’:
    kernel/trace/trace.c:1186: warning: unused variable ‘last_ent’

    Signed-off-by: Andrea Righi
    Signed-off-by: Linus Torvalds

    Andrea Righi
     
  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6:
    ALSA: Allow to force model to intel-mac-v3 in snd_hda_intel (sigmatel).
    ALSA: cs4232: fix crash during chip PNP detection
    ALSA: hda - Add automatic model setting for the Acer Aspire 5920G laptop
    ALSA: make snd_ac97_add_vmaster() static
    ALSA: sound/pci/azt3328.h: no variables for enums
    ALSA: soc - wm9712 mono mixer
    ALSA: hda - Add support of ASUS Eeepc P90*
    ALSA: opti9xx: no isapnp param for !CONFIG_PNP
    ALSA: opti93x - Fix NULL dereference
    ALSA: hda - Added support for Asus V1Sn
    ALSA: ASoC: Factor PGA DAPM handling into main
    ALSA: ASoC: Refactor DAPM event handler
    ALSA: ALSA: ens1370: communicate PCI device to AC97
    ALSA: ens1370: SRC stands for Sample Rate Converter
    ALSA: hda - Align BDL position adjustment parameter
    ALSA: Au1xpsc: psc not disabled when TX is idle
    ALSA: add TriTech 28023 AC97 codec ID and Wolfson 9701 name.

    Linus Torvalds
     
  • Piss-poor sysctl registration API strikes again, film at 11...

    What we really need is _pathname_ required to be present in already
    registered table, so that kernel could warn about bad order. That's the
    next target for sysctl stuff (and generally saner and more explicit
    order of initialization of ipv[46] internals wouldn't hurt either).

    For the time being, here are full fixups required by ..._rotable()
    stuff; we make per-net sysctl sets descendents of "ro" one and make sure
    that sufficient skeleton is there before we start registering per-net
    sysctls.

    Signed-off-by: Al Viro
    Signed-off-by: Linus Torvalds

    Al Viro
     
  • try_attach() should walk into the matching subdirectory, not the first one...

    Signed-off-by: Al Viro
    Tested-by: Valdis.Kletnieks@vt.edu
    Tested-by: Ingo Molnar
    Signed-off-by: Linus Torvalds

    Al Viro
     
  • you can pull this git://git./linux/kernel/git/kkeil/ISDN-2.6 master

    rename release_tei() to TEIrelease() because release_tei() was
    already exported bei the old HiSax driver.

    Signed-off-by: Karsten Keil

    Karsten Keil
     

27 Jul, 2008

18 commits

  • [jejb: fixed up a ton of missed conversions.

    All of you are on notice this has happened, driver trees will now
    need to be rebased]

    Signed-off-by: Harvey Harrison
    Cc: SCSI List
    Signed-off-by: Andrew Morton
    Signed-off-by: James Bottomley

    Harvey Harrison
     
  • The last_sector_bug flag was added to work around a bug in certain usb
    cardreaders, where they would crash if a multiple sector read included the
    last sector. The original implementation avoids this by e.g. splitting an 8
    sector read which includes the last sector into a 7 sector read, and a single
    sector read for the last sector. The flag is enabled for all USB devices.

    This revealed a second bug in other usb cardreaders, which crash when they
    get a multiple sector read which stops 1 sector short of the last sector.
    Affected hardware includes the Kingston "MobileLite" external USB cardreader
    and the internal USB cardreader on the Asus EeePC.

    Extend the last_sector_bug workaround to ensure that any access which touches
    the last 8 hardware sectors of the device is a single sector long. Requests
    are shrunk as necessary to meet this constraint.

    This gives us a safety margin against potential unknown or future bugs
    affecting multi-sector access to the end of the device. The two known bugs
    only affect the last 2 sectors. However, they suggest that these devices
    are prone to fencepost errors and that multi-sector access to the end of the
    device is not well tested. Popular OS's use multi-sector accesses, but they
    rarely read the last few sectors. Linux (with udev & vol_id) automatically
    reads sectors from the end of the device on insertion. It is assumed that
    single sector accesses are more thoroughly tested during development.

    Signed-off-by: Alan Jenkins
    Tested-by: Alan Jenkins
    Signed-off-by: James Bottomley

    Alan Jenkins
     
  • Minor cleanups for the MMC/SD support on avr32:

    - Make at32_add_device_mci() properly initialize "missing"
    platform data ... so boards like STK1002 won't try GPIO 0.

    - Switch over to gpio_is_valid() instead of testing for only
    one designated value.

    - Provide STK1002 platform data for the unlikely case that
    switches are set so first Ethernet controller isn't in use.
    (That's the only way to get card detect and writeprotect
    switch sensing on the STK1000.)

    And get rid of one "unused variable" warning.

    Signed-off-by: David Brownell
    Signed-off-by: Haavard Skinnemoen

    David Brownell
     
  • Haavard Skinnemoen
     
  • The shared mmap code works fine for the test case, which only checked
    for two shared maps of the same file. However, three shared maps
    result in one mapping remaining cached, resulting in stale data being
    visible via that mapping. Fix this.

    Signed-off-by: Russell King

    Russell King
     
  • cacheflush.h was doing:

    ... VIVT only stuff
    ... VIPT only stuff
    ... VIVT or VIPT stuff

    which is clearly bogus - we would only ever use the "VIVT or VIPT" case
    when both VIVT and VIPT are not selected. Fix this.

    Add comments to each case, including noting the impossibility of
    correctly detecting the cache type of ARM926 and ARMv6 cores from
    the cache type register in the "VIVT or VIPT" case.

    Signed-off-by: Russell King

    Russell King
     
  • When guest invalidates a large tlb map, there may be more than one
    corresponding shadow tlb maps that need to be invalidated. Use eaddr and eend
    to find these shadow tlb maps.

    Signed-off-by: Liu Yu
    Signed-off-by: Hollis Blanchard
    Signed-off-by: Avi Kivity

    Hollis Blanchard
     
  • IRQT_* and __IRQT_* were obsoleted long ago by patch [3692/1].
    Remove them completely. Sed script for the reference:

    s/__IRQT_RISEDGE/IRQ_TYPE_EDGE_RISING/g
    s/__IRQT_FALEDGE/IRQ_TYPE_EDGE_FALLING/g
    s/__IRQT_LOWLVL/IRQ_TYPE_LEVEL_LOW/g
    s/__IRQT_HIGHLVL/IRQ_TYPE_LEVEL_HIGH/g
    s/IRQT_RISING/IRQ_TYPE_EDGE_RISING/g
    s/IRQT_FALLING/IRQ_TYPE_EDGE_FALLING/g
    s/IRQT_BOTHEDGE/IRQ_TYPE_EDGE_BOTH/g
    s/IRQT_LOW/IRQ_TYPE_LEVEL_LOW/g
    s/IRQT_HIGH/IRQ_TYPE_LEVEL_HIGH/g
    s/IRQT_PROBE/IRQ_TYPE_PROBE/g
    s/IRQT_NOEDGE/IRQ_TYPE_NONE/g

    Signed-off-by: Dmitry Baryshkov
    Signed-off-by: Russell King

    Dmitry Baryshkov
     
  • The lctl(g) instructions require a specific alignment for the parameters.
    The architecture requires a specification program check if these alignments
    are not used. Enforcing this alignment also removes a possible host BUG,
    since the get_guest functions check for proper alignment and emits a BUG.

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

    Christian Borntraeger
     
  • Lets fix the name for the lctlg instruction...

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

    Christian Borntraeger
     
  • The current interrupt handling on s390 misbehaves on an error case. On s390
    each cpu has the prefix area (lowcore) for interrupt delivery. This memory
    must always be available. If we fail to access the prefix area for a guest
    on interrupt delivery the configuration is completely unusable. There is no
    point in sending another program interrupt to an inaccessible lowcore.
    Furthermore, we should not bug the host kernel, because this can be triggered
    by userspace. I think the guest kernel itself can not trigger the problem, as
    SET PREFIX and SIGNAL PROCESSOR SET PREFIX both check that the memory is
    available and sane. As this is a userspace bug (e.g. setting the wrong guest
    offset, unmapping guest memory) we should kill the userspace process instead
    of BUGing the host kernel.
    In the long term we probably should notify the userspace process about this
    problem.

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

    Christian Borntraeger
     
  • All registers are unsigned long types. This patch changes all occurences
    of guestaddr in gaccess from u64 to unsigned long.

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

    Martin Schwidefsky
     
  • Cornelia Huck noticed that a modular virtio without kvm guest support
    leads to a build error in the s390 virtio transport:

    CONFIG_VIRTIO=m leads to
    ERROR: "vmem_add_mapping" [drivers/s390/kvm/kvm_virtio.ko] undefined!
    ERROR: "max_pfn" [drivers/s390/kvm/kvm_virtio.ko] undefined!
    ERROR: "vmem_remove_mapping" [drivers/s390/kvm/kvm_virtio.ko] undefined!

    The virtio transport only works with kvm guest support and only as a
    builtin. Lets change the build process of drivers/s390/kvm/kvm_virtio.c
    to depend on kvm guest support, which is also a bool.

    CONFIG_S390_GUEST already selects CONFIG_VIRTIO, that should prevent
    CONFIG_S390_GUEST=y CONFIG_VIRTIO=n situations.

    CC: Cornelia Huck
    Signed-off-by: Christian Borntraeger
    Signed-off-by: Avi Kivity

    Christian Borntraeger
     
  • KVM_CAP_USER_MEMORY is used by s390, therefore, we should advertise it.

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

    Carsten Otte
     
  • There is a call to local_irq_restore in the normal exit case, so it would
    seem that there should be one on an error return as well.

    The semantic patch that finds this problem is as follows:
    (http://www.emn.fr/x-info/coccinelle/)

    //
    @@
    expression l;
    expression E,E1,E2;
    @@

    local_irq_save(l);
    ... when != local_irq_restore(l)
    when != spin_unlock_irqrestore(E,l)
    when any
    when strict
    (
    if (...) { ... when != local_irq_restore(l)
    when != spin_unlock_irqrestore(E1,l)
    + local_irq_restore(l);
    return ...;
    }
    |
    if (...)
    + {local_irq_restore(l);
    return ...;
    + }
    |
    spin_unlock_irqrestore(E2,l);
    |
    local_irq_restore(l);
    )
    //

    Signed-off-by: Julia Lawall
    Signed-off-by: Avi Kivity

    Julia Lawall
     
  • As well as move set base/mask ptes to vmx_init().

    Signed-off-by: Sheng Yang
    Signed-off-by: Avi Kivity

    Sheng Yang
     
  • Signed-off-by: Sheng Yang
    Signed-off-by: Avi Kivity

    Sheng Yang
     
  • If 'g' is one then limit is 4kb granular.

    Signed-off-by: Marcelo Tosatti
    Signed-off-by: Avi Kivity

    Marcelo Tosatti