Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Linux 5.17.5 #135

Merged
merged 0 commits into from
May 4, 2022
Merged

Linux 5.17.5 #135

merged 0 commits into from
May 4, 2022

Conversation

jackpot51
Copy link
Member

@jackpot51 jackpot51 requested review from a team May 2, 2022 15:22
@jackpot51 jackpot51 self-assigned this May 2, 2022
@jackpot51 jackpot51 mentioned this pull request May 2, 2022
@leviport leviport self-assigned this May 2, 2022
@leviport
Copy link
Member

leviport commented May 2, 2022

Suspend and resume on the kudu6 seems to be working as expected

@jackpot51
Copy link
Member Author

Suspend and resume on the kudu6 seems to be working as expected

Great! Let's continue with testing

@n3m0-22
Copy link

n3m0-22 commented May 3, 2022

Kernel Releases Tests

gaze15 22.04

  • Updating to new kernel works with apt update && apt upgrade
    • No new dependencies are required for kernel update
  • system76-power still opperates as expected (across Intel/NVIDIA/switchable machines)
  • Audio out:
    • Laptop's built-in speakers
    • Headphones
    • Display Port
    • HDMI
  • Video out via:
    • DisplayPort
    • HDMI
  • Suspend and resume:
    • Switchable graphics laptops
      • In Hybrid graphics mode
      • In Nvidia graphics mode
      • In Integrated graphics mode
    • Nvidia desktop
    • Integrated Intel desktop
    • 150 suspend/resume cycles (fwts s3 --s3-multiple 150)
  • Graphics drivers included in the kernel (Intel/AMD)
    • Switchable/hybrid graphics and graphics switching
  • Steam
    • Steam installs via the Pop!_OS .deb in Pop!_Shop
    • Steam launches from launcher
    • Linux native game installs and runs
    • Proton game installs and runs
  • Virtualbox installs and works as expected

darp6 22.04

  • Updating to new kernel works with apt update && apt upgrade
    • No new dependencies are required for kernel update
  • system76-power still opperates as expected (across Intel/NVIDIA/switchable machines)
  • Audio out:
    • Laptop's built-in speakers
    • Headphones
    • Display Port
    • HDMI
  • Video out via:
    • DisplayPort
    • HDMI
  • Suspend and resume:
    • In Integrated graphics mode
    • Integrated Intel desktop
    • 150 suspend/resume cycles (fwts s3 --s3-multiple 150)
  • Graphics drivers included in the kernel (Intel/AMD)
  • Steam
    • Steam installs via the Pop!_OS .deb in Pop!_Shop
    • Steam launches from launcher
    • Linux native game installs and runs
    • Proton game installs and runs
  • Virtualbox installs and works as expected

Testing on 21.10 and 20.04 now will report back

@n3m0-22
Copy link

n3m0-22 commented May 3, 2022

gaze15 21.10

  • Updating to new kernel works with apt update && apt upgrade
    • No new dependencies are required for kernel update
  • system76-power still opperates as expected (across Intel/NVIDIA/switchable machines)
  • Audio out:
    • Laptop's built-in speakers
    • Headphones
    • Display Port
    • HDMI
  • Video out via:
    • DisplayPort
    • HDMI
  • Suspend and resume:
    • Switchable graphics laptops
      • In Hybrid graphics mode
      • In Nvidia graphics mode
      • In Integrated graphics mode
    • Nvidia desktop
    • Integrated Intel desktop
    • 150 suspend/resume cycles (fwts s3 --s3-multiple 150)
  • Graphics drivers included in the kernel (Intel/AMD)
    • Switchable/hybrid graphics and graphics switching
  • Steam
    • Steam installs via the Pop!_OS .deb in Pop!_Shop
    • Steam launches from launcher
    • Linux native game installs and runs
    • Proton game installs and runs
  • Virtualbox installs and works as expected

@n3m0-22
Copy link

n3m0-22 commented May 3, 2022

