Skip to content
Snippets Groups Projects
  1. Jun 01, 2021
  2. May 31, 2021
  3. May 29, 2021
  4. May 27, 2021
  5. May 26, 2021
    • Miklos Szeredi's avatar
      fuse: update attr_version counter on fuse_notify_inval_inode() · 8d70af17
      Miklos Szeredi authored
      
      mainline inclusion
      from mainline-v5.8-rc1
      commit 5ddd9ced
      category: bugfix
      bugzilla: 37636
      CVE: NA
      
      -------------------------------------------------
      
      A GETATTR request can race with FUSE_NOTIFY_INVAL_INODE, resulting in the
      attribute cache being updated with stale information after the
      invalidation.
      
      Fix this by bumping the attribute version in fuse_reverse_inval_inode().
      
      Reported-by: default avatarKrzysztof Rusek <rusek@9livesdata.com>
      Signed-off-by: default avatarMiklos Szeredi <mszeredi@redhat.com>
      
      Conflict: fs/fuse/inode.c
      a. commit f15ecfef ("fuse: Introduce fi->lock to protect write related fields")
      is not backported, 'fi->lock' do not exist.
      b. commit 4510d86f ("fuse: Convert fc->attr_version into atomic64_t") is not
      backported, 'fc->lock' is needed to read 'fc->attr_version'.
      Signed-off-by: default avatarYu Kuai <yukuai3@huawei.com>
      Reviewed-by: default avatarZhang Yi <yi.zhang@huawei.com>
      Signed-off-by: default avatarYang Yingliang <yangyingliang@huawei.com>
      8d70af17
    • Xingjun Liu's avatar
      alinux: random: speed up the initialization of module · 99161116
      Xingjun Liu authored
      
      anolis inclusion
      from anolis_master
      commit 7afda44c8a9e043f8f16dcc57dd8ef615522e2c8
      category: performance
      bugzilla: NA
      CVE: NA
      ---------------------------
      
      alinux: random: speed up the initialization of module
      
      During the module initialization phase, entropy will be added
      to entropy pool for every interrupt, the change should speed up
      initialization of the random module.
      
      Before optimization:
      [   22.180236] random: crng init done
      
      After optimization:
      [    1.474832] random: crng init done
      
      Signed-off-by: default avatarXingjun Liu <xingjun.lxj@alibaba-inc.com>
      Reviewed-by: default avatarLiu Jiang <gerry@linux.alibaba.com>
      Reviewed-by: default avatarCaspar Zhang <caspar@linux.alibaba.com>
      Reviewed-by: default avatarJia Zhang <zhang.jia@linux.alibaba.com>
      Reviewed-by: default avatarYang Shi <yang.shi@linux.alibaba.com>
      Reviewed-by: default avatarLiu Bo <bo.liu@linux.alibaba.com>
      Signed-off-by: default avatarChen Jialong <chenjialong@huawei.com>
      Reviewed-by: default avatarXiu Jianfeng <xiujianfeng@huawei.com>
      Reviewed-by: default avatarZiyuan Hu <huziyuan@huawei.com>
      Signed-off-by: default avatarYang Yingliang <yangyingliang@huawei.com>
      99161116
    • Pavel Skripkin's avatar
      net: mac802154: Fix general protection fault · 54dc6b64
      Pavel Skripkin authored
      
      stable inclusion
      from linux-4.19.187
      commit c166c0f5311dc9de687b8985574a5ee5166d367e
      CVE: CVE-2021-33033
      
      --------------------------------
      
      commit 1165affd484889d4986cf3b724318935a0b120d8 upstream.
      
      syzbot found general protection fault in crypto_destroy_tfm()[1].
      It was caused by wrong clean up loop in llsec_key_alloc().
      If one of the tfm array members is in IS_ERR() range it will
      cause general protection fault in clean up function [1].
      
      Call Trace:
       crypto_free_aead include/crypto/aead.h:191 [inline] [1]
       llsec_key_alloc net/mac802154/llsec.c:156 [inline]
       mac802154_llsec_key_add+0x9e0/0xcc0 net/mac802154/llsec.c:249
       ieee802154_add_llsec_key+0x56/0x80 net/mac802154/cfg.c:338
       rdev_add_llsec_key net/ieee802154/rdev-ops.h:260 [inline]
       nl802154_add_llsec_key+0x3d3/0x560 net/ieee802154/nl802154.c:1584
       genl_family_rcv_msg_doit+0x228/0x320 net/netlink/genetlink.c:739
       genl_family_rcv_msg net/netlink/genetlink.c:783 [inline]
       genl_rcv_msg+0x328/0x580 net/netlink/genetlink.c:800
       netlink_rcv_skb+0x153/0x420 net/netlink/af_netlink.c:2502
       genl_rcv+0x24/0x40 net/netlink/genetlink.c:811
       netlink_unicast_kernel net/netlink/af_netlink.c:1312 [inline]
       netlink_unicast+0x533/0x7d0 net/netlink/af_netlink.c:1338
       netlink_sendmsg+0x856/0xd90 net/netlink/af_netlink.c:1927
       sock_sendmsg_nosec net/socket.c:654 [inline]
       sock_sendmsg+0xcf/0x120 net/socket.c:674
       ____sys_sendmsg+0x6e8/0x810 net/socket.c:2350
       ___sys_sendmsg+0xf3/0x170 net/socket.c:2404
       __sys_sendmsg+0xe5/0x1b0 net/socket.c:2433
       do_syscall_64+0x2d/0x70 arch/x86/entry/common.c:46
       entry_SYSCALL_64_after_hwframe+0x44/0xae
      
      Signed-off-by: default avatarPavel Skripkin <paskripkin@gmail.com>
      Reported-by: default avatar <syzbot+9ec037722d2603a9f52e@syzkaller.appspotmail.com>
      Acked-by: default avatarAlexander Aring <aahringo@redhat.com>
      Link: https://lore.kernel.org/r/20210304152125.1052825-1-paskripkin@gmail.com
      
      
      Signed-off-by: default avatarStefan Schmidt <stefan@datenfreihafen.org>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      Signed-off-by: default avatarYang Yingliang <yangyingliang@huawei.com>
      Reviewed-by: default avatarXiu Jianfeng <xiujianfeng@huawei.com>
      Reviewed-by: default avatarYue Haibing <yuehaibing@huawei.com>
      Signed-off-by: default avatarYang Yingliang <yangyingliang@huawei.com>
      54dc6b64
    • Paul Moore's avatar
      cipso,calipso: resolve a number of problems with the DOI refcounts · a409c9a6
      Paul Moore authored
      
      stable inclusion
      from linux-4.19.181
      commit a44af1c69737f9e64d5134c34eb9d5c4c2e04da1
      CVE: CVE-2021-33033
      
      --------------------------------
      
      commit ad5d07f4a9cd671233ae20983848874731102c08 upstream.
      
      The current CIPSO and CALIPSO refcounting scheme for the DOI
      definitions is a bit flawed in that we:
      
      1. Don't correctly match gets/puts in netlbl_cipsov4_list().
      2. Decrement the refcount on each attempt to remove the DOI from the
         DOI list, only removing it from the list once the refcount drops
         to zero.
      
      This patch fixes these problems by adding the missing "puts" to
      netlbl_cipsov4_list() and introduces a more conventional, i.e.
      not-buggy, refcounting mechanism to the DOI definitions.  Upon the
      addition of a DOI to the DOI list, it is initialized with a refcount
      of one, removing a DOI from the list removes it from the list and
      drops the refcount by one; "gets" and "puts" behave as expected with
      respect to refcounts, increasing and decreasing the DOI's refcount by
      one.
      
      Fixes: b1edeb10 ("netlabel: Replace protocol/NetLabel linking with refrerence counts")
      Fixes: d7cce015 ("netlabel: Add support for removing a CALIPSO DOI.")
      Reported-by: default avatar <syzbot+9ec037722d2603a9f52e@syzkaller.appspotmail.com>
      Signed-off-by: default avatarPaul Moore <paul@paul-moore.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      Signed-off-by: default avatarYang Yingliang <yangyingliang@huawei.com>
      Reviewed-by: default avatarXiu Jianfeng <xiujianfeng@huawei.com>
      Reviewed-by: default avatarYue Haibing <yuehaibing@huawei.com>
      Signed-off-by: default avatarYang Yingliang <yangyingliang@huawei.com>
      a409c9a6
    • Archie Pusaka's avatar
      Bluetooth: verify AMP hci_chan before amp_destroy · 929b7e76
      Archie Pusaka authored
      
      stable inclusion
      from linux-4.19.191
      commit 75e26178e26f910f7f26c79c2824b726eecf0dfb
      CVE: CVE-2021-33034
      
      --------------------------------
      
      commit 5c4c8c9544099bb9043a10a5318130a943e32fc3 upstream.
      
      hci_chan can be created in 2 places: hci_loglink_complete_evt() if
      it is an AMP hci_chan, or l2cap_conn_add() otherwise. In theory,
      Only AMP hci_chan should be removed by a call to
      hci_disconn_loglink_complete_evt(). However, the controller might mess
      up, call that function, and destroy an hci_chan which is not initiated
      by hci_loglink_complete_evt().
      
      This patch adds a verification that the destroyed hci_chan must have
      been init'd by hci_loglink_complete_evt().
      
      Example crash call trace:
      Call Trace:
       __dump_stack lib/dump_stack.c:77 [inline]
       dump_stack+0xe3/0x144 lib/dump_stack.c:118
       print_address_description+0x67/0x22a mm/kasan/report.c:256
       kasan_report_error mm/kasan/report.c:354 [inline]
       kasan_report mm/kasan/report.c:412 [inline]
       kasan_report+0x251/0x28f mm/kasan/report.c:396
       hci_send_acl+0x3b/0x56e net/bluetooth/hci_core.c:4072
       l2cap_send_cmd+0x5af/0x5c2 net/bluetooth/l2cap_core.c:877
       l2cap_send_move_chan_cfm_icid+0x8e/0xb1 net/bluetooth/l2cap_core.c:4661
       l2cap_move_fail net/bluetooth/l2cap_core.c:5146 [inline]
       l2cap_move_channel_rsp net/bluetooth/l2cap_core.c:5185 [inline]
       l2cap_bredr_sig_cmd net/bluetooth/l2cap_core.c:5464 [inline]
       l2cap_sig_channel net/bluetooth/l2cap_core.c:5799 [inline]
       l2cap_recv_frame+0x1d12/0x51aa net/bluetooth/l2cap_core.c:7023
       l2cap_recv_acldata+0x2ea/0x693 net/bluetooth/l2cap_core.c:7596
       hci_acldata_packet net/bluetooth/hci_core.c:4606 [inline]
       hci_rx_work+0x2bd/0x45e net/bluetooth/hci_core.c:4796
       process_one_work+0x6f8/0xb50 kernel/workqueue.c:2175
       worker_thread+0x4fc/0x670 kernel/workqueue.c:2321
       kthread+0x2f0/0x304 kernel/kthread.c:253
       ret_from_fork+0x3a/0x50 arch/x86/entry/entry_64.S:415
      
      Allocated by task 38:
       set_track mm/kasan/kasan.c:460 [inline]
       kasan_kmalloc+0x8d/0x9a mm/kasan/kasan.c:553
       kmem_cache_alloc_trace+0x102/0x129 mm/slub.c:2787
       kmalloc include/linux/slab.h:515 [inline]
       kzalloc include/linux/slab.h:709 [inline]
       hci_chan_create+0x86/0x26d net/bluetooth/hci_conn.c:1674
       l2cap_conn_add.part.0+0x1c/0x814 net/bluetooth/l2cap_core.c:7062
       l2cap_conn_add net/bluetooth/l2cap_core.c:7059 [inline]
       l2cap_connect_cfm+0x134/0x852 net/bluetooth/l2cap_core.c:7381
       hci_connect_cfm+0x9d/0x122 include/net/bluetooth/hci_core.h:1404
       hci_remote_ext_features_evt net/bluetooth/hci_event.c:4161 [inline]
       hci_event_packet+0x463f/0x72fa net/bluetooth/hci_event.c:5981
       hci_rx_work+0x197/0x45e net/bluetooth/hci_core.c:4791
       process_one_work+0x6f8/0xb50 kernel/workqueue.c:2175
       worker_thread+0x4fc/0x670 kernel/workqueue.c:2321
       kthread+0x2f0/0x304 kernel/kthread.c:253
       ret_from_fork+0x3a/0x50 arch/x86/entry/entry_64.S:415
      
      Freed by task 1732:
       set_track mm/kasan/kasan.c:460 [inline]
       __kasan_slab_free mm/kasan/kasan.c:521 [inline]
       __kasan_slab_free+0x106/0x128 mm/kasan/kasan.c:493
       slab_free_hook mm/slub.c:1409 [inline]
       slab_free_freelist_hook+0xaa/0xf6 mm/slub.c:1436
       slab_free mm/slub.c:3009 [inline]
       kfree+0x182/0x21e mm/slub.c:3972
       hci_disconn_loglink_complete_evt net/bluetooth/hci_event.c:4891 [inline]
       hci_event_packet+0x6a1c/0x72fa net/bluetooth/hci_event.c:6050
       hci_rx_work+0x197/0x45e net/bluetooth/hci_core.c:4791
       process_one_work+0x6f8/0xb50 kernel/workqueue.c:2175
       worker_thread+0x4fc/0x670 kernel/workqueue.c:2321
       kthread+0x2f0/0x304 kernel/kthread.c:253
       ret_from_fork+0x3a/0x50 arch/x86/entry/entry_64.S:415
      
      The buggy address belongs to the object at ffff8881d7af9180
       which belongs to the cache kmalloc-128 of size 128
      The buggy address is located 24 bytes inside of
       128-byte region [ffff8881d7af9180, ffff8881d7af9200)
      The buggy address belongs to the page:
      page:ffffea00075ebe40 count:1 mapcount:0 mapping:ffff8881da403200 index:0x0
      flags: 0x8000000000000200(slab)
      raw: 8000000000000200 dead000000000100 dead000000000200 ffff8881da403200
      raw: 0000000000000000 0000000080150015 00000001ffffffff 0000000000000000
      page dumped because: kasan: bad access detected
      
      Memory state around the buggy address:
       ffff8881d7af9080: fc fc fc fc fc fc fc fc fb fb fb fb fb fb fb fb
       ffff8881d7af9100: fb fb fb fb fb fb fb fb fc fc fc fc fc fc fc fc
      >ffff8881d7af9180: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
                                  ^
       ffff8881d7af9200: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc
       ffff8881d7af9280: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc
      
      Signed-off-by: default avatarArchie Pusaka <apusaka@chromium.org>
      Reported-by: default avatar <syzbot+98228e7407314d2d4ba2@syzkaller.appspotmail.com>
      Reviewed-by: default avatarAlain Michaud <alainm@chromium.org>
      Reviewed-by: default avatarAbhishek Pandit-Subedi <abhishekpandit@chromium.org>
      Signed-off-by: default avatarMarcel Holtmann <marcel@holtmann.org>
      Cc: George Kennedy <george.kennedy@oracle.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      Signed-off-by: default avatarYang Yingliang <yangyingliang@huawei.com>
      Reviewed-by: default avatarXiu Jianfeng <xiujianfeng@huawei.com>
      Signed-off-by: default avatarYang Yingliang <yangyingliang@huawei.com>
      929b7e76
    • Or Cohen's avatar
      net/nfc: fix use-after-free llcp_sock_bind/connect · e7354fd8
      Or Cohen authored
      
      stable inclusion
      from linux-4.19.191
      commit 48fba458fe54cc2a980a05c13e6c19b8b2cfb610
      CVE: CVE-2021-23134
      
      --------------------------------
      
      commit c61760e6940dd4039a7f5e84a6afc9cdbf4d82b6 upstream.
      
      Commits 8a4cd82d ("nfc: fix refcount leak in llcp_sock_connect()")
      and c33b1cc62 ("nfc: fix refcount leak in llcp_sock_bind()")
      fixed a refcount leak bug in bind/connect but introduced a
      use-after-free if the same local is assigned to 2 different sockets.
      
      This can be triggered by the following simple program:
          int sock1 = socket( AF_NFC, SOCK_STREAM, NFC_SOCKPROTO_LLCP );
          int sock2 = socket( AF_NFC, SOCK_STREAM, NFC_SOCKPROTO_LLCP );
          memset( &addr, 0, sizeof(struct sockaddr_nfc_llcp) );
          addr.sa_family = AF_NFC;
          addr.nfc_protocol = NFC_PROTO_NFC_DEP;
          bind( sock1, (struct sockaddr*) &addr, sizeof(struct sockaddr_nfc_llcp) )
          bind( sock2, (struct sockaddr*) &addr, sizeof(struct sockaddr_nfc_llcp) )
          close(sock1);
          close(sock2);
      
      Fix this by assigning NULL to llcp_sock->local after calling
      nfc_llcp_local_put.
      
      This addresses CVE-2021-23134.
      
      Reported-by: default avatarOr Cohen <orcohen@paloaltonetworks.com>
      Reported-by: default avatarNadav Markus <nmarkus@paloaltonetworks.com>
      Fixes: c33b1cc62 ("nfc: fix refcount leak in llcp_sock_bind()")
      Signed-off-by: default avatarOr Cohen <orcohen@paloaltonetworks.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      Signed-off-by: default avatarYang Yingliang <yangyingliang@huawei.com>
      Reviewed-by: default avatarXiu Jianfeng <xiujianfeng@huawei.com>
      Reviewed-by: default avatarYue Haibing <yuehaibing@huawei.com>
      Signed-off-by: default avatarYang Yingliang <yangyingliang@huawei.com>
      e7354fd8
    • Hans de Goede's avatar
      x86: Select HARDIRQS_SW_RESEND on x86 · 4e881c34
      Hans de Goede authored
      
      mainline inclusion
      from mainline-5.7
      commit 17e5888e
      category: bugfix
      bugzilla: NA
      CVE: NA
      
      -------------------------------------------------
      
      Modern x86 laptops are starting to use GPIO pins as interrupts more
      and more, e.g. touchpads and touchscreens have almost all moved away
      from PS/2 and USB to using I2C with a GPIO pin as interrupt.
      Modern x86 laptops also have almost all moved to using s2idle instead
      of using the system S3 ACPI power state to suspend.
      
      The Intel and AMD pinctrl drivers do not define irq_retrigger handlers
      for the irqchips they register, this is causing edge triggered interrupts
      which happen while suspended using s2idle to get lost.
      
      One specific example of this is the lid switch on some devices, lid
      switches used to be handled by the embedded-controller, but now the
      lid open/closed sensor is sometimes directly connected to a GPIO pin.
      On most devices the ACPI code for this looks like this:
      
      Method (_E00, ...) {
              Notify (LID0, 0x80) // Status Change
      }
      
      Where _E00 is an ACPI event handler for changes on both edges of the GPIO
      connected to the lid sensor, this event handler is then combined with an
      _LID method which directly reads the pin. When the device is resumed by
      opening the lid, the GPIO interrupt will wake the system, but because the
      pinctrl irqchip doesn't have an irq_retrigger handler, the Notify will not
      happen. This is not a problem in the case the _LID method directly reads
      the GPIO, because the drivers/acpi/button.c code will call _LID on resume
      anyways.
      
      But some devices have an event handler for the GPIO connected to the
      lid sensor which looks like this:
      
      Method (_E00, ...) {
              if (LID_GPIO == One)
                      LIDS = One
              else
                      LIDS = Zero
              Notify (LID0, 0x80) // Status Change
      }
      
      And the _LID method returns the cached LIDS value, since on open we
      do not re-run the edge-interrupt handler when we re-enable IRQS on resume
      (because of the missing irq_retrigger handler), _LID now will keep
      reporting closed, as LIDS was never changed to reflect the open status,
      this causes userspace to re-resume the laptop again shortly after opening
      the lid.
      
      The Intel GPIO controllers do not allow implementing irq_retrigger without
      emulating it in software, at which point we are better of just using the
      generic HARDIRQS_SW_RESEND mechanism rather then re-implementing software
      emulation for this separately in aprox. 14 different pinctrl drivers.
      
      Select HARDIRQS_SW_RESEND to solve the problem of edge-triggered GPIO
      interrupts not being re-triggered on resume when they were triggered during
      suspend (s2idle) and/or when they were the cause of the wakeup.
      
      This requires
      
       008f1d60 ("x86/apic/vector: Force interupt handler invocation to irq context")
       c16816ac ("genirq: Add protection against unsafe usage of generic_handle_irq()")
      
      to protect the APIC based interrupts from being wreckaged by a software
      resend.
      
      Signed-off-by: default avatarHans de Goede <hdegoede@redhat.com>
      Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
      Link: https://lkml.kernel.org/r/20200123210242.53367-1-hdegoede@redhat.com
      
      
      Signed-off-by: default avatarLiao Chang <liaochang1@huawei.com>
      Reviewed-by: default avatarHanjun Guo <guohanjun@huawei.com>
      Signed-off-by: default avatarYang Yingliang <yangyingliang@huawei.com>
      4e881c34
    • Thomas Gleixner's avatar
      x86/apic/vector: Force interupt handler invocation to irq context · 3e134563
      Thomas Gleixner authored
      
      mainline inclusion
      from mainline-5.7
      commit 008f1d60
      category: bugfix
      bugzilla: NA
      CVE: NA
      
      -------------------------------------------------
      
      Sathyanarayanan reported that the PCI-E AER error injection mechanism
      can result in a NULL pointer dereference in apic_ack_edge():
      
       BUG: unable to handle kernel NULL pointer dereference at 0000000000000078
       RIP: 0010:apic_ack_edge+0x1e/0x40
       Call Trace:
         handle_edge_irq+0x7d/0x1e0
         generic_handle_irq+0x27/0x30
         aer_inject_write+0x53a/0x720
      
      It crashes in irq_complete_move() which dereferences get_irq_regs() which
      is obviously NULL when this is called from non interrupt context.
      
      Of course the pointer could be checked, but that just papers over the real
      issue. Invoking the low level interrupt handling mechanism from random code
      can wreckage the fragile interrupt affinity mechanism of x86 as interrupts
      can only be moved in interrupt context or with special care when a CPU goes
      offline and the move has to be enforced.
      
      In the best case this triggers the warning in the MSI affinity setter, but
      if the call happens on the correct CPU it just corrupts state and might
      prevent further interrupt delivery for the affected device.
      
      Mark the APIC interrupts as unsuitable for being invoked in random contexts.
      
      This prevents the AER injection from proliferating the wreckage, but that's
      less broken than the current state of affairs and more correct than just
      papering over the problem by sprinkling random checks all over the place
      and silently corrupting state.
      
      Reported-by: default avatar <sathyanarayanan.kuppuswamy@linux.intel.com>
      Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
      Link: https://lkml.kernel.org/r/20200306130623.684591280@linutronix.de
      
      
      Signed-off-by: default avatarLiao Chang <liaochang1@huawei.com>
      Reviewed-by: default avatarHanjun Guo <guohanjun@huawei.com>
      Signed-off-by: default avatarYang Yingliang <yangyingliang@huawei.com>
      3e134563
    • Arnaldo Carvalho de Melo's avatar
      tools arch x86: Sync asm/cpufeatures.h with the with the kernel · 88225643
      Arnaldo Carvalho de Melo authored
      mainline inclusion
      from mainline-v5.3-rc1
      commit 686cbe9e
      category: feature
      bugzilla: https://bugzilla.openeuler.org/show_bug.cgi?id=44
      CVE: NA
      
      -----------------------------------------------
      
      To pick up the changes in:
      
        6dbbf5ec ("x86/cpufeatures: Enumerate user wait instructions")
        b302e4b1 ("x86/cpufeatures: Enumerate the new AVX512 BFLOAT16 instructions")
        acec0ce0 ("x86/cpufeatures: Combine word 11 and 12 into a new scattered features word")
        cbb99c0f ("x86/cpufeatures: Add FDP_EXCPTN_ONLY and ZERO_FCS_FDS")
      
      That don't affect anything in tools/.
      
      This silences this perf build warning:
      
        Warning: Kernel ABI header at 'tools/arch/x86/include/asm/cpufeatures.h' differs from latest version at 'arch/x86/include/asm/cpufeatures.h'
        diff -u tools/arch/x86/include/asm/cpufeatures.h arch/x86/include/asm/cpufeatures.h
      
      Cc: Aaron Lewis <aaronlewis@google.com>
      Cc: Adrian Hunter <adrian.hunter@intel.com>
      Cc: Borislav Petkov <bp@suse.de>
      Cc: Fenghua Yu <fenghua.yu@intel.com>
      Cc: Jiri Olsa <jolsa@kernel.org>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Link: https://lkml.kernel.org/n/tip-y60wnyg2fuxi0hx7icruo9po@git.kernel.org
      
      
      Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      Signed-off-by: default avatarZheng Zengkai <zhengzengkai@huawei.com>
      Reviewed-by: default avatarXiongfeng Wang <wangxiongfeng2@huawei.com>
      Signed-off-by: default avatarYang Yingliang <yangyingliang@huawei.com>
    • Srinivas Pandruvada's avatar
      cpufreq: intel_pstate: Also use CPPC nominal_perf for base_frequency · 2368dd5e
      Srinivas Pandruvada authored
      mainline inclusion
      from mainline-v5.1-rc3
      commit 92a3e426
      category: feature
      bugzilla: https://bugzilla.openeuler.org/show_bug.cgi?id=44
      
      
      CVE: NA
      
      -----------------------------------------------
      
      The ACPI specification states that if the "Guaranteed Performance
      Register" is not implemented, the OSPM assumes guaranteed performance
      to always be equal to nominal performance.
      
      So for invalid or unimplemented guaranteed performance register, use
      nominal performance as guaranteed performance.
      
      This change will fall back to nominal_perf when guranteed_perf is
      invalid.  If nominal_perf is also invalid or not present, fall back
      to the existing implementation, which is to read from HWP Capabilities
      MSR.
      
      Fixes: 86d333a8 ("cpufreq: intel_pstate: Add base_frequency attribute")
      Suggested-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
      Signed-off-by: default avatarSrinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
      Cc: 4.20+ <stable@vger.kernel.org> # 4.20+
      Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
      Signed-off-by: default avatarZheng Zengkai <zhengzengkai@huawei.com>
      Reviewed-by: default avatarXiongfeng Wang <wangxiongfeng2@huawei.com>
      Signed-off-by: default avatarYang Yingliang <yangyingliang@huawei.com>
      2368dd5e
    • Srinivas Pandruvada's avatar
      ACPI / CPPC: Fix guaranteed performance handling · a1777395
      Srinivas Pandruvada authored
      mainline inclusion
      from mainline-v5.1-rc3
      commit edef1ef1
      category: feature
      bugzilla: https://bugzilla.openeuler.org/show_bug.cgi?id=44
      
      
      CVE: NA
      
      -----------------------------------------------
      
      As per the ACPI specification, "Guaranteed Performance Register" is
      a "Buffer" field and it cannot be "Integer", so treat the "Integer"
      type for "Guaranteed Performance Register" field as invalid and
      ignore its value in that case.
      
      Also save one cpc_read() call when "Guaranteed Performance Register"
      is not present, which means a register defined as:
      "Register(SystemMemory, 0, 0, 0, 0)".
      
      Fixes: 29523f09 ("ACPI / CPPC: Add support for guaranteed performance")
      Suggested-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
      Signed-off-by: default avatarSrinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
      Cc: 4.20+ <stable@vger.kernel.org> # 4.20+
      Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
      Signed-off-by: default avatarZheng Zengkai <zhengzengkai@huawei.com>
      Reviewed-by: default avatarXiongfeng Wang <wangxiongfeng2@huawei.com>
      Signed-off-by: default avatarYang Yingliang <yangyingliang@huawei.com>
      a1777395