patch exist, please apply for ubuntu 20.04:
 
marian@kubuntu2004:~/kernelubuntu/linux$ git diff
diff --git a/include/linux/swap.h b/include/linux/swap.h
index de2c67a33b7e..da1dc5a338cc 100644
--- a/include/linux/swap.h
+++ b/include/linux/swap.h
@@ -456,6 +456,7 @@ extern void swap_free(swp_entry_t);
 extern void swapcache_free_entries(swp_entry_t *entries, int n);
 extern int free_swap_and_cache(swp_entry_t);
 extern int swap_type_of(dev_t, sector_t, struct block_device **);
+extern void swap_relockall(void);
 extern unsigned int count_swap_pages(int, int);
 extern sector_t map_swap_page(struct page *, struct block_device **);
 extern sector_t swapdev_block(int, pgoff_t);
diff --git a/kernel/power/user.c b/kernel/power/user.c
index 77438954cc2b..bfef2097edaa 100644
--- a/kernel/power/user.c
+++ b/kernel/power/user.c
@@ -271,6 +271,8 @@ static long snapshot_ioctl(struct file *filp, unsigned int 
cmd,
                        break;
                }
                error = hibernation_restore(data->platform_support);
+               if (!error)
+                       swap_relockall();
                break;
 
        case SNAPSHOT_FREE:
@@ -372,10 +374,16 @@ static long snapshot_ioctl(struct file *filp, unsigned 
int cmd,
                         */
                        swdev = new_decode_dev(swap_area.dev);
                        if (swdev) {
+                               struct block_device *bd;
                                offset = swap_area.offset;
-                               data->swap = swap_type_of(swdev, offset, NULL);
+                               data->swap = swap_type_of(swdev, offset, &bd);
                                if (data->swap < 0)
                                        error = -ENODEV;
+                               
+                               inode_lock(bd->bd_inode);
+                               bd->bd_inode->i_flags &= ~S_SWAPFILE;
+                               inode_unlock(bd->bd_inode);
+                               bdput(bd);
                        } else {
                                data->swap = -1;
                                error = -EINVAL;
diff --git a/mm/swapfile.c b/mm/swapfile.c
index dab43523afdd..c7c83d3a313b 100644
--- a/mm/swapfile.c
+++ b/mm/swapfile.c
@@ -1799,6 +1799,32 @@ int swap_type_of(dev_t device, sector_t offset, struct 
block_device **bdev_p)
        return -ENODEV;
 }
 
+/* Re-lock swap devices after resuming from userspace suspend. */
+void swap_relockall(void)
+{
+       int type;
+
+       spin_lock(&swap_lock);
+       for (type = 0; type < nr_swapfiles; type++) {
+               struct swap_info_struct *sis = swap_info[type];
+               struct block_device *bdev = bdgrab(sis->bdev);
+
+               /*
+                * uswsusp only knows how to suspend to block devices, so we
+                * can skip swap files.
+                */
+               if (!(sis->flags & SWP_WRITEOK) ||
+                   !(sis->flags & SWP_BLKDEV))
+                       continue;
+
+               inode_lock(bdev->bd_inode);
+               bdev->bd_inode->i_flags |= S_SWAPFILE;
+               inode_unlock(bdev->bd_inode);
+               bdput(bdev);
+       }
+       spin_unlock(&swap_lock);
+}
+
 /*
  * Get the (PAGE_SIZE) block corresponding to given offset on the swapdev
  * corresponding to given index in swap_info (swap type).

-- 
You received this bug notification because you are a member of Kernel
Packages, which is subscribed to linux-5.4 in Ubuntu.
https://bugs.launchpad.net/bugs/1864930

Title:
  brightness setting  and sleep/suspend (echo mem > /sys/power/state) ,
  s2ram and s2disk fail for 5.4.0 and s2disk fail for 5.4.22

Status in linux-5.4 package in Ubuntu:
  New

Bug description:
  1) After resuming from suspend (uswsusp/s2ram) and/or after resuming
  from "echo mem > /sys/power/state" there is a black screen on laptop
  after resume with 5.4.0-14-generic kernel only.  Kernel seems to be
  working as CTRL+ALT+F2 and CTRL+ALT+DEL restarts laptop.

   A) 3 Different combinations of this distro with other kernels work
  well:

    kubunut20.04  + linux-image-5.3.0-40-generic 
     (copied  from kubuntu 19.10 from /lib/modules/5.3.0-40-generic and 
/boot/vmlinuz-5.3.0-40-generic)

  Installed from
  https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.6-rc3/

    kubuntu20.04  + linux-image-unsigned-5.5.6-050506-generic  is working.
    kubuntu20.04  + linux-image-unsigned-5.6.0-050600rc3-generic  is working.  
      
    B) This kernel 5.4.0-14-generic when copied manually into kubuntu 19.10 
behaves the same as in  20.04 (NOT WORKING for suspend to ram)
   
  2) setting brightness with keys on laptop keyboard does not work for this 
kernel 5.4.0-14-generic only  
  Neither using this command line method
  marian@kubuntu2004:~/Downloads$ cat 
/sys/class/backlight/intel_backlight/max_brightness
  255
  marian@kubuntu2004:~/Downloads$ cat 
/sys/class/backlight/intel_backlight/max_brightness
  255
  marian@kubuntu2004:~/Downloads$ cat 
/sys/class/backlight/intel_backlight/actual_brightness
  255
  marian@kubuntu2004:~/Downloads$ cat 
/sys/class/backlight/intel_backlight/brightness
  242
  marian@kubuntu2004:~/Downloads$ echo 200 | sudo tee 
/sys/class/backlight/intel_backlight/brightness
  200
  marian@kubuntu2004:~/Downloads$ cat 
/sys/class/backlight/intel_backlight/brightness
  Again kernel 5.3 copied into kubuntu20.04 got working brigthness keys.

  However this works for all tested kernels above (including 5.4.0-14-generic) 
  xrandr --output eDP-1 --brightness 0.8

  3) after uswsusp/hibernate (s2disk) and  "echo disk > /sys/power/state" do 
not seem to resume/thaw  
  for those kernels: linux-image-5.4.0-14-generic, 
linux-image-unsigned-5.5.6-050506-generic , 
linux-image-unsigned-5.6.0-050600rc3-generic, on the other hand kernel 
linux-image-5.3.0-40-generic manually copied from kubuntu 19.10 into kubuntu 
20.04 seems to be working fine when thawing/resuming from hibernation.

    Again I tested different combination of kernels and distros for this issue.
    This kernel (5.4.0-14-generic) also does not work for hibernate/resume even 
when copied from kubuntu20.04  into kubuntu19.10

  
  4) 
  Starting kubuntu without installation from daily build from 25th Feb 2020 
shows the same problem for brightness setting and for black screen after 
resuming from sleep.

  http://cdimage.ubuntu.com/kubuntu/daily-live/current/

  Note I always recreated imagerd in target place when copied kernels manually:
  update-initramfs -u -k 5.3.0-40-generic

  ProblemType: Bug
  DistroRelease: Ubuntu 20.04
  Package: linux-image-5.4.0-14-generic 5.4.0-14.17
  ProcVersionSignature: Ubuntu 5.4.0-14.17-generic 5.4.18
  Uname: Linux 5.4.0-14-generic x86_64
  ApportVersion: 2.20.11-0ubuntu18
  Architecture: amd64
  AudioDevicesInUse:
   USER        PID ACCESS COMMAND
   /dev/snd/controlC0:  marian     1214 F.... pulseaudio
  CurrentDesktop: KDE
  Date: Wed Feb 26 22:20:29 2020
  Lsusb:
   Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
   Bus 001 Device 003: ID 8087:0a2b Intel Corp. 
   Bus 001 Device 002: ID 05c8:0815 Cheng Uei Precision Industry Co., Ltd 
(Foxlink) HP Wide Vision FHD Camera
   Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
  MachineType: HP HP Spectre x360 Convertible 13-ae0xx
  ProcEnviron:
   LANGUAGE=
   TERM=xterm-256color
   PATH=(custom, no user)
   XDG_RUNTIME_DIR=<set>
   SHELL=/bin/bash
  ProcFB: 0 i915drmfb
  ProcKernelCmdLine: BOOT_IMAGE=/boot/vmlinuz-5.4.0-14-generic 
root=/dev/mapper/sysvg-ub2004deboot ro resume=/dev/nvme0n1p8 quiet splash 
resume=/dev/nvme0n1p8 vt.handoff=7
  RelatedPackageVersions:
   linux-restricted-modules-5.4.0-14-generic N/A
   linux-backports-modules-5.4.0-14-generic  N/A
   linux-firmware                            1.186
  SourcePackage: linux-5.4
  UpgradeStatus: No upgrade log present (probably fresh install)
  WifiSyslog:
   
  dmi.bios.date: 01/07/2019
  dmi.bios.vendor: AMI
  dmi.bios.version: F.24
  dmi.board.asset.tag: Base Board Asset Tag
  dmi.board.name: 83B9
  dmi.board.vendor: HP
  dmi.board.version: 56.43
  dmi.chassis.type: 31
  dmi.chassis.vendor: HP
  dmi.chassis.version: Chassis Version
  dmi.modalias: 
dmi:bvnAMI:bvrF.24:bd01/07/2019:svnHP:pnHPSpectrex360Convertible13-ae0xx:pvr:rvnHP:rn83B9:rvr56.43:cvnHP:ct31:cvrChassisVersion:
  dmi.product.family: 103C_5335KV HP Spectre
  dmi.product.name: HP Spectre x360 Convertible 13-ae0xx
  dmi.product.sku: 2QH34EA#ABU
  dmi.sys.vendor: HP

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/linux-5.4/+bug/1864930/+subscriptions

-- 
Mailing list: https://launchpad.net/~kernel-packages
Post to     : kernel-packages@lists.launchpad.net
Unsubscribe : https://launchpad.net/~kernel-packages
More help   : https://help.launchpad.net/ListHelp

Reply via email to