Kernel 5.9

AmigaOne X5000 platform specific issues related to Linux only.
User avatar
Amiguy
Posts: 93
Joined: Mon May 15, 2017 8:01 pm
Location: France

Re: Kernel 5.9

Post by Amiguy »

It works. The download was not good.
Screenshot at 2020-09-14 18-56-23.png
I noticed a red "FAILED" message when scrolling through the initial text that I never had before. Unable to read this message, it’s too fast. Is there a way to stop it to read or pause it?
Amiga 1200 2Mb Chip - PiStorm32 lite - CF 128Gb - Indivision MK3 - GOEX Drive - WB 3.2.2.1
AmigaOne X5000 2Ghz / 8Gb Ram - SSD 2x4Tb - Radeon RX 580 4Gb - Sound Blaster Audigy FX 5.1 SBX - AmigaOS4.1 FE
User avatar
Skateman
Posts: 863
Joined: Thu Aug 10, 2017 8:36 pm
Location: The Netherlands

Re: Kernel 5.9

Post by Skateman »

Great!!!!
AmigaOne X5000 -> 2GHz / 16GB RAM / Radeon RX 570 / Radeon X1950 / M-Audio 5.1 -> AmigaOS / Linux
Amiga 1200 -> Recapped / 68ec020 ACA 1221ec / CF HDD / RetroNET connected to the world
Vampire 4SA - RPi4 Running AmiKitXE Full
User avatar
xeno74
Posts: 9382
Joined: Fri Mar 23, 2012 7:58 am

Re: Kernel 5.9

Post by xeno74 »

Fantastic! :-)
http://www.amigalinux.org
http://www.supertuxkart-amiga.de

Running Linux on AmigaONEs can require some tinkering.
User avatar
kilaueabart
Posts: 1073
Joined: Mon Mar 05, 2012 2:36 am

Re: Kernel 5.9

Post by kilaueabart »

rc5 works on my machine too. Surprise bonus: Bluetooth is back. For some reason it had not come on lately.
User avatar
xeno74
Posts: 9382
Joined: Fri Mar 23, 2012 7:58 am

Re: Kernel 5.9

Post by xeno74 »

kilaueabart wrote: Tue Sep 15, 2020 5:25 pm rc5 works on my machine too. Surprise bonus: Bluetooth is back. For some reason it had not come on lately.
Thank you for testing! :-)
http://www.amigalinux.org
http://www.supertuxkart-amiga.de

Running Linux on AmigaONEs can require some tinkering.
User avatar
xeno74
Posts: 9382
Joined: Fri Mar 23, 2012 7:58 am

Re: Kernel 5.9

Post by xeno74 »

Hi All,

I tried to compile the RC6 today but unfortunately it doesn't compile.

Error messages:

Code: Select all

drivers/dax/super.c:325:6: error: redefinition of ‘dax_supported’
 bool dax_supported(struct dax_device *dax_dev, struct block_device *bdev,
      ^~~~~~~~~~~~~
In file included from drivers/dax/super.c:16:0:
./include/linux/dax.h:162:20: note: previous definition of ‘dax_supported’ was here
 static inline bool dax_supported(struct dax_device *dax_dev,
                    ^~~~~~~~~~~~~
scripts/Makefile.build:283: recipe for target 'drivers/dax/super.o' failed
make[2]: *** [drivers/dax/super.o] Error 1
scripts/Makefile.build:500: recipe for target 'drivers/dax' failed
make[1]: *** [drivers/dax] Error 2
Makefile:1784: recipe for target 'drivers' failed
make: *** [drivers] Error 2
This bug is already known: PROBLEM: 5.9.0-rc6 fails to compile due to 'redefinition of ‘dax_supported’'

The problematic commit: dm: Call proper helper to determine dax support

I created a patch (dax.patch):

Code: Select all

diff -rupN a/drivers/dax/super.c b/drivers/dax/super.c
--- a/drivers/dax/super.c	2020-09-21 01:33:55.000000000 +0200
+++ b/drivers/dax/super.c	2020-09-21 11:48:56.749207387 +0200
@@ -85,12 +85,6 @@ bool __generic_fsdax_supported(struct da
 		return false;
 	}
 
-	if (!dax_dev) {
-		pr_debug("%s: error: dax unsupported by block device\n",
-				bdevname(bdev, buf));
-		return false;
-	}
-
 	err = bdev_dax_pgoff(bdev, start, PAGE_SIZE, &pgoff);
 	if (err) {
 		pr_info("%s: error: unaligned partition for dax\n",
@@ -106,6 +100,12 @@ bool __generic_fsdax_supported(struct da
 		return false;
 	}
 
+	if (!dax_dev || !bdev_dax_supported(bdev, blocksize)) {
+		pr_debug("%s: error: dax unsupported by block device\n",
+				bdevname(bdev, buf));
+		return false;
+	}
+
 	id = dax_read_lock();
 	len = dax_direct_access(dax_dev, pgoff, 1, &kaddr, &pfn);
 	len2 = dax_direct_access(dax_dev, pgoff_end, 1, &end_kaddr, &end_pfn);
@@ -325,15 +325,11 @@ EXPORT_SYMBOL_GPL(dax_direct_access);
 bool dax_supported(struct dax_device *dax_dev, struct block_device *bdev,
 		int blocksize, sector_t start, sector_t len)
 {
-	if (!dax_dev)
-		return false;
-
 	if (!dax_alive(dax_dev))
 		return false;
 
 	return dax_dev->ops->dax_supported(dax_dev, bdev, blocksize, start, len);
 }
-EXPORT_SYMBOL_GPL(dax_supported);
 
 size_t dax_copy_from_iter(struct dax_device *dax_dev, pgoff_t pgoff, void *addr,
 		size_t bytes, struct iov_iter *i)
diff -rupN a/drivers/md/dm-table.c b/drivers/md/dm-table.c
--- a/drivers/md/dm-table.c	2020-09-21 01:33:55.000000000 +0200
+++ b/drivers/md/dm-table.c	2020-09-21 11:49:57.656110596 +0200
@@ -860,14 +860,10 @@ EXPORT_SYMBOL_GPL(dm_table_set_type);
 int device_supports_dax(struct dm_target *ti, struct dm_dev *dev,
 			sector_t start, sector_t len, void *data)
 {
-	int blocksize = *(int *) data, id;
-	bool rc;
+	int blocksize = *(int *) data;
 
-	id = dax_read_lock();
-	rc = dax_supported(dev->dax_dev, dev->bdev, blocksize, start, len);
-	dax_read_unlock(id);
-
-	return rc;
+	return generic_fsdax_supported(dev->dax_dev, dev->bdev, blocksize,
+				       start, len);
 }
 
 /* Check devices support synchronous DAX */
diff -rupN a/include/linux/dax.h b/include/linux/dax.h
--- a/include/linux/dax.h	2020-09-21 01:33:55.000000000 +0200
+++ b/include/linux/dax.h	2020-09-21 11:50:31.919050184 +0200
@@ -130,8 +130,6 @@ static inline bool generic_fsdax_support
 	return __generic_fsdax_supported(dax_dev, bdev, blocksize, start,
 			sectors);
 }
-bool dax_supported(struct dax_device *dax_dev, struct block_device *bdev,
-		int blocksize, sector_t start, sector_t len);
 
 static inline void fs_put_dax(struct dax_device *dax_dev)
 {
@@ -159,13 +157,6 @@ static inline bool generic_fsdax_support
 	return false;
 }
 
-static inline bool dax_supported(struct dax_device *dax_dev,
-		struct block_device *bdev, int blocksize, sector_t start,
-		sector_t len)
-{
-	return false;
-}
-
 static inline void fs_put_dax(struct dax_device *dax_dev)
 {
 }
@@ -198,23 +189,14 @@ static inline void dax_unlock_page(struc
 }
 #endif
 
-#if IS_ENABLED(CONFIG_DAX)
 int dax_read_lock(void);
 void dax_read_unlock(int id);
-#else
-static inline int dax_read_lock(void)
-{
-	return 0;
-}
-
-static inline void dax_read_unlock(int id)
-{
-}
-#endif /* CONFIG_DAX */
 bool dax_alive(struct dax_device *dax_dev);
 void *dax_get_private(struct dax_device *dax_dev);
 long dax_direct_access(struct dax_device *dax_dev, pgoff_t pgoff, long nr_pages,
 		void **kaddr, pfn_t *pfn);
+bool dax_supported(struct dax_device *dax_dev, struct block_device *bdev,
+		int blocksize, sector_t start, sector_t len);
 size_t dax_copy_from_iter(struct dax_device *dax_dev, pgoff_t pgoff, void *addr,
 		size_t bytes, struct iov_iter *i);
 size_t dax_copy_to_iter(struct dax_device *dax_dev, pgoff_t pgoff, void *addr,
Cheers,
Christian
http://www.amigalinux.org
http://www.supertuxkart-amiga.de

Running Linux on AmigaONEs can require some tinkering.
User avatar
Skateman
Posts: 863
Joined: Thu Aug 10, 2017 8:36 pm
Location: The Netherlands

Re: Kernel 5.9

Post by Skateman »

Kernel 5.9 RC6 is running fine on the AmigaOne X5000

Image

Big picture: http://www.skateman.nl/wp-content/uploa ... 170419.png
AmigaOne X5000 -> 2GHz / 16GB RAM / Radeon RX 570 / Radeon X1950 / M-Audio 5.1 -> AmigaOS / Linux
Amiga 1200 -> Recapped / 68ec020 ACA 1221ec / CF HDD / RetroNET connected to the world
Vampire 4SA - RPi4 Running AmiKitXE Full
User avatar
xeno74
Posts: 9382
Joined: Fri Mar 23, 2012 7:58 am

Re: Kernel 5.9

Post by xeno74 »

Skateman wrote: Mon Sep 21, 2020 4:09 pm Kernel 5.9 RC6 is running fine on the AmigaOne X5000
Thank you for testing the RC6! :-) Have a nice evening! :-)
http://www.amigalinux.org
http://www.supertuxkart-amiga.de

Running Linux on AmigaONEs can require some tinkering.
User avatar
kilaueabart
Posts: 1073
Joined: Mon Mar 05, 2012 2:36 am

Re: Kernel 5.9

Post by kilaueabart »

rc6 works fine on my AmigaOne X5000 too! I did have to load the new modules and reboot, having forgotten that the modules are always changed too.
Post Reply