1. 22 Feb, 2017 1 commit
    • Naveen N. Rao's avatar
      powerpc/optprobes: Fix TOC handling in optprobes trampoline · f558b37b
      Naveen N. Rao authored
      Optprobes on powerpc are limited to kernel text area. We decided to also
      optimize kretprobe_trampoline since that is also in kernel text area.
      However,we failed to take into consideration the fact that the same
      trampoline is also used to catch function returns from kernel modules.
      As an example:
      
        $ sudo modprobe kobject-example
        $ sudo bash -c "echo 'r foo_show+8' > /sys/kernel/debug/tracing/kprobe_events"
        $ sudo bash -c "echo 1 > /sys/kernel/debug/tracing/events/kprobes/enable"
        $ sudo cat /sys/kernel/debug/kprobes/list
        c000000000041350  k  kretprobe_trampoline+0x0    [OPTIMIZED]
        d000000000e00200  r  foo_show+0x8  kobject_example
        $ cat /sys/kernel/kobject_example/foo
        Segmentation fault
      
      With the below (trimmed) splat in dmesg:
      
        Unable to handle kernel paging request for data at address 0xfec40000
        Faulting instruction address: 0xc000000000041540
        Oops: Kernel access of bad area, sig: 11 [#1]
        ...
        NIP [c000000000041540] optimized_callback+0x70/0xe0
        LR [c000000000041e60] optinsn_slot+0xf8/0x10000
        Call Trace:
        [c0000000c7327850] [c000000000289af4] alloc_set_pte+0x1c4/0x860 (unreliable)
        [c0000000c7327890] [c000000000041e60] optinsn_slot+0xf8/0x10000
        --- interrupt: 700 at 0xc0000000c7327a80
      	       LR = kretprobe_trampoline+0x0/0x10
        [c0000000c7327ba0] [c0000000003a30d4] sysfs_kf_seq_show+0x104/0x1d0
        [c0000000c7327bf0] [c0000000003a0bb4] kernfs_seq_show+0x44/0x60
        [c0000000c7327c10] [c000000000330578] seq_read+0xf8/0x560
        [c0000000c7327cb0] [c0000000003a1e64] kernfs_fop_read+0x194/0x260
        [c0000000c7327d00] [c0000000002f9954] __vfs_read+0x44/0x1a0
        [c0000000c7327d90] [c0000000002fb4cc] vfs_read+0xbc/0x1b0
        [c0000000c7327de0] [c0000000002fd138] SyS_read+0x68/0x110
        [c0000000c7327e30] [c00000000000b8e0] system_call+0x38/0xfc
      
      Fix this by loading up the kernel TOC before calling into the kernel.
      The original TOC gets restored as part of the usual pt_regs restore.
      
      Fixes: 762df10b ("powerpc/kprobes: Optimize kprobe in kretprobe_trampoline()")
      Signed-off-by: default avatarNaveen N. Rao <naveen.n.rao@linux.vnet.ibm.com>
      Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
      f558b37b
  2. 21 Feb, 2017 4 commits
    • Michael Roth's avatar
      powerpc/pseries: Advertise Hot Plug Event support to firmware · 3dbbaf20
      Michael Roth authored
      With the inclusion of commit 333f7b76 ("powerpc/pseries: Implement
      indexed-count hotplug memory add") and commit 75384347
      ("powerpc/pseries: Implement indexed-count hotplug memory remove"), we
      now have complete handling of the RTAS hotplug event format as described
      by PAPR via ACR "PAPR Changes for Hotplug RTAS Events".
      
      This capability is indicated by byte 6, bit 2 (5 in IBM numbering) of
      architecture option vector 5, and allows for greater control over
      cpu/memory/pci hot plug/unplug operations.
      
      Existing pseries kernels will utilize this capability based on the
      existence of the /event-sources/hot-plug-events DT property, so we
      only need to advertise it via CAS and do not need a corresponding
      FW_FEATURE_* value to test for.
      Signed-off-by: default avatarMichael Roth <mdroth@linux.vnet.ibm.com>
      Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
      3dbbaf20
    • Andrew Donnellan's avatar
      cxl: fix nested locking hang during EEH hotplug · 171ed0fc
      Andrew Donnellan authored
      Commit 14a3ae34 ("cxl: Prevent read/write to AFU config space while AFU
      not configured") introduced a rwsem to fix an invalid memory access that
      occurred when someone attempts to access the config space of an AFU on a
      vPHB whilst the AFU is deconfigured, such as during EEH recovery.
      
      It turns out that it's possible to run into a nested locking issue when EEH
      recovery fails and a full device hotplug is required.
      cxl_pci_error_detected() deconfigures the AFU, taking a writer lock on
      configured_rwsem. When EEH recovery fails, the EEH code calls
      pci_hp_remove_devices() to remove the device, which in turn calls
      cxl_remove() -> cxl_pci_remove_afu() -> pci_deconfigure_afu(), which tries
      to grab the writer lock that's already held.
      
      Standard rwsem semantics don't express what we really want to do here and
      don't allow for nested locking. Fix this by replacing the rwsem with an
      atomic_t which we can control more finely. Allow the AFU to be locked
      multiple times so long as there are no readers.
      
      Fixes: 14a3ae34 ("cxl: Prevent read/write to AFU config space while AFU not configured")
      Cc: stable@vger.kernel.org # v4.9+
      Signed-off-by: default avatarAndrew Donnellan <andrew.donnellan@au1.ibm.com>
      Acked-by: default avatarFrederic Barrat <fbarrat@linux.vnet.ibm.com>
      Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
      171ed0fc
    • Douglas Miller's avatar
      powerpc/xmon: Dump memory in CPU endian format · 5e48dc0a
      Douglas Miller authored
      Extend the dump command to allow display of 2, 4, and 8 byte words in
      CPU endian format. Also adds dump command for "1 byte values" for the
      sake of symmetry. New commands are:
      
        d1	dump 1 byte values
        d2	dump 2 byte values
        d4	dump 4 byte values
        d8	dump 8 byte values
      Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
      Signed-off-by: default avatarDouglas Miller <dougmill@linux.vnet.ibm.com>
      Acked-by: default avatarBalbir Singh <bsingharora@gmail.com>
      5e48dc0a
    • Nathan Fontenot's avatar
      powerpc/pseries: Revert 'Auto-online hotplugged memory' · 943db62c
      Nathan Fontenot authored
      This reverts commit ec999072 ("powerpc/pseries: Auto-online
      hotplugged memory"), and 9dc51281 ("powerpc: Fix unused function
      warning 'lmb_to_memblock'").
      
      Using the auto-online acpability does online added memory but does not
      update the associated device struct to indicate that the memory is
      online. This causes the pseries memory DLPAR code to fail when trying to
      remove a LMB that was previously removed and added back. This happens
      when validating that the LMB is removable.
      
      This patch reverts to the previous behavior of calling device_online()
      to online the LMB when it is DLPAR added and moves the lmb_to_memblock()
      routine out of CONFIG_MEMORY_HOTREMOVE now that we call it for add.
      
      Fixes: ec999072 ("powerpc/pseries: Auto-online hotplugged memory")
      Cc: stable@vger.kernel.org # v4.8+
      Signed-off-by: default avatarNathan Fontenot <nfont@linux.vnet.ibm.com>
      Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
      943db62c
  3. 20 Feb, 2017 1 commit
  4. 18 Feb, 2017 2 commits
    • Michael Ellerman's avatar
      Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/scottwood/linux into next · 6c8f9ad5
      Michael Ellerman authored
      Freescale updates from Scott:
      
      "Highlights include 8xx breakpoints and perf, t1042rdb display support,
      and board updates."
      6c8f9ad5
    • Nicholas Piggin's avatar
      powerpc/64: Implement clear_bit_unlock_is_negative_byte() · d11914b2
      Nicholas Piggin authored
      Commit b91e1302 ("mm: optimize PageWaiters bit use for
      unlock_page()") added a special bitop function to speed up
      unlock_page(). Implement this for 64-bit powerpc.
      
      This improves the unlock_page() core code from this:
      
      	li	9,1
      	lwsync
      1:	ldarx	10,0,3,0
      	andc	10,10,9
      	stdcx.	10,0,3
      	bne-	1b
      	ori	2,2,0
      	ld	9,0(3)
      	andi.	10,9,0x80
      	beqlr
      	li	4,0
      	b	wake_up_page_bit
      
      To this:
      
      	li	10,1
      	lwsync
      1:	ldarx	9,0,3,0
      	andc	9,9,10
      	stdcx.	9,0,3
      	bne-	1b
      	andi.	10,9,0x80
      	beqlr
      	li	4,0
      	b	wake_up_page_bit
      
      In a test of elapsed time for dd writing into 16GB of already-dirty
      pagecache on a POWER8 with 4K pages, which has one unlock_page per 4kB
      this patch reduced overhead by 1.1%:
      
          N           Min           Max        Median           Avg        Stddev
      x  19         2.578         2.619         2.594         2.595         0.011
      +  19         2.552         2.592         2.564         2.565         0.008
      Difference at 95.0% confidence
      	-0.030  +/- 0.006
      	-1.142% +/- 0.243%
      Signed-off-by: default avatarNicholas Piggin <npiggin@gmail.com>
      [mpe: Made 64-bit only until I can test it properly on 32-bit]
      Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
      d11914b2
  5. 17 Feb, 2017 17 commits
  6. 16 Feb, 2017 4 commits
  7. 15 Feb, 2017 11 commits
    • Rashmica Gupta's avatar
      powerpc/asm: Define STACK_PT_REGS_OFFSET macro in asm-offsets.c · 10d4cf18
      Rashmica Gupta authored
      There are quite a few entries in asm-offests.c which look like:
      
        DEFINE(REG, STACK_FRAME_OVERHEAD+offsetof(struct pt_regs, reg));
      
      So define a macro to do it once.
      Signed-off-by: default avatarRashmica Gupta <rashmicy@gmail.com>
      [mpe: Rename to STACK_PT_REGS_OFFSET for excruciating explicitness]
      Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
      10d4cf18
    • Rashmica Gupta's avatar
      powerpc/asm: Use OFFSET macro in asm-offsets.c · 45465615
      Rashmica Gupta authored
      A lot of entries in asm-offests.c look like this:
      
        DEFINE(TI_FLAGS, offsetof(struct thread_info, flags));
      
      But there is a common macro, OFFSET, which makes this cleaner:
      
        OFFSET(TI_flags, thread_info, flags)
      
      So use it.
      Signed-off-by: default avatarRashmica Gupta <rashmicy@gmail.com>
      Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
      45465615
    • Al Viro's avatar
      powerpc/spufs: Get rid of broken fasync stuff · 7d7be3aa
      Al Viro authored
      In all the years it's been in the tree it had never been used by
      anything - it would instantly trigger BUG_ON() in fs/fcntl.c due to
      bogus band argument (ie. POLLIN not POLL_IN) passed to kill_fasync().
      Since nobody had ever used it in ten years, let's just rip it out and be
      done with that.
      Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      Acked-by: default avatarArnd Bergmann <arnd@arndb.de>
      Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
      7d7be3aa
    • Michael Ellerman's avatar
      powerpc/64e: Fix bogus usage of WARN_ONCE() · 0d2b5cdc
      Michael Ellerman authored
      WARN_ONCE() takes a condition and a format string. We were passing a
      constant string as the condition, and the function name as the format
      string. It would work, but the message would be just the function name.
      
      Fix it by just using WARN_ONCE() directly instead of if (x) WARN_ONCE().
      Noticed-by: default avatarGeliang Tang <geliangtang@163.com>
      Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
      0d2b5cdc
    • Gavin Shan's avatar
      drivers/pci/hotplug: Mask PDC interrupt if required · 454593e5
      Gavin Shan authored
      We're supporting surprise hotplug on PCI slots behind root port
      or PCIe switch downstream ports, which don't claim the capability
      in hardware register (offset: PCIe cap + PCI_EXP_SLTCAP). PEX8718
      is one of the examples. For those PCI slots, the PDC (Presence
      Detection Change) event isn't reliable and the underly (skiboot)
      firmware has best judgement.
      
      This masks the PDC event when skiboot requests by "ibm,slot-broken-pdc"
      property in PCI slot's device-tree node.
      Reported-by: default avatarHank Chang <hankmax0000@gmail.com>
      Signed-off-by: default avatarGavin Shan <gwshan@linux.vnet.ibm.com>
      Tested-by: default avatarWillie Liauw <williel@supermicro.com.tw>
      Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
      454593e5
    • Gavin Shan's avatar
      drivers/pci/hotplug: Fix initial state for empty slot · d0c42497
      Gavin Shan authored
      In PowerNV PCI hotplug driver, the initial PCI slot's state is set
      to PNV_PHP_STATE_POPULATED if no PCI devices are connected to the
      slot. The PCI devices that are hot added to the slot won't be probed
      and populated because of the check in pnv_php_enable():
      
              /* Check if the slot has been configured */
              if (php_slot->state != PNV_PHP_STATE_REGISTERED)
                      return 0;
      
      This fixes the issue by leaving the slot in PNV_PHP_STATE_REGISTERED
      state initially if nothing is connected to the slot.
      
      Fixes: 360aebd8 ("drivers/pci/hotplug: Support surprise hotplug in powernv driver")
      Cc: stable@vger.kernel.org #v4.9+
      Reported-by: default avatarHank Chang <hankmax0000@gmail.com>
      Signed-off-by: default avatarGavin Shan <gwshan@linux.vnet.ibm.com>
      Tested-by: default avatarWillie Liauw <williel@supermicro.com.tw>
      Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
      d0c42497
    • Gavin Shan's avatar
      drivers/pci/hotplug: Handle presence detection change properly · d7d55536
      Gavin Shan authored
      The surprise hotplug is driven by interrupt in PowerNV PCI hotplug
      driver. In the interrupt handler, pnv_php_interrupt(), we bail when
      pnv_pci_get_presence_state() returns zero wrongly. It causes the
      presence change event is always ignored incorrectly.
      
      This fixes the issue by bailing on error (non-zero value) returned
      from pnv_pci_get_presence_state().
      
      Fixes: 360aebd8 ("drivers/pci/hotplug: Support surprise hotplug in powernv driver")
      Cc: stable@vger.kernel.org #v4.9+
      Reported-by: default avatarHank Chang <hankmax0000@gmail.com>
      Signed-off-by: default avatarGavin Shan <gwshan@linux.vnet.ibm.com>
      Tested-by: default avatarWillie Liauw <williel@supermicro.com.tw>
      Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
      d7d55536
    • Balbir Singh's avatar
      powerpc/xmon: Enable disassembly files (compilation changes) · 5b102782
      Balbir Singh authored
      After updating ppc-dis.c, ppc-opc.c and ppc.h the following changes were
      made to enable compilation and working of xmon:
      
        1.  Remove all disassembler_info
        2.  Use xmon's printf/print_address to output data and addresses
            respectively.
        3.  All bfd_* types and casts have been removed.
        4.  Optimizations related to opcd_indices have been removed.
        5.  The dialect is set based on cpu features.
        6.  PPC_OPCODE_CLASSIC is no longer supported in the new
            disassembler.
        7.  VLE opcode parsing and printing has been stripped.
        8.  Coding style conventions used for those routines has
            been retained and it does not match our CodingStyle.
        9.  The highest supported dialect is POWER9.
        10. Defined ATTRIBUTE_UNUSED in ppc-dis.c.
        11. Defined _(x) in ppc-dis.c.
      
      Finally, we remove the dependency on BROKEN so that XMON_DISASSEMBLY can
      be enabled again.
      Signed-off-by: default avatarBalbir Singh <bsingharora@gmail.com>
      Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
      5b102782
    • Balbir Singh's avatar
      powerpc/xmon: Apply binutils changes to upgrade disassembly · 08d96e0b
      Balbir Singh authored
      The following commit-ids from the binutils project were applied on the
      xmon branch and relicensed with the permission of the authors under
      GPLv2 for the following files:
      
        ppc-opc.c
        ppc-dis.c
        ppc.h
      
      Working off of binutils commit 65b650b4c746 we have now moved up to
      binutils commit a5721ba270dd.
      
      Some commit logs have been taken verbatim, some are summarized for ease
      of understanding.
      
      Here is a summary of the commits:
      
       33e8d5ac613d PPC7450 New.  (powerpc_opcodes): Use it in dcba.
       c3d65c1ced61 New opcodes and mask
       8dbcd839b1bb Instruction Sorting
       91eb7075e370 (powerpc_opcodes): Fix the first two operands of dquaiq.
       548b1dcfcbab ppc-opc.c (powerpc_opcodes): Remove the dcffix and dcffix.
       930bb4cfae30 Support optional L form mtmsr.
       de866fccd87d (powerpc_opcodes): Order and format.
       19a6653ce8c6 ppc e500mc support
       fa452fa6833c (ppc_cpu_t): New typedef.
       c8187e1509b2 (parse_cpu): Handle -m464.
       081ba1b3c08b Define. (PPC_OPERAND_FSL, PPC_OPERAND_FCR, PPC_OPERAND_UDI)
       9b4e57660d38 Rename altivec_or_spe to retain_flags. Handle -mvsx and -mpower7.
       899d85beadd0 (powerpc_opcodes): Enable rfci, mfpmr, mtpmr for e300.
       e1c93c699b7d (extract_sprg): Correct operand range check.
       2f3bb96af796 (powerpc_init_dialect): Do not set PPC_OPCODE_BOOKE
       1cb0a7674666 (ppc_setup_opcodes): Remove PPC_OPCODE_NOPOWER4 test
       21169fcfadfa (print_insn_powerpc): Skip insn if it is deprecated
       80890a619b85 ("dcbt", "dcbtst")
       0e55be1624c2 ("lfdepx", "stfdepx")
       066be9f7bd8e (parse_cpu): Extend -mpower7 to accept power7 and isel instructions.
       c72ab5f2c55d (powerpc_opcodes): Reorder the opcode table so that instructions
       69fe9ce501f5 (ppc_parse_cpu): New function. 	(powerpc_init_dialect)
       e401b04ca7cd (powerpc_opcodes) <"dcbzl">: Merge the POWER4 and E500MC entries.
       70dc4e324b9a (powerpc_init_dialect): Do not choose a default dialect due to -many/-Many.
       858d7a6db20b (powerpc_opcodes) <"tlbilxlpid", "tlbilxpid", "tlbilxva", "tlbilx"
       bdc7fcfe59f1 (powerpc_macros <extrdi>): Allow n+b of 64
       e0d602ecffb0 (md_show_usage): Document -mpcca2
       b961e85b6ebe (ppc_cpu_t): Typedef to uint64_t
       8765b5569284 (powerpc_opcodes): Remove support for the the "lxsdux", "lxvd2ux"
       634b50f2a623 Rename "ppca2" to "a2"
       9fe54b1ca1c0 (md_show_usage): Document -m476
       0dc9305793c8 Add bfd_mach_ppc_e500mc64
       ce3d2015b21b Define. bfd/ 	* archures.c (bfd_mach_ppc_titan)
       cdc51b0748c4 Add -mpwr4, -mpwr5, -mpwr5x, -mpwr6 and -mpwr7
       63d0fa4e9e57 Add PPC_OPCODE_E500MC for "e500mc64"
       cee62821d472 New Define. ("dccci"): Enable for PPCA2
       85d4ac0b3c0b Correct wclr encoding.
       51b5d4a8c5e5 (powerpc_opcodes): Enable divdeu, devweu, divde, divwe, divdeuo
       e01d869a3be2 (md_assemble): Emit APUinfo section for PPC_OPCODE_E500
       09a8ad8d8f56 (powerpc_opcodes): Revert deprecation of mfocrf, mtcrf and mtocrf on EFS.
       f2bae120dcef (PPC_OPCODE_COMMON): Expand comment.
       81a0b7e2ae09 (PPCPWR2): Add PPC_OPCODE_COMMON. (powerpc_opcodes): Add "subc"
       bdc70b4a03fd (PPC_OPCODE_32, PPC_OPCODE_BOOKE64, PPC_OPCODE_CLASSIC)
       7102e95e4943 (ppc_set_cpu): Cast PPC_OPCODE_xxx to ppc_cpu_t before inverting
       f383de6633cb (powerpc_opcodes) [lswx,lswi,stswx,stswi]: Deprecate on E500 and E500MC
       6b069ee70de3 Remove PPC_OPCODE_PPCPS
       2f7f77101279 (powerpc_opcodes): Enable icswx for POWER7
       989993d80a97 (insert_nbi, insert_rbx, FRAp, FRBp, FRSp, FRTp, NBI, RAX, RBX)
       a08fc94222d1 <drrndq, drrndq., dtstexq, dctqpq, dctqpq., dctfixq, dctfixq.
       8ebac3aae962 (ISA_V2): Define and use for relevant BO field tests
       aea77599d0db Add PPC_OPCODE_ALTIVEC2, PPC_OPCODE_E6500, PPC_OPCODE_TMR
       b240011aba98 (disassemble_init_for_target): Handle ppc init.
       d668828207c2 (powerpc_opcd_indices): Bump array size
       b9c361e0ad33 Add support for PowerPC VLE.
       e1dad58d73dc (has_tls_reloc, has_tls_get_addr_call, has_vle_insns, is_ppc_vle)
       df7b86aa4cb6 Add check that sysdep.h has been included before
       98c76446ea6b (extract_sprg): Use ALLOW8_SPRG to include VLE.
       a4ebc835cbcb (powerpc_macros): Add entries for e_extlwi to e_clrlslwi
       94caa966375d (has_vle_insns, is_ppc_vle): Delete
       c7a8dbf91f37 Change RA to RA0
       d908c8af5a1d Add necessary casts for printing integer values
       03edbe3bfb93 Add/remove PPCVLE for some 32-bit insns
       9f6a6cc022e1 <xnop, yield, mdoio, mdoom>: New extended mnemonics
       588925d06545 <RSQ, RTQ>: Use PPC_OPERAND_GPR
       8baf7b78b5d9 <"lswx">: Use RAX for the second and RBX for the third operand
       e67ed0e885d6 Changed opcode for vabsdub, vabsduh, vabsduw, mviwsplt
       fb048c26f19f (UIMM4, UIMM3, UIMM2, VXVA_MASK, VXVB_MASK, VXVAVB_MASK, VXVDVA_MASK
       382c72e90441 (VXASHB_MASK): New define
       c7a5aa9c64fc (ppc_opts) <altivec>: Use PPC_OPCODE_ALTIVEC2
       ab4437c3224f <vcfpsxws>: Fix opcode spelling
       62082a42b9cd "lfdp" and "stfdp" use DS offset.
       776fc41826bb (ppc_parse_cpu): Update prototype
       943d398f4c52 (insert_sci8, extract_sci8): Rewrite.
       5817ffd1f81c New define (PPC_OPCODE_HTM/POWER8)
       9f0682fe89d9 (extract_vlesi): Properly sign extend
       c0637f3af686 (powerpc_init_dialect): Set default dialect to power8.
       58ae08f29af8 (powerpc_opcodes): Add tdui, twui, tdu, twu, tui, tu
       4f6ffcd38d90 (powerpc_init_dialect): Use ppc_parse_cpu() to set dialect
       4b95cf5c0c75 Update copyright years
       a47622ac1bad Allow both signed and unsigned fields in PowerPC cmpli insn
       12e87fac5c76 ppc: enable msgclr and msgsnd on Power8
       8514e4db84cc Don't deprecate powerpc mftb insn
       db76a70026ab Power4 should treat mftb as extended mfspr mnemonic
       b90efa5b79ac ChangeLog rotatation and copyright year update
       c4e676f19656 powerpc: Add slbfee. instruction
       27c49e9a8fc0 powerpc: Only initialise opcode indices once
       4fff86c517ab DCBT_EO): New define
       4bc0608a8b69 Fix some PPC assembler errors
       dc302c00611b Add hwsync extended mnemonic
       99a2c5612124 Remove unused MTMSRD_L macro and re-add accidentally deleted comment
       11a0cf2ec0ed Allow for optional operands with non-zero default values
       7b9341139a69 PPC sync instruction accepts invalid and incompatible operands
       ef5a96d564a2 Remove ppc860, ppc750cl, ppc7450 insns from common ppc
       43e65147c07b Remove trailing spaces in opcodes
       6dca4fd141fd Add dscr and ctrl SPR mnemonics
       b6518b387185 Fix compile time warnings generated when compiling with clang
       36f7a9411dcd Patches for illegal ppc 500 instructions
       a680de9a980e Add assembler, disassembler and linker support for power9
       dd2887fc3de4 Reorder some power9 insns
       b817670b52b7 Enable 2 operand form of powerpc mfcr with -many
       6f2750feaf28 Copyright update for binutils
       afa8d4054b8e Delete opcodes that have been removed from ISA 3.0
       1178da445ad5 Accept valid one byte signed and unsigned values for the IMM8 operand
       e43de63c8fd1 Fix powerpc subis range
       514e58b72633 Correct "Fix powerpc subis range"
       19dfcc89e8d9 Add support for new POWER ISA 3.0 instructions
       1fe0971e41a4 add more extern C
       026122a67044 Re-add support for lbarx, lharx, stbcx. and sthcx. insns back to the E6500 cpu
       14b57c7c6a53 PowerPC VLE
       6fd3a02da554 Add support for yet some more new ISA 3.0 instructions
       dfdaec14b0db Fix some PowerPC VLE BFD issues and add some PowerPC VLE instructions
       fd486b633e87 Modify POWER9 support to match final ISA 3.0 documentation
       a5721ba270dd Disallow 3-operand cmp[l][i] for ppc64
      
      This updates the disassembly capabilities to add support for newer
      processors.
      Signed-off-by: default avatarBalbir Singh <bsingharora@gmail.com>
      [mpe: Reformat commit list for brevity]
      Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
      08d96e0b
    • Balbir Singh's avatar
      powerpc/xmon: Update ppc-dis/opc.c and ppc.h · cc7639ce
      Balbir Singh authored
      Upgrade ppc-opc.c, ppc-dis.c and ppc.h to the versions belonging to the
      following binutils commit:
      
        65b650b4c7463f4508bed523c24ab0031a5ae5cd
        * ppc-dis.c (print_insn_powerpc): Don't skip all operands after
          setting skip_optional.
      
      That is the last version of those files that were licensed under GPLv2.
      
      This leaves the code in a state that does not compile, because the
      binutils code needs to be tweaked to work in the kernel. We don't fix
      that in this commit, because we want to import more binutils changes in
      subsequent commits. So for now we mark XMON_DISASSEMBLY as BROKEN, so it
      can't be built.
      Signed-off-by: default avatarBalbir Singh <bsingharora@gmail.com>
      Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
      cc7639ce
    • Aneesh Kumar K.V's avatar
      powerpc/mm/radix: Skip ptesync in pte update helpers · 438e69b5
      Aneesh Kumar K.V authored
      We do them at the start of tlb flush, and we are sure a pte update will be
      followed by a tlbflush. Hence we can skip the ptesync in pte update helpers.
      Signed-off-by: default avatarAneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
      Tested-by: default avatarMichael Neuling <mikey@neuling.org>
      Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
      438e69b5