shortlog
========
Andrew Widdersheim (1):
[netdevice] Add "ifname" setting
Carl Henrik Lunde (1):
[vmxnet3] Avoid completely filling the TX descriptor ring
Christian Hesse (2):
[golan] Fix build error on some versions of gcc
[ath9k] Fix buffer overrun for ar9287
Christian Nilsson (2):
[intel] Add PCI device ID for another I219-V
[intel] Add PCI device ID for another I219-LM
Hummel Frank (1):
[intel] Add INTEL_NO_PHY_RST for I218-LM
Kyösti Mälkki (1):
[intel] Add PCI IDs for i210/i211 flashless operation
Ladi Prosek (6):
[pci] Add pci_find_next_capability()
[virtio] Add virtio 1.0 constants and data structures
[virtio] Add virtio 1.0 PCI support
[virtio] Add virtio-net 1.0 support
[virtio] Renumber virtio_pci_region flags
[virtio] Fix virtio-pci logging
Leendert van Doorn (2):
[tg3] Fix address truncation bug on 64-bit machines
[tg3] Add missing memory barrier
Michael Brown (287):
[settings] Re-add "uristring" setting type
[dhcp] Do not skip ProxyDHCPREQUEST if next-server is empty
[efi] Add definitions of GUIDs observed when booting shim.efi and grub.efi
[efi] Mark EFI debug transcription functions as __attribute__ (( pure ))
[efi] Remove raw EFI_HANDLE values from debug messages
[efi] Include installed protocol list in unknown handle names
[efi] Improve efi_wrap debugging
[pxe] Construct all fake DHCP packets before starting PXE NBP
[efi] Add definitions of GUIDs observed when booting wdsmgfw.efi
[efi] Fix debug directory size
[efi] Populate debug directory entry FileOffset field
[build] Search for ldlinux.c32 separately from isolinux.bin
[tcpip] Allow supported address families to be detected at runtime
[efi] Allow calls to efi_snp_claim() and efi_snp_release() to be nested
[efi] Fix order of events on SNP removal path
[efi] Do not return EFI_NOT_READY from our ReceiveFilters() method
[pxe] Populate ciaddr in fake PXE Boot Server ACK packet
[uri] Generalise tftp_uri() to pxe_uri()
[efi] Implement the EFI_PXE_BASE_CODE_PROTOCOL
[usb] Expose usb_find_driver()
[usb] Add function to device's function list before attempting probe
[efi] Add USB headers and GUID definitions
[efi] Allow efidev_parent() to traverse multiple device generations
[efi] Add a USB host controller driver based on EFI_USB_IO_PROTOCOL
[tcpip] Avoid generating positive zero for transmitted UDP checksums
[usb] Generalise zero-length packet generation logic
[ehci] Do not treat zero-length NULL pointers as unreachable
[ehci] Support arbitrarily large transfers
[xhci] Support arbitrarily large transfers
[efi] Provide efi_devpath_len()
[efi] Include a copy of the device path within struct efi_device
[usb] Select preferred USB device configuration based on driver score
[usb] Allow for wildcard USB class IDs
[efi] Expose unused USB devices via EFI_USB_IO_PROTOCOL
[ncm] Support setting MAC address
[build] Remove dependency on libiberty
[efi] Minimise use of iPXE header files when building host utilities
[pxe] Invoke INT 1a,564e when PXE stack is activated
[pxe] Notify BIOS via INT 1a,564e for each new network device
[efi] Work around broken 32-bit PE executable parsing in ImageHlp.dll
[efi] Avoid infinite loops when asked to stop non-existent devices
[efi] Expose an UNDI interface alongside the existing SNP interface
[malloc] Avoid integer overflow for excessively large memory allocations
[peerdist] Avoid NULL pointer dereference for plaintext blocks
[http] Verify server port when reusing a pooled connection
[efi] Reset root directory when installing EFI_SIMPLE_FILE_SYSTEM_PROTOCOL
[efi] Update to current EDK2 headers
[efi] Import EFI_HII_FONT_PROTOCOL definitions
[fbcon] Allow character height to be selected at runtime
[fbcon] Move margin calculations to fbcon.c
[console] Tidy up config/console.h
[build] Generalise CONSOLE_VESAFB to CONSOLE_FRAMEBUFFER
[efi] Add support for EFI_GRAPHICS_OUTPUT_PROTOCOL frame buffer consoles
[dhcp] Reset start time when deferring discovery
[dhcp] Limit maximum number of DHCP discovery deferrals
[comboot] Reset console before starting COMBOOT executable
[intel] Forcibly skip PHY reset on some models
[intel] Correct definition of receive overrun bit
[infiniband] Add definitions for FDR and EDR link speeds
[infiniband] Add qword accessors for ib_guid and ib_gid
[pci] Add definitions for PCI Express function level reset (FLR)
[bitops] Fix definitions for big-endian devices
[smsc95xx] Add driver for SMSC/Microchip LAN95xx USB Ethernet NICs
[bitops] Provide BIT_QWORD_PTR()
[efi] Add %.usb target for building EFI-bootable USB (or other) disk images
[usb] Use port->disconnected to check for disconnected devices
[usb] Record USB device speed separately from current port speed
[usb] Allow USB device IDs to include arbitrary driver-specific data
[usb] Allow additional settling time for out-of-spec hubs
[acm] Add support for CDC-ACM (aka USB RNDIS) devices
[xhci] Ensure that zero-length packets are not part of a TRB chain
[efi] Centralise EFI file system info GUIDs
[build] Allow extra objects to be included in an all-drivers build
[bios] Add support for injecting keypresses
[settings] Expose SMBIOS settings as global variables
[smsc95xx] Allow for multiple methods for obtaining the MAC address
[crypto] Dual-license selected DRBG files
[smsc95xx] Fetch MAC from SMBIOS OEM string for Honeywell VM3
[crypto] Dual-license more selected DRBG files
[vmware] Expose GuestRPC mechanism in 64-bit builds
[romprefix] Report an optimistic runtime size estimate
[usb] Add support for numeric keypad on USB keyboards
[http] Handle relative redirection URIs
[image] Provide image_set_uri() to modify an image's URI
[downloader] Update image URI in response to a redirection
[tftp] Do not change current working URI when TFTP server is cleared
[infiniband] Profile post work queue entry operations
[pxe] Colourise debug output
[pxe] Add debug message to display real-mode segment addresses
[i386] Add check_bios_interrupts() debug function
[debug] Allow debug colourisation to be disabled
[stp] Fix incorrectly disambiguated errors
[build] Add named configuration for public cloud environments
[smsc95xx] Enable LEDs
[usb] Allow USB endpoints to specify a reserved header length for refills
[smsc95xx] Reserve headroom in received packets
[autoboot] Fix incorrect boolean logic
[uri] Avoid potentially large stack allocation
[ocsp] Avoid including a double path separator in request URI
[tftp] Mangle initial slash on TFTP URIs
[uri] Apply URI decoding for all parsed URIs
[tcp] Guard against malformed TCP options
[slam] Avoid potential division by zero
[ath9k] Remove broken ath_rxbuf_alloc()
[ehci] Add extra debugging information
[malloc] Guard against unsigned integer overflow
[iobuf] Improve robustness of I/O buffer allocation
[pxe] Clarify comments regarding shrinking of cached DHCP packet
[efi] Add missing definitions for function key scancodes
[prefix] Pad .text16 and .data16 segment sizes at build time
[libc] Split rmsetjmp() and rmlongjmp() into a separate rmsetjmp.h
[bios] Use intptr_t when casting .text16 function pointers
[bios] Use size_t when casting _text16_memsz and _data16_memsz
[bios] Allow relocate.c to be compiled for x86_64
[bios] Allow rtc_entropy.c to be compiled for x86_64
[bios] Allow bzimage.c to be compiled for x86_64
[bios] Allow bios_console.c to be compiled for x86_64
[bios] Allow memmap.c to be compiled for x86_64
[bios] Allow librm to be compiled for x86_64
[bios] Move isolinux definitions to Makefile.pcbios
[bios] Add bin-x86_64-pcbios build platform
[librm] Discard argument as part of return from prot_call()
[librm] Discard argument as part of return from real_call()
[prefix] Align INT 15,88 temporary decompression area to a page boundary
[romprefix] Align PMM temporary decompression area to a page boundary
[bios] Make uses of REAL_CODE() and PHYS_CODE() 64-bit clean
[librm] Use garbage-collectable section names
[bios] Use an 8kB stack for x86_64
[prefix] Use garbage-collectable section names
[librm] Simplify definitions for prot_call() and real_call() stack frames
[prefix] Standardise calls to prot_call()
[librm] Convert prot_call() to a real-mode near call
[librm] Provide an abstraction wrapper for prot_call
[librm] Transition to protected mode within init_librm()
[relocate] Preserve page alignment during relocation
[librm] Prepare for long-mode memory map
[librm] Generate page tables for 64-bit builds
[build] Fix building on older versions of binutils
[librm] Add phys_call() wrapper for calling code with physical addressing
[librm] Do not preserve flags unnecessarily
[librm] Mark virt_offset, text16, data16, rm_cs, and rm_ds as constant
[librm] Support userptr_t in 64-bit builds
[librm] Rename prot_call() to virt_call()
[librm] Add support for running in 64-bit long mode
[ioapi] Split ioremap() out to a separate IOMAP API
[librm] Support ioremap() for addresses above 4GB in a 64-bit build
[netdevice] Refuse to create duplicate network device names
[infiniband] Remove concept of whole-device owner data
[infiniband] Avoid multiple calls to ib_cmrc_shutdown()
[infiniband] Add support for performing service record lookups
[infiniband] Assign names to Infiniband devices for debug messages
[infiniband] Use "%#lx" as format specifier for queue pair numbers
[infiniband] Use "%d" as format specifier for LIDs
[infiniband] Use connection's local ID as debug message identifier
[infiniband] Use correct transaction identifier in CM responses
[infiniband] Do not use GRH for local paths
[infiniband] Record multicast GID attachment as part of group membership
[infiniband] Parse MLID, rate, and SL from multicast membership record
[ipoib] Avoid unnecessary path record lookup for broadcast address
[ipoib] Simplify test for received broadcast packets
[infiniband] Allow for the creation of multicast groups
[pcbios] Restrict external memory allocations to the low 4GB
[infiniband] Assign names to CMRC connections
[infiniband] Assign names to queue pairs
[infiniband] Add "ibstat" command
[infiniband] Retrieve GID flag from cached path entries
[ipoib] Resimplify test for received broadcast packets
[ipoib] Increase number of transmit work queue entries
[ifmgmt] Include human-readable error message for configuration failure
[infiniband] Make IPoIB support configurable at build time
[eoib] Add Ethernet over Infiniband (EoIB) driver
[eoib] Silently ignore EoIB heartbeat packets
[eoib] Allow the multicast group to be forcefully created
[eoib] Support non-FullMember gateway devices
[xsigo] Add support for Xsigo virtual Ethernet (XVE) EoIB devices
[efi] Work around broken GetFontInfo() implementations
[tls] Avoid potential out-of-bound reads in length fields
[crypto] Allow for zero-length ASN.1 cursors
[pixbuf] Check for unsigned integer overflow on multiplication
[arp] Validate length of ARP packet
[librm] Do not unconditionally preserve flags across virt_call()
[linda] Use standard readq() and writeq() implementations
[qib7322] Use standard readq() and writeq() implementations
[test] Add missing #include <string.h>
[serial] Add missing #include <string.h>
[3c595] Fix compilation when "char" is unsigned by default
[tg3] Remove x86-specific inline assembly
[efi] Centralise architecture-independent EFI Makefile and linker script
[build] Allow assembler section type character to vary by architecture
[build] Accept CROSS= as a synonym for CROSS_COMPILE=
[efi] Update to current EDK2 headers
[efi] Add processor binding headers for ARM and AArch64
[uri] Support URIs containing only scheme and path components
[uri] Support "file:" URIs describing relative paths
[efi] Provide access to files stored on EFI filesystems
[build] Remove long-obsolete header file
[pseudobit] Rename bitops.h to pseudobit.h
[bitops] Add generic atomic bit test, set, and clear functions
[hyperv] Use generic set_bit() function
[xen] Use generic test_and_clear_bit() function
[test] Move i386-specific tests to arch/i386/tests
[efi] Move architecture-independent EFI prefixes to interface/efi
[libc] Allow container_of() to be used on volatile pointers
[ipoib] Allow external code to identify IPoIB network devices
[hermon] Add missing iounmap()
[arbel] Add missing iounmap()
[linda] Add missing iounmap()
[qib7322] Add missing iounmap()
[crypto] Allow trusted certificates to be stored in non-volatile options
[hermon] Allocate space for GRH on UD queue pairs
[arbel] Allocate space for GRH on UD queue pairs
[infiniband] Allow drivers to override the eIPoIB LEMAC
[build] Do not use "objcopy -O binary" for objects with relocation records
[gdb] Add support for x86_64
[int13] Allow drive to be hooked using the natural drive number
[int13] Allow default drive to be specified via "san-drive" setting
[3c5x9] Avoid use of sleep() in driver code
[etherfabric] Avoid use of sleep() in driver code
[hermon] Fix received packet length
[arbel] Fix received packet length
[libc] Make sleep() interruptible
[pxe] Implicitly open network device in PXENV_UDP_OPEN
[prefix] Use CRC32 to verify each block prior to decompression
[crypto] Allow cross-certificate source to be configured at build time
[iscsi] Include DHCP server address in iBFT
[netdevice] Return ENOENT for an unknown bus type
[linda] Validate payload length
[qib7322] Validate payload length
[test] Update snprintf_ok() to use okx()
[libc] Print "<NULL>" for wide-character NULL strings
[efi] Work around broken EFI HII specification
[comboot] Support COMBOOT in 64-bit builds
[ethernet] Make LACP support configurable at build time
[libc] Allow CPU architectures to use unoptimised string functions
[libgcc] Provide symbol to handle gcc's implicit calls to memset()
[image] Skip misleading "format not recognised" error message
[librm] Reduce real-mode stack consumption in virt_call()
[tg3] Fix _tg3_flag() for 64-bit builds
[librm] Preserve FPU, MMX and SSE state across calls to virt_call()
[efi] Eliminate use of libbfd
[build] Remove unnecessary dependency on zlib
[tcpip] Do not fall back to using unoptimised TCP/IP checksumming
[efi] Use a timer event to generate the currticks() timer
[efi] Generalise EFI entropy generation to non-x86 CPUs
[sis190] Fix building with GCC 6
[skge] Fix building with GCC 6
[golan] Fix building with GCC 6
[ath] Fix building with GCC 6
[legacy] Fix building with GCC 6
[libgcc] Provide __divmoddi4()
[bitops] Fix typo in test case
[arm] Add support for 32-bit ARM
[arm] Avoid instruction references to symbols defined via ".equ"
[arm] Split out 32-bit-specific code to arch/arm32
[arm] Add support for 64-bit ARM (Aarch64)
[efi] Allow for building with older versions of elf.h system header
[libc] Avoid implicit assumptions about potentially-optimised memcpy()
[arm] Add optimised string functions for 64-bit ARM
[arm] Add optimised TCP/IP checksumming for 64-bit ARM
[efi] Guard against GetStatus() failing to return a NULL TX buffer
[arm] Use CNTVCT_EL0 as profiling timestamp
[undi] Work around broken HP EliteBook 745 G3 PXE ROM
[pci] Add support for PCI Enhanced Allocation
[settings] Extend numerical setting tags to "unsigned long"
[netdevice] Fix failure path in register_netdev()
[lotest] Add option to use broadcast packets for loopback testing
[http] Ignore unrecognised "Connection" header tokens
[efi] Work around broken UEFI keyboard drivers
[axge] Add driver for ASIX 10/100/1000 USB Ethernet NICs
[arm] Use correct DHCP client architecture values
[dhcp] Fix definitions for x86_64 and EFI BC client architectures
[efi] Expose DHCP packets via the Apple NetBoot protocol
[libc] Always use a non-zero seed for the (non-crypto) RNG
[pci] Support systems with multiple PCI root bridges
[http] Accept headers with no whitespace following the colon
[tcp] Send TCP keepalives on idle established connections
[time] Allow system clock to be adjusted at runtime
[ntp] Add simple NTP client
[cmdline] Add "ntp" command
[thunderx] Add driver for Cavium ThunderX SoC NICs
[thunderx] Fix channel configuration for VNICs 1-7
[efi] Include VLAN in SNP device path if applicable
[thunderx] Retrieve base MAC address via EFI_THUNDER_CONFIG_PROTOCOL
[smsc75xx] Allow up to 100ms for reset to complete
[efi] Report failures to stop the EFI timer tick event
[efi] Do not copy garbage bytes into SNP device path MAC address
[thunderx] Fix compilation with older versions of gcc
Mika Tiainen (1):
[intel] Add INTEL_NO_PHY_RST for another I218-LM variant
Suresh Sundriyal (1):
[pool] Fix check for reopenable pooled connections
Torgeir Wulfsberg (1):
[intel] Add INTEL_NO_PHY_RST for I217-LM
Vinson Lee (2):
[mucurses] Fix GCC 6 nonnull-compare errors
[build] Remove nested "my" declaration
Wissam Shoukair (3):
[golan] Add Connect-IB, ConnectX-4 and ConnectX-4 Lx (Infiniband) support
[mlx_icmd] Fix compilation error in GCC versions newer than 4.6.4
[golan] Add missing iounmap()
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Currently outstanding patches for spapr, target-ppc and related
devices. This batch has:
* Significant new progress towards full support for hypervisor
mode
* Assorted bugfixes
* Some preliminary patches towards dynamic DMA window support
The last involves a change to memory.c, which Paolo has said I can
take through this tree.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1
iQIcBAABAgAGBQJXa3gJAAoJEGw4ysog2bOSzRQQAI0K+F2CoKuiGJ3csr40edlA
rDvHJd0a3DvF5ez8YBY9iiG2nXaphz7LrsfkFUQ/UmqlIpVLNdJaJ8l/RnjwrVnP
coJ9sFkzzARQF39BybGYPOVMalgi/MhnN/+zm87JaSD+C7gihG+ghYR4sgLHWalb
xWDFLnZVg3uTC1IQzS14NMjqswQN1O0d9wyfYjBogAAEvP4daGKVTQCgpoVwGaXw
JNE4Sm1vVIqJtiYr48V4cNVQWodpTMoHdVPJ6LPXWBlJMd3K5BEy3QsFc+jra+kG
Uj8dayNJwu4CjIwDWz4kpL/H0XtLNxfC2/6n1khc53OEnG5SzrgN80yJBvAKzU5S
KDQemwyOd3R2YTItkHR++QhLqHVx39Hr3BsFGXGyugAaczD7v4NLx87xmMEQOyQB
ai+B4EpQqS/lEOCxyf7nRzgRxA5uB2My9L31peWt862G/LH+UixMWn7CwKW4aKul
CuV4kqVdVQHrWe966HNYnDwfGpmaEXF9W5uLu7GenhFtW6R6IRhT1oORiyqHRfEi
9lTVx/vvHK2U3Ie3RCu3ZYuSbwDhP482J8ysfSo1iCkbSXHwNNACkLQmh0s/WmOs
X2erIOUAja/Ku2DyZ6bXngXN/W/JR6Hw1IpEMeo6LxeK8VIm7F8PkCgrJCg88EEp
ZFxGGYkc3HqksgJy1tuV
=Da1O
-----END PGP SIGNATURE-----
Merge remote-tracking branch 'remotes/dgibson/tags/ppc-for-2.7-20160623' into staging
ppc patch queue for 2016-06-23
Currently outstanding patches for spapr, target-ppc and related
devices. This batch has:
* Significant new progress towards full support for hypervisor
mode
* Assorted bugfixes
* Some preliminary patches towards dynamic DMA window support
The last involves a change to memory.c, which Paolo has said I can
take through this tree.
# gpg: Signature made Thu 23 Jun 2016 06:47:53 BST
# gpg: using RSA key 0x6C38CACA20D9B392
# gpg: Good signature from "David Gibson <david@gibson.dropbear.id.au>"
# gpg: aka "David Gibson (Red Hat) <dgibson@redhat.com>"
# gpg: aka "David Gibson (ozlabs.org) <dgibson@ozlabs.org>"
# gpg: WARNING: This key is not certified with sufficiently trusted signatures!
# gpg: It is not certain that the signature belongs to the owner.
# Primary key fingerprint: 75F4 6586 AE61 A66C C44E 87DC 6C38 CACA 20D9 B392
* remotes/dgibson/tags/ppc-for-2.7-20160623:
ppc: Disable huge page support if it is not available for main RAM
ppc: Add P7/P8 Power Management instructions
ppc: Move exception generation code out of line
ppc: Turn a bunch of booleans from int to bool
ppc: Add real mode CI load/store instructions for P7 and P8
ppc: Rework generation of priv and inval interrupts
ppc: Fix generation if ISI/DSI vs. HV mode
ppc: Fix POWER7 and POWER8 exception definitions
ppc: fix exception model for HV mode
ppc: define a default LPCR value
ppc: Fix rfi/rfid/hrfi/... emulation
memory: Add reporting of supported page sizes
ppc: Improve emulation of THRM registers
target-ppc: Fix rlwimi, rlwinm, rlwnm again
ppc64: disable gen_pause() for linux-user mode
tests: Use '+=' to add additional tests, not '='
powerpc/mm: Update the WIMG check during H_ENTER
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
On powerpc, we must only signal huge page support to the guest if
all memory areas are capable of supporting huge pages. The commit
2d103aae87 ("fix hugepage support when using memory-backend-file")
already fixed the case when the user specified the mem-path property
for NUMA memory nodes instead of using the global "-mem-path" option.
However, there is one more case where it currently can go wrong.
When specifying additional memory DIMMs without using NUMA, e.g.
qemu-system-ppc64 -enable-kvm ... -m 1G,slots=2,maxmem=2G \
-device pc-dimm,id=dimm-mem1,memdev=mem1 -object \
memory-backend-file,policy=default,mem-path=/...,size=1G,id=mem1
the code in getrampagesize() currently assumes that huge pages
are possible since they are enabled for the mem1 object. But
since the main RAM is not backed by a huge page filesystem,
the guest Linux kernel then crashes very quickly after being
started. So in case the we've got "normal" memory without NUMA
and without the global "-mem-path" option, we must not announce
huge pages to the guest. Since this is likely a mis-configuration
by the user, also spill out a message in this case.
Signed-off-by: Thomas Huth <thuth@redhat.com>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
This adds the ISA 2.06 and later power management instructions
(doze, nap, sleep and rvwinkle) and associated wakeup cause testing
in LPCR
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
[clg: fixed checkpatch.pl errors ]
Signed-off-by: Cédric Le Goater <clg@kaod.org>
Reviewed-by: David Gibson <david@gibson.dropbear.id.au>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
There's no point inlining this, if you hit the exception case you exit
anyway, and not inlining saves about 100K of code size (and cache
footprint).
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
[clg: removed '__attribute__((noinline))' from original patch ]
Signed-off-by: Cédric Le Goater <clg@kaod.org>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Reviewed-by: David Gibson <david@gibson.dropbear.id.au>
Signed-off-by: Cédric Le Goater <clg@kaod.org>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Those instructions are only available in hypervisor real mode and
allow cache inhibited garded access to devices in that mode.
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
[clg: fixed checkpatch.pl errors ]
Signed-off-by: Cédric Le Goater <clg@kaod.org>
Reviewed-by: David Gibson <david@gibson.dropbear.id.au>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Recent server processors use the Hypervisor Emulation Assistance
interrupt for illegal instructions and *some* type of SPR accesses.
Also the code was always generating inval instructions even for priv
violations due to setting the wrong flags
Finally, the checking for PR/HV was open coded everywhere.
This reworks it all, using little helper macros for checking, and
adding the HV interrupt (which gets converted back to program check
in the slow path of excp_helper.c on CPUs that don't want it).
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
[clg: fixed checkpatch.pl errors ]
Signed-off-by: Cédric Le Goater <clg@kaod.org>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Under some circumstances, we need to direct ISI and DSI interrupts
at the hypervisor, turning them into HISI/HDSI, and using different
SPRs (HDSISR and HDAR) depending on the combination of MSR_DR and
the corresponding VPM bits in LPCR.
This moves part of the code into helpers that are fixed to select
the right exception type and registers. On pre-P7 processors, LPCR
is 0 which provides the old behaviour of directing the interrupts
at the supervisor.
Thanks to Andrei Warkentin for finding a bug when HV=1
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Reviewed-by: David Gibson <david@gibson.dropbear.id.au>
[clg: Merged a fix on POWERPC_EXCP_HDSI fixing the condition on
msr_hv, from Andrei Warkentin <andrey.warkentin@gmail.com> ]
Signed-off-by: Cédric Le Goater <clg@kaod.org>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
We were initializing unused ones and missing some
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Reviewed-by: David Gibson <david@gibson.dropbear.id.au>
[clg: fixed checkpatch.pl errors ]
Signed-off-by: Cédric Le Goater <clg@kaod.org>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
This properly implements LPES0 handling for HV vs. !HV mode and
removes the unsupported LPES1. This has been removed from the specs
since ISA v2.07.
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
[clg: AIL implementation was fixed in commit 5c94b2a5e5. This patch
only contains the bits of the original patch related to LPES0
handling, adapted commit log.
fixed checkpatch.pl errors. ]
Signed-off-by: Cédric Le Goater <clg@kaod.org>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
This allows us to set the appropriate LPCR bits which will be used
when fixing the exception model for the HV mode.
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Reviewed-by: David Gibson <david@gibson.dropbear.id.au>
[clg: previous commit 26a7f1291b did not include the LPCR setting as
it was not needed at the time, adapted commit log ]
Signed-off-by: Cédric Le Goater <clg@kaod.org>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
This reworks emulation of the various "rfi" variants. I removed
some masking bits that I couldn't make sense of, the only bit that
I am aware we should mask here is POW, the CPU's MSR mask should
take care of the rest.
This also fixes some problems when running 32-bit userspace under
a 64-bit kernel.
This patch broke 32bit OpenBIOS when run under a 970 cpu. A fix was
proposed here :
https://www.coreboot.org/pipermail/openbios/2016-June/009452.html
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Reviewed-by: David Gibson <david@gibson.dropbear.id.au>
[clg: updated the commit log with the reference of the openbios fix ]
Signed-off-by: Cédric Le Goater <clg@kaod.org>
[dwg: Remove hunk which disabled rfi on 64-bit CPUS. The change was
correct, but we need to fix OpenBIOS before applying it]
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Make attached property settable and turns off auto-attach in case the
device was hotplugged. Hotplugging works simliar to usb-bot now.
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Reviewed-by: Markus Armbruster <armbru@redhat.com>
Message-id: 1465984019-28963-6-git-send-email-kraxel@redhat.com
This patch marks usb-bot as hot-pluggable device, makes attached
property settable and turns off auto-attach in case the device
was hotplugged.
Hot-plugging a usb-bot device with one or more scsi devices can be
done this way now:
(1) device-add usb-bot,id=foo
(2) device-add scsi-{hd,cd},bus=foo.0,lun=0
(2b) optionally add more devices (luns 0 ... 15).
(3) qom-set foo.attached = true
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Reviewed-by: Markus Armbruster <armbru@redhat.com>
Message-id: 1465984019-28963-5-git-send-email-kraxel@redhat.com
USB devices in attached state are visible to the guest. This patch adds
a QOM property for this. Write access is opt-in per device. Some
devices manage attached state automatically (usb-host, usb-serial,
usb-redir), so we can't enable write access universally but have to do
it on a case by case base. So far, no device opts in.
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Reviewed-by: Markus Armbruster <armbru@redhat.com>
Message-id: 1465984019-28963-4-git-send-email-kraxel@redhat.com
[ minor codestyle fix ]
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Commit 9432e53a5b added xen_sysdev as a
system device to serve as an anchor for removable virtual buses. This
introduced a build failure for non-x86 builds with CONFIG_XEN_BACKEND
set, as xen_sysdev was defined in a x86 specific file while being
consumed in an architecture independent source.
Move the xen_sysdev definition and initialization to xen_backend.c to
avoid the build failure.
Signed-off-by: Juergen Gross <jgross@suse.com>
Reviewed-by: Anthony PERARD <anthony.perard@citrix.com>
Acked-by: Stefano Stabellini <sstabellini@kernel.org>
Signed-off-by: Stefano Stabellini <sstabellini@kernel.org>
In case the word size of the domU and qemu running the qdisk backend
differ BLKIF_OP_DISCARD will not work reliably, as the request
structure in the ring have different layouts for different word size.
Correct this by copying the request structure in case of different
word size element by element in the BLKIF_OP_DISCARD case, too.
Signed-off-by: Juergen Gross <jgross@suse.com>
Acked-by: Stefano Stabellini <sstabellini@kernel.org>
Signed-off-by: Stefano Stabellini <sstabellini@kernel.org>
Every IOMMU has some granularity which MemoryRegionIOMMUOps::translate
uses when translating, however this information is not available outside
the translate context for various checks.
This adds a get_min_page_size callback to MemoryRegionIOMMUOps and
a wrapper for it so IOMMU users (such as VFIO) can know the minimum
actual page size supported by an IOMMU.
As IOMMU MR represents a guest IOMMU, this uses TARGET_PAGE_SIZE
as fallback.
This removes vfio_container_granularity() and uses new helper in
memory_region_iommu_replay() when replaying IOMMU mappings on added
IOMMU memory region.
Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>
Reviewed-by: David Gibson <david@gibson.dropbear.id.au>
Acked-by: Alex Williamson <alex.williamson@redhat.com>
[dwg: Removed an unnecessary calculation]
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
The 75x and 74xx processors have some thermal monitoring SPRs that
some OSes such as MacOS do use. Our current "dumb" implementation
isn't good enough and will cause some versions of MacOS to hang during
boot.
This lifts an improved emulation from MacOnLinux and adapts it to
qemu, thus fixing the problem.
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
[dwg: Fixed typo in comment, a number of minor checkpatch warnings,
and a compile failure with CONFIG_USER_ONLY]
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
In 63ae0915f8, I arranged to use a 32-bit rotate, without
considering the effect of a mask value that wraps around to
the high bits of the word.
[dwg: In 2e11b15 this was partially fixed, but an edge case was still
incorrect, which this fixes]
Signed-off-by: Richard Henderson <rth@twiddle.net>
[dwg: Folded with a revert of 2e11b15, an earlier buggy version of
this patch which already went upstream]
Tested-by: Anton Blanchard <anton@samba.org>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
While trying to install a fedora container with
"lxc-create -t fedora -- -I qemu-ppc64" the installation abort with
the following error:
qemu: fatal: Unknown exception 0x65537. Aborting
NIP 0000004000927924 LR 00000040009e325c CTR 0000004000927480 XER 0000000000000000 CPU#0
MSR 9000000102806000 HID0 0000000000000000 HF 9000000002806000 iidx 3 didx 3
TB 00248932 1069155773327487
GPR00 00000040009e325c 00000040007ff800 0000004000aba098 0000000000000000
GPR04 00000040007ff878 0000004000dcb588 0000004000dcb830 0000004000a7a098
GPR08 0000000000000000 0000000000000000 00000040007ff878 0000004000927960
GPR12 0000000022022448 0000004000e2aef0 0000000000000000 0000000000000000
GPR16 0000000000000000 0000000000000000 0000000000000002 0000000000000001
GPR20 0000000000000000 0000000000000000 0000000000000000 0000004000800699
GPR24 0000004000e13320 0000000000000000 0000004000ac9ad8 0000004000ac9ae0
GPR28 0000000000000001 00000000100210a0 0000000000000000 0000000000000038
CR 22022442 [ E E - E E G G E ] RES ffffffffffffffff
FPR00 0000000000000000 0000000000000000 0000000000000000 0000000000000000
FPR04 0000000000000000 0000000000000000 0000000000000000 0000000000000000
FPR08 0000000000000000 0000000000000000 0000000000000000 0000000000000000
FPR12 0000000000000000 0000000000000000 0000000000000000 0000000000000000
FPR16 0000000000000000 0000000000000000 0000000000000000 0000000000000000
FPR20 0000000000000000 0000000000000000 0000000000000000 0000000000000000
FPR24 0000000000000000 0000000000000000 0000000000000000 0000000000000000
FPR28 0000000000000000 0000000000000000 0000000000000000 0000000000000000
FPSCR 0000000000000000
/usr/share/lxc/templates/lxc-fedora: line 487: 26661 Aborted (core dumped) chroot . yum -y --nogpgcheck --installroot /run/install install python rpm yum
I've bisected until the commit:
commit b68e60e6f0
Author: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Date: Tue May 3 18:03:33 2016 +0200
ppc: Get out of emulation on SMT "OR" ops
Otherwise tight loops at smt_low for example, which OPAL does,
eat so much CPU that we can't boot a kernel anymore. With that,
I can boot 8 CPUs just fine with powernv.
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Reviewed-by: David Gibson <david@gibson.dropbear.id.au>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
We can fix that by preventing to send EXCP_HLT in the case of linux-user mode,
as the main loop doesn't know how to manage it.
Signed-off-by: Laurent Vivier <laurent@vivier.eu>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
The recent commit that added the prom-env-test accidentially
overwrote the check-qtest-ppc-y, check-qtest-ppc64-y and
check-qtest-sparc-y variables instead of extending them.
Fixes: fcbf4a3c0c
Signed-off-by: Thomas Huth <thuth@redhat.com>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Support for 0 value for memeory coherence is optional and with ppc64
we can always enable memory coherence. Linux kernel did that during
the development of 4.7 kernel. But that resulted in failure in Qemu
in H_ENTER hcall due to below check. The mentioned change was reverted
in the kernel and kernel right now enable memory coherence only if
cache inhibited is not set. Nevertheless update qemu WIMG flag check
to cover the case where we enable memory coherence along with cache
inhibited flag.
In order to handle older and newer kernel version consider both Cache
inhibitted and (cache inhibitted | memory conference) as valid values
for wimg flags.
Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Version: GnuPG v1
iQEcBAABAgAGBQJXaFInAAoJEJykq7OBq3PI6VsH/0Sfgbdo1RksYuQwb/y92sCW
EN+lxUZ+OLfgrc8PYgNZwfSM3rsfYhznL0MAXOeEe7Ahabi07w7DhGR8WvwfAOlI
G96FRuvrIPfv5u6U6fwS4CvG3TIHVLxfHKCsTpPUmH8U5CNx/x/tpjNiWN1dj6t+
sXybSjYHfZfiZy2tI9MFIFWCdxnF/pl0QAPhbRqc8Y/RQTDrPKRjLpz+nitN/u96
5TS7KlELyQuP91YMmLceYSmIkHbxW703h+iE2n4hov0uZCP8Jil+2Jsd3ziQSRlL
j6LqexQ2ViBGdDSfiZGYES2VPlsHOCwb4G+IgWBStfZg1ppaXENvcDzPrgrB+L4=
=eUnF
-----END PGP SIGNATURE-----
Merge remote-tracking branch 'remotes/stefanha/tags/tracing-pull-request' into staging
# gpg: Signature made Mon 20 Jun 2016 21:29:27 BST
# gpg: using RSA key 0x9CA4ABB381AB73C8
# gpg: Good signature from "Stefan Hajnoczi <stefanha@redhat.com>"
# gpg: aka "Stefan Hajnoczi <stefanha@gmail.com>"
# Primary key fingerprint: 8695 A8BF D3F9 7CDA AC35 775A 9CA4 ABB3 81AB 73C8
* remotes/stefanha/tags/tracing-pull-request: (42 commits)
trace: split out trace events for linux-user/ directory
trace: split out trace events for qom/ directory
trace: split out trace events for target-ppc/ directory
trace: split out trace events for target-s390x/ directory
trace: split out trace events for target-sparc/ directory
trace: split out trace events for net/ directory
trace: split out trace events for audio/ directory
trace: split out trace events for ui/ directory
trace: split out trace events for hw/alpha/ directory
trace: split out trace events for hw/arm/ directory
trace: split out trace events for hw/acpi/ directory
trace: split out trace events for hw/vfio/ directory
trace: split out trace events for hw/s390x/ directory
trace: split out trace events for hw/pci/ directory
trace: split out trace events for hw/ppc/ directory
trace: split out trace events for hw/9pfs/ directory
trace: split out trace events for hw/i386/ directory
trace: split out trace events for hw/isa/ directory
trace: split out trace events for hw/sd/ directory
trace: split out trace events for hw/sparc/ directory
...
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Blue is no longer active in the QEMU project, so remove him from the list of
SPARC maintainers.
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
CC: Blue Swirl <blauwirbel@gmail.com>
Artyom has been working on QEMU's SPARC emulation for several years, providing
initial support for Solaris under qemu-system-sparc and more recently bugfixes
for qemu-system-sparc64 and TCG patch reviews. As work progresses on improving
emulation for sun4u machines and beyond, Artyom has agreed to take on
co-maintainership of SPARC with a focus on 64-bit architecture.
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
Acked-by: Artyom Tarasenko <atar4qemu@gmail.com>
Move all trace-events for files in the linux-user/ directory to
their own file.
Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
Reviewed-by: Laurent Vivier <laurent@vivier.eu>
Message-id: 1466066426-16657-41-git-send-email-berrange@redhat.com
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Move all trace-events for files in the qom/ directory to
their own file.
Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
Message-id: 1466066426-16657-40-git-send-email-berrange@redhat.com
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Move all trace-events for files in the target-ppc/ directory to
their own file.
Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
Reviewed-by: Thomas Huth <thuth@redhat.com>
Message-id: 1466066426-16657-39-git-send-email-berrange@redhat.com
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Move all trace-events for files in the target-s390x/ directory to
their own file.
[Added missing newline in target-s390x/trace-events as suggested by
Cornelia Huck <cornelia.huck@de.ibm.com>.
--Stefan]
Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
Acked-by: Cornelia Huck <cornelia.huck@de.ibm.com>
Message-id: 1466066426-16657-38-git-send-email-berrange@redhat.com
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Move all trace-events for files in the target-sparc/ directory to
their own file.
Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
Message-id: 1466066426-16657-37-git-send-email-berrange@redhat.com
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Move all trace-events for files in the net/ directory to
their own file.
Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
Message-id: 1466066426-16657-36-git-send-email-berrange@redhat.com
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Move all trace-events for files in the audio/ directory to
their own file.
Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
Message-id: 1466066426-16657-35-git-send-email-berrange@redhat.com
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Move all trace-events for files in the ui/ directory to
their own file.
Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
Message-id: 1466066426-16657-34-git-send-email-berrange@redhat.com
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Move all trace-events for files in the hw/alpha/ directory to
their own file.
Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
Message-id: 1466066426-16657-33-git-send-email-berrange@redhat.com
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Move all trace-events for files in the hw/arm/ directory to
their own file.
Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
Message-id: 1466066426-16657-32-git-send-email-berrange@redhat.com
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Move all trace-events for files in the hw/acpi/ directory to
their own file.
Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
Message-id: 1466066426-16657-31-git-send-email-berrange@redhat.com
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>