darp6 20.04

  • Updating to new kernel works with apt update && apt upgrade
    • No new dependencies are required for kernel update
  • system76-power still opperates as expected (across Intel/NVIDIA/switchable machines)
  • Audio out:
    • Laptop's built-in speakers
    • Headphones
    • Display Port
    • HDMI
  • Video out via:
    • DisplayPort
    • HDMI
  • Suspend and resume:
    • In Integrated graphics mode
    • Integrated Intel desktop
    • 150 suspend/resume cycles (fwts s3 --s3-multiple 150)
  • Graphics drivers included in the kernel (Intel/AMD)
  • Steam
    • Steam installs via the Pop!_OS .deb in Pop!_Shop
    • Steam launches from launcher
    • Linux native game installs and runs
    • Proton game installs and runs
  • Virtualbox installs and works as expected

Setting sound to output through HDMI or mDP causes digital/SPDIF mode to turn on with the red light coming out of the mic input. It will not turn off unless rebooted or running amixer -c 0 sset "IEC958",16 off.

@leviport
Copy link
Member

leviport commented May 3, 2022

kudu6 + Pop!_OS 22.04

  • Updating to new kernel works with apt update && apt upgrade
    • No new dependencies are required for kernel update
  • system76-power still opperates as expected (across Intel/NVIDIA/switchable machines)
  • Mic in
  • Audio out:
    • Laptop's built-in speakers
    • Headphones
    • Display Port
    • HDMI
  • Video out via:
    • DisplayPort
    • HDMI
  • Thunderbolt docking station (USB-C/DisplayPort fallback, since kudu6 doesn't have Thunderbolt):
    • HDMI and DisplayPort
    • External storage device
    • Networking
  • Suspend and resume:
    • Switchable graphics laptops
      • In Hybrid graphics mode
      • In Nvidia graphics mode
      • In Integrated graphics mode
    • 150 suspend/resume cycles (fwts s3 --s3-multiple 150)
  • Graphics drivers included in the kernel (Intel/AMD)
    • Switchable/hybrid graphics and graphics switching
  • Steam
    • Steam installs via the Pop!_OS .deb in Pop!_Shop
    • Steam launches from launcher
    • Linux native game installs and runs
    • Proton game installs and runs
  • Virtualbox installs and works as expected

@leviport
Copy link
Member

leviport commented May 3, 2022

Thunderbolt also works fine on oryp6 + 22.04 + 5.17.5

Copy link

@n3m0-22 n3m0-22 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

gaze15 20.04

  • Updating to new kernel works with apt update && apt upgrade
    • No new dependencies are required for kernel update
  • system76-power still opperates as expected (across Intel/NVIDIA/switchable machines)
  • Audio out:
    • Laptop's built-in speakers
    • Headphones
    • Display Port
    • HDMI
  • Video out via:
    • DisplayPort
    • HDMI
  • Suspend and resume:
    • Switchable graphics laptops
      • In Hybrid graphics mode
      • In Nvidia graphics mode
      • In Integrated graphics mode
    • Nvidia desktop
    • Integrated Intel desktop
    • 150 suspend/resume cycles (fwts s3 --s3-multiple 150)
  • Graphics drivers included in the kernel (Intel/AMD)
    • Switchable/hybrid graphics and graphics switching
  • Steam
    • Steam installs via the Pop!_OS .deb in Pop!_Shop
    • Steam launches from launcher
    • Linux native game installs and runs
    • Proton game installs and runs
  • Virtualbox installs and works as expected

@jackpot51 jackpot51 merged commit 63e51bd into master May 4, 2022
@jackpot51 jackpot51 deleted the linux-5.17.5 branch May 4, 2022 19:00
jackpot51 pushed a commit that referenced this pull request Dec 13, 2022
commit 23393c6 upstream.

Currently tpm transactions are executed unconditionally in
tpm_pm_suspend() function, which may lead to races with other tpm
accessors in the system.

Specifically, the hw_random tpm driver makes use of tpm_get_random(),
and this function is called in a loop from a kthread, which means it's
not frozen alongside userspace, and so can race with the work done
during system suspend:

  tpm tpm0: tpm_transmit: tpm_recv: error -52
  tpm tpm0: invalid TPM_STS.x 0xff, dumping stack for forensics
  CPU: 0 PID: 1 Comm: init Not tainted 6.1.0-rc5+ #135
  Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.0-20220807_005459-localhost 04/01/2014
  Call Trace:
   tpm_tis_status.cold+0x19/0x20
   tpm_transmit+0x13b/0x390
   tpm_transmit_cmd+0x20/0x80
   tpm1_pm_suspend+0xa6/0x110
   tpm_pm_suspend+0x53/0x80
   __pnp_bus_suspend+0x35/0xe0
   __device_suspend+0x10f/0x350

Fix this by calling tpm_try_get_ops(), which itself is a wrapper around
tpm_chip_start(), but takes the appropriate mutex.

Signed-off-by: Jan Dabros <[email protected]>
Reported-by: Vlastimil Babka <[email protected]>
Tested-by: Jason A. Donenfeld <[email protected]>
Tested-by: Vlastimil Babka <[email protected]>
Link: https://lore.kernel.org/all/[email protected]/
Cc: [email protected]
Fixes: e891db1 ("tpm: turn on TPM on suspend for TPM 1.x")
[Jason: reworked commit message, added metadata]
Signed-off-by: Jason A. Donenfeld <[email protected]>
Reviewed-by: Jarkko Sakkinen <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
jackpot51 pushed a commit that referenced this pull request Sep 20, 2023
[ Upstream commit 7f74563 ]

LE Create CIS command shall not be sent before all CIS Established
events from its previous invocation have been processed. Currently it is
sent via hci_sync but that only waits for the first event, but there can
be multiple.

Make it wait for all events, and simplify the CIS creation as follows:

Add new flag HCI_CONN_CREATE_CIS, which is set if Create CIS has been
sent for the connection but it is not yet completed.

Make BT_CONNECT state to mean the connection wants Create CIS.

On events after which new Create CIS may need to be sent, send it if
possible and some connections need it. These events are:
hci_connect_cis, iso_connect_cfm, hci_cs_le_create_cis,
hci_le_cis_estabilished_evt.

The Create CIS status/completion events shall queue new Create CIS only
if at least one of the connections transitions away from BT_CONNECT, so
that we don't loop if controller is sending bogus events.

This fixes sending multiple CIS Create for the same CIS in the
"ISO AC 6(i) - Success" BlueZ test case:

< HCI Command: LE Create Co.. (0x08|0x0064) plen 9  #129 [hci0]
        Number of CIS: 2
        CIS Handle: 257
        ACL Handle: 42
        CIS Handle: 258
        ACL Handle: 42
> HCI Event: Command Status (0x0f) plen 4           #130 [hci0]
      LE Create Connected Isochronous Stream (0x08|0x0064) ncmd 1
        Status: Success (0x00)
> HCI Event: LE Meta Event (0x3e) plen 29           #131 [hci0]
      LE Connected Isochronous Stream Established (0x19)
        Status: Success (0x00)
        Connection Handle: 257
        ...
< HCI Command: LE Setup Is.. (0x08|0x006e) plen 13  #132 [hci0]
        ...
> HCI Event: Command Complete (0x0e) plen 6         #133 [hci0]
      LE Setup Isochronous Data Path (0x08|0x006e) ncmd 1
        ...
< HCI Command: LE Create Co.. (0x08|0x0064) plen 5  #134 [hci0]
        Number of CIS: 1
        CIS Handle: 258
        ACL Handle: 42
> HCI Event: Command Status (0x0f) plen 4           #135 [hci0]
      LE Create Connected Isochronous Stream (0x08|0x0064) ncmd 1
        Status: ACL Connection Already Exists (0x0b)
> HCI Event: LE Meta Event (0x3e) plen 29           #136 [hci0]
      LE Connected Isochronous Stream Established (0x19)
        Status: Success (0x00)
        Connection Handle: 258
        ...

Fixes: c09b80b ("Bluetooth: hci_conn: Fix not waiting for HCI_EVT_LE_CIS_ESTABLISHED")
Signed-off-by: Pauli Virtanen <[email protected]>
Signed-off-by: Luiz Augusto von Dentz <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
mmstick pushed a commit that referenced this pull request Jan 2, 2024
[ Upstream commit f99cd56 ]

syzkaller report:

 kernel BUG at net/core/skbuff.c:3452!
 invalid opcode: 0000 [#1] PREEMPT SMP KASAN PTI
 CPU: 0 PID: 0 Comm: swapper/0 Not tainted 6.7.0-rc4-00009-gbee0e7762ad2-dirty #135
 RIP: 0010:skb_copy_and_csum_bits (net/core/skbuff.c:3452)
 Call Trace:
 icmp_glue_bits (net/ipv4/icmp.c:357)
 __ip_append_data.isra.0 (net/ipv4/ip_output.c:1165)
 ip_append_data (net/ipv4/ip_output.c:1362 net/ipv4/ip_output.c:1341)
 icmp_push_reply (net/ipv4/icmp.c:370)
 __icmp_send (./include/net/route.h:252 net/ipv4/icmp.c:772)
 ip_fragment.constprop.0 (./include/linux/skbuff.h:1234 net/ipv4/ip_output.c:592 net/ipv4/ip_output.c:577)
 __ip_finish_output (net/ipv4/ip_output.c:311 net/ipv4/ip_output.c:295)
 ip_output (net/ipv4/ip_output.c:427)
 __ip_queue_xmit (net/ipv4/ip_output.c:535)
 __tcp_transmit_skb (net/ipv4/tcp_output.c:1462)
 __tcp_retransmit_skb (net/ipv4/tcp_output.c:3387)
 tcp_retransmit_skb (net/ipv4/tcp_output.c:3404)
 tcp_retransmit_timer (net/ipv4/tcp_timer.c:604)
 tcp_write_timer (./include/linux/spinlock.h:391 net/ipv4/tcp_timer.c:716)

The panic issue was trigered by tcp simultaneous initiation.
The initiation process is as follows:

      TCP A                                            TCP B

  1.  CLOSED                                           CLOSED

  2.  SYN-SENT     --> <SEQ=100><CTL=SYN>              ...

  3.  SYN-RECEIVED <-- <SEQ=300><CTL=SYN>              <-- SYN-SENT

  4.               ... <SEQ=100><CTL=SYN>              --> SYN-RECEIVED

  5.  SYN-RECEIVED --> <SEQ=100><ACK=301><CTL=SYN,ACK> ...

  // TCP B: not send challenge ack for ack limit or packet loss
  // TCP A: close
	tcp_close
	   tcp_send_fin
              if (!tskb && tcp_under_memory_pressure(sk))
                  tskb = skb_rb_last(&sk->tcp_rtx_queue); //pick SYN_ACK packet
           TCP_SKB_CB(tskb)->tcp_flags |= TCPHDR_FIN;  // set FIN flag

  6.  FIN_WAIT_1  --> <SEQ=100><ACK=301><END_SEQ=102><CTL=SYN,FIN,ACK> ...

  // TCP B: send challenge ack to SYN_FIN_ACK

  7.               ... <SEQ=301><ACK=101><CTL=ACK>   <-- SYN-RECEIVED //challenge ack

  // TCP A:  <SND.UNA=101>

  8.  FIN_WAIT_1 --> <SEQ=101><ACK=301><END_SEQ=102><CTL=SYN,FIN,ACK> ... // retransmit panic

	__tcp_retransmit_skb  //skb->len=0
	    tcp_trim_head
		len = tp->snd_una - TCP_SKB_CB(skb)->seq // len=101-100
		    __pskb_trim_head
			skb->data_len -= len // skb->len=-1, wrap around
	    ... ...
	    ip_fragment
		icmp_glue_bits //BUG_ON

If we use tcp_trim_head() to remove acked SYN from packet that contains data
or other flags, skb->len will be incorrectly decremented. We can remove SYN
flag that has been acked from rtx_queue earlier than tcp_trim_head(), which
can fix the problem mentioned above.

Fixes: 1da177e ("Linux-2.6.12-rc2")
Co-developed-by: Eric Dumazet <[email protected]>
Signed-off-by: Eric Dumazet <[email protected]>
Signed-off-by: Dong Chenchen <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Jakub Kicinski <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants