From: Sasha Levin Date: Thu, 10 Sep 2020 02:38:09 +0000 (-0400) Subject: Fixes for 4.4 X-Git-Tag: v4.4.236~11 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=66574001d4b5333c13abf6473cc82a0c9a81526f;p=thirdparty%2Fkernel%2Fstable-queue.git Fixes for 4.4 Signed-off-by: Sasha Levin --- diff --git a/queue-4.4/affs-fix-basic-permission-bits-to-actually-work.patch b/queue-4.4/affs-fix-basic-permission-bits-to-actually-work.patch new file mode 100644 index 00000000000..4fd3114443f --- /dev/null +++ b/queue-4.4/affs-fix-basic-permission-bits-to-actually-work.patch @@ -0,0 +1,179 @@ +From 3ab007d475a1754bc47231ec4f82f08961bbdb97 Mon Sep 17 00:00:00 2001 +From: Sasha Levin +Date: Thu, 27 Aug 2020 17:49:00 +0200 +Subject: affs: fix basic permission bits to actually work + +From: Max Staudt + +[ Upstream commit d3a84a8d0dde4e26bc084b36ffcbdc5932ac85e2 ] + +The basic permission bits (protection bits in AmigaOS) have been broken +in Linux' AFFS - it would only set bits, but never delete them. +Also, contrary to the documentation, the Archived bit was not handled. + +Let's fix this for good, and set the bits such that Linux and classic +AmigaOS can coexist in the most peaceful manner. + +Also, update the documentation to represent the current state of things. + +Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2") +Cc: stable@vger.kernel.org +Signed-off-by: Max Staudt +Signed-off-by: David Sterba +Signed-off-by: Sasha Levin +--- + Documentation/filesystems/affs.txt | 16 ++++++++++------ + fs/affs/amigaffs.c | 27 +++++++++++++++++++++++++++ + fs/affs/file.c | 26 +++++++++++++++++++++++++- + 3 files changed, 62 insertions(+), 7 deletions(-) + +diff --git a/Documentation/filesystems/affs.txt b/Documentation/filesystems/affs.txt +index 71b63c2b98410..a8f1a58e36922 100644 +--- a/Documentation/filesystems/affs.txt ++++ b/Documentation/filesystems/affs.txt +@@ -93,13 +93,15 @@ The Amiga protection flags RWEDRWEDHSPARWED are handled as follows: + + - R maps to r for user, group and others. On directories, R implies x. + +- - If both W and D are allowed, w will be set. ++ - W maps to w. + + - E maps to x. + +- - H and P are always retained and ignored under Linux. ++ - D is ignored. + +- - A is always reset when a file is written to. ++ - H, S and P are always retained and ignored under Linux. ++ ++ - A is cleared when a file is written to. + + User id and group id will be used unless set[gu]id are given as mount + options. Since most of the Amiga file systems are single user systems +@@ -111,11 +113,13 @@ Linux -> Amiga: + + The Linux rwxrwxrwx file mode is handled as follows: + +- - r permission will set R for user, group and others. ++ - r permission will allow R for user, group and others. ++ ++ - w permission will allow W for user, group and others. + +- - w permission will set W and D for user, group and others. ++ - x permission of the user will allow E for plain files. + +- - x permission of the user will set E for plain files. ++ - D will be allowed for user, group and others. + + - All other flags (suid, sgid, ...) are ignored and will + not be retained. +diff --git a/fs/affs/amigaffs.c b/fs/affs/amigaffs.c +index a148c7ecb35d3..c1b344e56e855 100644 +--- a/fs/affs/amigaffs.c ++++ b/fs/affs/amigaffs.c +@@ -417,24 +417,51 @@ mode_to_prot(struct inode *inode) + u32 prot = AFFS_I(inode)->i_protect; + umode_t mode = inode->i_mode; + ++ /* ++ * First, clear all RWED bits for owner, group, other. ++ * Then, recalculate them afresh. ++ * ++ * We'll always clear the delete-inhibit bit for the owner, as that is ++ * the classic single-user mode AmigaOS protection bit and we need to ++ * stay compatible with all scenarios. ++ * ++ * Since multi-user AmigaOS is an extension, we'll only set the ++ * delete-allow bit if any of the other bits in the same user class ++ * (group/other) are used. ++ */ ++ prot &= ~(FIBF_NOEXECUTE | FIBF_NOREAD ++ | FIBF_NOWRITE | FIBF_NODELETE ++ | FIBF_GRP_EXECUTE | FIBF_GRP_READ ++ | FIBF_GRP_WRITE | FIBF_GRP_DELETE ++ | FIBF_OTR_EXECUTE | FIBF_OTR_READ ++ | FIBF_OTR_WRITE | FIBF_OTR_DELETE); ++ ++ /* Classic single-user AmigaOS flags. These are inverted. */ + if (!(mode & 0100)) + prot |= FIBF_NOEXECUTE; + if (!(mode & 0400)) + prot |= FIBF_NOREAD; + if (!(mode & 0200)) + prot |= FIBF_NOWRITE; ++ ++ /* Multi-user extended flags. Not inverted. */ + if (mode & 0010) + prot |= FIBF_GRP_EXECUTE; + if (mode & 0040) + prot |= FIBF_GRP_READ; + if (mode & 0020) + prot |= FIBF_GRP_WRITE; ++ if (mode & 0070) ++ prot |= FIBF_GRP_DELETE; ++ + if (mode & 0001) + prot |= FIBF_OTR_EXECUTE; + if (mode & 0004) + prot |= FIBF_OTR_READ; + if (mode & 0002) + prot |= FIBF_OTR_WRITE; ++ if (mode & 0007) ++ prot |= FIBF_OTR_DELETE; + + AFFS_I(inode)->i_protect = prot; + } +diff --git a/fs/affs/file.c b/fs/affs/file.c +index 659c579c4588b..38e0fd4caf2bb 100644 +--- a/fs/affs/file.c ++++ b/fs/affs/file.c +@@ -426,6 +426,24 @@ static int affs_write_begin(struct file *file, struct address_space *mapping, + return ret; + } + ++static int affs_write_end(struct file *file, struct address_space *mapping, ++ loff_t pos, unsigned int len, unsigned int copied, ++ struct page *page, void *fsdata) ++{ ++ struct inode *inode = mapping->host; ++ int ret; ++ ++ ret = generic_write_end(file, mapping, pos, len, copied, page, fsdata); ++ ++ /* Clear Archived bit on file writes, as AmigaOS would do */ ++ if (AFFS_I(inode)->i_protect & FIBF_ARCHIVED) { ++ AFFS_I(inode)->i_protect &= ~FIBF_ARCHIVED; ++ mark_inode_dirty(inode); ++ } ++ ++ return ret; ++} ++ + static sector_t _affs_bmap(struct address_space *mapping, sector_t block) + { + return generic_block_bmap(mapping,block,affs_get_block); +@@ -435,7 +453,7 @@ const struct address_space_operations affs_aops = { + .readpage = affs_readpage, + .writepage = affs_writepage, + .write_begin = affs_write_begin, +- .write_end = generic_write_end, ++ .write_end = affs_write_end, + .direct_IO = affs_direct_IO, + .bmap = _affs_bmap + }; +@@ -793,6 +811,12 @@ done: + if (tmp > inode->i_size) + inode->i_size = AFFS_I(inode)->mmu_private = tmp; + ++ /* Clear Archived bit on file writes, as AmigaOS would do */ ++ if (AFFS_I(inode)->i_protect & FIBF_ARCHIVED) { ++ AFFS_I(inode)->i_protect &= ~FIBF_ARCHIVED; ++ mark_inode_dirty(inode); ++ } ++ + err_first_bh: + unlock_page(page); + page_cache_release(page); +-- +2.25.1 + diff --git a/queue-4.4/alsa-firewire-digi00x-add-support-for-console-models.patch b/queue-4.4/alsa-firewire-digi00x-add-support-for-console-models.patch new file mode 100644 index 00000000000..e0013e53e51 --- /dev/null +++ b/queue-4.4/alsa-firewire-digi00x-add-support-for-console-models.patch @@ -0,0 +1,126 @@ +From 10cb1cd8c9c82d96ecc636eed4614d2174d187f6 Mon Sep 17 00:00:00 2001 +From: Sasha Levin +Date: Sun, 2 Apr 2017 23:48:24 +0900 +Subject: ALSA: firewire-digi00x: add support for console models of Digi00x + series + +From: Takashi Sakamoto + +[ Upstream commit 13e005f9f933a35b5e55c9d36f151efe2a8383ec ] + +Digi00x series includes two types of unit; rack and console. As long as +reading information on config rom of Digi 002 console, 'MODEL_ID' field +has a different value from the one on Digi 002 rack. + +We've already got a test report from users with Digi 003 rack. We can +assume that console type and rack type has different value in the field. + +This commit adds a device entry for console type. For following commits, +this commit also adds a member to 'struct snd_digi00x' to identify console +type. + +$ cd linux-firewire-utils/src +$ python2 ./crpp < /sys/bus/firewire/devices/fw1/config_rom + ROM header and bus information block + ----------------------------------------------------------------- +400 0404f9d0 bus_info_length 4, crc_length 4, crc 63952 +404 31333934 bus_name "1394" +408 60647002 irmc 0, cmc 1, isc 1, bmc 0, cyc_clk_acc 100, max_rec 7 (256) +40c 00a07e00 company_id 00a07e | +410 00a30000 device_id 0000a30000 | EUI-64 00a07e0000a30000 + + root directory + ----------------------------------------------------------------- +414 00058a39 directory_length 5, crc 35385 +418 0c0043a0 node capabilities +41c 04000001 hardware version +420 0300a07e vendor +424 81000007 --> descriptor leaf at 440 +428 d1000001 --> unit directory at 42c + + unit directory at 42c + ----------------------------------------------------------------- +42c 00046674 directory_length 4, crc 26228 +430 120000a3 specifier id +434 13000001 version +438 17000001 model +43c 81000007 --> descriptor leaf at 458 + + descriptor leaf at 440 + ----------------------------------------------------------------- +440 00055913 leaf_length 5, crc 22803 +444 000050f2 descriptor_type 00, specifier_ID 50f2 +448 80000000 +44c 44696769 +450 64657369 +454 676e0000 + + descriptor leaf at 458 + ----------------------------------------------------------------- +458 0004a6fd leaf_length 4, crc 42749 +45c 00000000 textual descriptor +460 00000000 minimal ASCII +464 44696769 "Digi" +468 20303032 " 002" + +Signed-off-by: Takashi Sakamoto +Signed-off-by: Takashi Iwai +Signed-off-by: Sasha Levin +--- + sound/firewire/digi00x/digi00x.c | 13 +++++++++++-- + sound/firewire/digi00x/digi00x.h | 1 + + 2 files changed, 12 insertions(+), 2 deletions(-) + +diff --git a/sound/firewire/digi00x/digi00x.c b/sound/firewire/digi00x/digi00x.c +index 1f33b7a1fca4c..6973a7ff1c503 100644 +--- a/sound/firewire/digi00x/digi00x.c ++++ b/sound/firewire/digi00x/digi00x.c +@@ -13,7 +13,8 @@ MODULE_AUTHOR("Takashi Sakamoto "); + MODULE_LICENSE("GPL v2"); + + #define VENDOR_DIGIDESIGN 0x00a07e +-#define MODEL_DIGI00X 0x000002 ++#define MODEL_CONSOLE 0x000001 ++#define MODEL_RACK 0x000002 + + static int name_card(struct snd_dg00x *dg00x) + { +@@ -75,6 +76,8 @@ static int snd_dg00x_probe(struct fw_unit *unit, + spin_lock_init(&dg00x->lock); + init_waitqueue_head(&dg00x->hwdep_wait); + ++ dg00x->is_console = entry->model_id == MODEL_CONSOLE; ++ + err = name_card(dg00x); + if (err < 0) + goto error; +@@ -138,7 +141,13 @@ static const struct ieee1394_device_id snd_dg00x_id_table[] = { + .match_flags = IEEE1394_MATCH_VENDOR_ID | + IEEE1394_MATCH_MODEL_ID, + .vendor_id = VENDOR_DIGIDESIGN, +- .model_id = MODEL_DIGI00X, ++ .model_id = MODEL_CONSOLE, ++ }, ++ { ++ .match_flags = IEEE1394_MATCH_VENDOR_ID | ++ IEEE1394_MATCH_MODEL_ID, ++ .vendor_id = VENDOR_DIGIDESIGN, ++ .model_id = MODEL_RACK, + }, + {} + }; +diff --git a/sound/firewire/digi00x/digi00x.h b/sound/firewire/digi00x/digi00x.h +index 907e739936777..d641a0cf077a3 100644 +--- a/sound/firewire/digi00x/digi00x.h ++++ b/sound/firewire/digi00x/digi00x.h +@@ -57,6 +57,7 @@ struct snd_dg00x { + /* For asynchronous MIDI controls. */ + struct snd_rawmidi_substream *in_control; + struct snd_fw_async_midi_port out_control; ++ bool is_console; + }; + + #define DG00X_ADDR_BASE 0xffffe0000000ull +-- +2.25.1 + diff --git a/queue-4.4/alsa-firewire-digi00x-exclude-avid-adrenaline-from-d.patch b/queue-4.4/alsa-firewire-digi00x-exclude-avid-adrenaline-from-d.patch new file mode 100644 index 00000000000..fd12bc8101c --- /dev/null +++ b/queue-4.4/alsa-firewire-digi00x-exclude-avid-adrenaline-from-d.patch @@ -0,0 +1,113 @@ +From a2f667fa6f8cd486dd0b3af18ee0e095f248650f Mon Sep 17 00:00:00 2001 +From: Sasha Levin +Date: Sun, 23 Aug 2020 16:55:45 +0900 +Subject: ALSA: firewire-digi00x: exclude Avid Adrenaline from detection + +From: Takashi Sakamoto + +[ Upstream commit acd46a6b6de88569654567810acad2b0a0a25cea ] + +Avid Adrenaline is reported that ALSA firewire-digi00x driver is bound to. +However, as long as he investigated, the design of this model is hardly +similar to the one of Digi 00x family. It's better to exclude the model +from modalias of ALSA firewire-digi00x driver. + +This commit changes device entries so that the model is excluded. + +$ python3 crpp < ~/git/am-config-rom/misc/avid-adrenaline.img + ROM header and bus information block + ----------------------------------------------------------------- +400 04203a9c bus_info_length 4, crc_length 32, crc 15004 +404 31333934 bus_name "1394" +408 e064a002 irmc 1, cmc 1, isc 1, bmc 0, cyc_clk_acc 100, max_rec 10 (2048) +40c 00a07e01 company_id 00a07e | +410 00085257 device_id 0100085257 | EUI-64 00a07e0100085257 + + root directory + ----------------------------------------------------------------- +414 0005d08c directory_length 5, crc 53388 +418 0300a07e vendor +41c 8100000c --> descriptor leaf at 44c +420 0c008380 node capabilities +424 8d000002 --> eui-64 leaf at 42c +428 d1000004 --> unit directory at 438 + + eui-64 leaf at 42c + ----------------------------------------------------------------- +42c 0002410f leaf_length 2, crc 16655 +430 00a07e01 company_id 00a07e | +434 00085257 device_id 0100085257 | EUI-64 00a07e0100085257 + + unit directory at 438 + ----------------------------------------------------------------- +438 0004d6c9 directory_length 4, crc 54985 +43c 1200a02d specifier id: 1394 TA +440 13014001 version: Vender Unique and AV/C +444 17000001 model +448 81000009 --> descriptor leaf at 46c + + descriptor leaf at 44c + ----------------------------------------------------------------- +44c 00077205 leaf_length 7, crc 29189 +450 00000000 textual descriptor +454 00000000 minimal ASCII +458 41766964 "Avid" +45c 20546563 " Tec" +460 686e6f6c "hnol" +464 6f677900 "ogy" +468 00000000 + + descriptor leaf at 46c + ----------------------------------------------------------------- +46c 000599a5 leaf_length 5, crc 39333 +470 00000000 textual descriptor +474 00000000 minimal ASCII +478 41647265 "Adre" +47c 6e616c69 "nali" +480 6e650000 "ne" + +Reported-by: Simon Wood +Fixes: 9edf723fd858 ("ALSA: firewire-digi00x: add skeleton for Digi 002/003 family") +Cc: # 4.4+ +Signed-off-by: Takashi Sakamoto +Link: https://lore.kernel.org/r/20200823075545.56305-1-o-takashi@sakamocchi.jp +Signed-off-by: Takashi Iwai +Signed-off-by: Sasha Levin +--- + sound/firewire/digi00x/digi00x.c | 5 +++++ + 1 file changed, 5 insertions(+) + +diff --git a/sound/firewire/digi00x/digi00x.c b/sound/firewire/digi00x/digi00x.c +index 6973a7ff1c503..659e8224a4dee 100644 +--- a/sound/firewire/digi00x/digi00x.c ++++ b/sound/firewire/digi00x/digi00x.c +@@ -15,6 +15,7 @@ MODULE_LICENSE("GPL v2"); + #define VENDOR_DIGIDESIGN 0x00a07e + #define MODEL_CONSOLE 0x000001 + #define MODEL_RACK 0x000002 ++#define SPEC_VERSION 0x000001 + + static int name_card(struct snd_dg00x *dg00x) + { +@@ -139,14 +140,18 @@ static const struct ieee1394_device_id snd_dg00x_id_table[] = { + /* Both of 002/003 use the same ID. */ + { + .match_flags = IEEE1394_MATCH_VENDOR_ID | ++ IEEE1394_MATCH_VERSION | + IEEE1394_MATCH_MODEL_ID, + .vendor_id = VENDOR_DIGIDESIGN, ++ .version = SPEC_VERSION, + .model_id = MODEL_CONSOLE, + }, + { + .match_flags = IEEE1394_MATCH_VENDOR_ID | ++ IEEE1394_MATCH_VERSION | + IEEE1394_MATCH_MODEL_ID, + .vendor_id = VENDOR_DIGIDESIGN, ++ .version = SPEC_VERSION, + .model_id = MODEL_RACK, + }, + {} +-- +2.25.1 + diff --git a/queue-4.4/alsa-firewire-tascam-exclude-tascam-fe-8-from-detect.patch b/queue-4.4/alsa-firewire-tascam-exclude-tascam-fe-8-from-detect.patch new file mode 100644 index 00000000000..e7860aded93 --- /dev/null +++ b/queue-4.4/alsa-firewire-tascam-exclude-tascam-fe-8-from-detect.patch @@ -0,0 +1,76 @@ +From 9802d252e8e62c3c773d99d728b6bf28ff9f31b3 Mon Sep 17 00:00:00 2001 +From: Sasha Levin +Date: Sun, 23 Aug 2020 16:55:37 +0900 +Subject: ALSA; firewire-tascam: exclude Tascam FE-8 from detection + +From: Takashi Sakamoto + +Tascam FE-8 is known to support communication by asynchronous transaction +only. The support can be implemented in userspace application and +snd-firewire-ctl-services project has the support. However, ALSA +firewire-tascam driver is bound to the model. + +This commit changes device entries so that the model is excluded. In a +commit 53b3ffee7885 ("ALSA: firewire-tascam: change device probing +processing"), I addressed to the concern that version field in +configuration differs depending on installed firmware. However, as long +as I checked, the version number is fixed. It's safe to return version +number back to modalias. + +Fixes: 53b3ffee7885 ("ALSA: firewire-tascam: change device probing processing") +Cc: # 4.4+ +Signed-off-by: Takashi Sakamoto +Link: https://lore.kernel.org/r/20200823075537.56255-1-o-takashi@sakamocchi.jp +Signed-off-by: Takashi Iwai +--- + sound/firewire/tascam/tascam.c | 30 +++++++++++++++++++++++++++++- + 1 file changed, 29 insertions(+), 1 deletion(-) + +diff --git a/sound/firewire/tascam/tascam.c b/sound/firewire/tascam/tascam.c +index ee0bc18395088..a4143f45c7f7a 100644 +--- a/sound/firewire/tascam/tascam.c ++++ b/sound/firewire/tascam/tascam.c +@@ -172,11 +172,39 @@ static void snd_tscm_remove(struct fw_unit *unit) + } + + static const struct ieee1394_device_id snd_tscm_id_table[] = { ++ // Tascam, FW-1884. + { + .match_flags = IEEE1394_MATCH_VENDOR_ID | +- IEEE1394_MATCH_SPECIFIER_ID, ++ IEEE1394_MATCH_SPECIFIER_ID | ++ IEEE1394_MATCH_VERSION, + .vendor_id = 0x00022e, + .specifier_id = 0x00022e, ++ .version = 0x800000, ++ }, ++ // Tascam, FE-8 (.version = 0x800001) ++ // This kernel module doesn't support FE-8 because the most of features ++ // can be implemented in userspace without any specific support of this ++ // module. ++ // ++ // .version = 0x800002 is unknown. ++ // ++ // Tascam, FW-1082. ++ { ++ .match_flags = IEEE1394_MATCH_VENDOR_ID | ++ IEEE1394_MATCH_SPECIFIER_ID | ++ IEEE1394_MATCH_VERSION, ++ .vendor_id = 0x00022e, ++ .specifier_id = 0x00022e, ++ .version = 0x800003, ++ }, ++ // Tascam, FW-1804. ++ { ++ .match_flags = IEEE1394_MATCH_VENDOR_ID | ++ IEEE1394_MATCH_SPECIFIER_ID | ++ IEEE1394_MATCH_VERSION, ++ .vendor_id = 0x00022e, ++ .specifier_id = 0x00022e, ++ .version = 0x800004, + }, + /* FE-08 requires reverse-engineering because it just has faders. */ + {} +-- +2.25.1 + diff --git a/queue-4.4/fs-affs-use-octal-for-permissions.patch b/queue-4.4/fs-affs-use-octal-for-permissions.patch new file mode 100644 index 00000000000..a38d81aee4e --- /dev/null +++ b/queue-4.4/fs-affs-use-octal-for-permissions.patch @@ -0,0 +1,95 @@ +From c3e2a24ff19f47b6d5905cc342ce23fd32a28b4b Mon Sep 17 00:00:00 2001 +From: Sasha Levin +Date: Mon, 27 Feb 2017 14:27:52 -0800 +Subject: fs/affs: use octal for permissions + +From: Fabian Frederick + +[ Upstream commit 1bafd6f164d9ec9bf2fa9829051fbeb36342be0b ] + +According to commit f90774e1fd27 ("checkpatch: look for symbolic +permissions and suggest octal instead") + +Link: http://lkml.kernel.org/r/20170109191208.6085-5-fabf@skynet.be +Signed-off-by: Fabian Frederick +Cc: Al Viro +Signed-off-by: Andrew Morton +Signed-off-by: Linus Torvalds +Signed-off-by: Sasha Levin +--- + fs/affs/amigaffs.c | 36 ++++++++++++++++++------------------ + 1 file changed, 18 insertions(+), 18 deletions(-) + +diff --git a/fs/affs/amigaffs.c b/fs/affs/amigaffs.c +index 5fa92bc790ef7..a148c7ecb35d3 100644 +--- a/fs/affs/amigaffs.c ++++ b/fs/affs/amigaffs.c +@@ -390,23 +390,23 @@ prot_to_mode(u32 prot) + umode_t mode = 0; + + if (!(prot & FIBF_NOWRITE)) +- mode |= S_IWUSR; ++ mode |= 0200; + if (!(prot & FIBF_NOREAD)) +- mode |= S_IRUSR; ++ mode |= 0400; + if (!(prot & FIBF_NOEXECUTE)) +- mode |= S_IXUSR; ++ mode |= 0100; + if (prot & FIBF_GRP_WRITE) +- mode |= S_IWGRP; ++ mode |= 0020; + if (prot & FIBF_GRP_READ) +- mode |= S_IRGRP; ++ mode |= 0040; + if (prot & FIBF_GRP_EXECUTE) +- mode |= S_IXGRP; ++ mode |= 0010; + if (prot & FIBF_OTR_WRITE) +- mode |= S_IWOTH; ++ mode |= 0002; + if (prot & FIBF_OTR_READ) +- mode |= S_IROTH; ++ mode |= 0004; + if (prot & FIBF_OTR_EXECUTE) +- mode |= S_IXOTH; ++ mode |= 0001; + + return mode; + } +@@ -417,23 +417,23 @@ mode_to_prot(struct inode *inode) + u32 prot = AFFS_I(inode)->i_protect; + umode_t mode = inode->i_mode; + +- if (!(mode & S_IXUSR)) ++ if (!(mode & 0100)) + prot |= FIBF_NOEXECUTE; +- if (!(mode & S_IRUSR)) ++ if (!(mode & 0400)) + prot |= FIBF_NOREAD; +- if (!(mode & S_IWUSR)) ++ if (!(mode & 0200)) + prot |= FIBF_NOWRITE; +- if (mode & S_IXGRP) ++ if (mode & 0010) + prot |= FIBF_GRP_EXECUTE; +- if (mode & S_IRGRP) ++ if (mode & 0040) + prot |= FIBF_GRP_READ; +- if (mode & S_IWGRP) ++ if (mode & 0020) + prot |= FIBF_GRP_WRITE; +- if (mode & S_IXOTH) ++ if (mode & 0001) + prot |= FIBF_OTR_EXECUTE; +- if (mode & S_IROTH) ++ if (mode & 0004) + prot |= FIBF_OTR_READ; +- if (mode & S_IWOTH) ++ if (mode & 0002) + prot |= FIBF_OTR_WRITE; + + AFFS_I(inode)->i_protect = prot; +-- +2.25.1 + diff --git a/queue-4.4/series b/queue-4.4/series index b0ef38d194c..51ad6f3e41e 100644 --- a/queue-4.4/series +++ b/queue-4.4/series @@ -48,3 +48,8 @@ checkpatch-fix-the-usage-of-capture-group.patch mm-hugetlb-fix-a-race-between-hugetlb-sysctl-handlers.patch cfg80211-regulatory-reject-invalid-hints.patch net-usb-fix-uninit-was-stored-issue-in-asix_read_phy_addr.patch +alsa-firewire-digi00x-add-support-for-console-models.patch +alsa-firewire-digi00x-exclude-avid-adrenaline-from-d.patch +alsa-firewire-tascam-exclude-tascam-fe-8-from-detect.patch +fs-affs-use-octal-for-permissions.patch +affs-fix-basic-permission-bits-to-actually-work.patch