Skip to content

Commit

Permalink
Add support for linux 5.14
Browse files Browse the repository at this point in the history
  • Loading branch information
FritzOnFire committed Oct 22, 2021
1 parent 7fc66f0 commit 897c1f3
Show file tree
Hide file tree
Showing 2 changed files with 73 additions and 2 deletions.
7 changes: 5 additions & 2 deletions PKGBUILD
Expand Up @@ -17,12 +17,14 @@ source=('manual://raid_linux_driver_8_01_00_039_public.zip'
'dkms.conf'
'linux-4.15.patch'
'linux-5.4.patch'
'linux-5.6.patch')
'linux-5.6.patch'
'linux-5.14.patch')
md5sums=('f5692d2ef952f8c903af90cdd9eb3ce6'
'3a14dcc84daf257a62727bcde1882edf'
'461866e715a1fded49a3f7c043a173d7'
'cac98de11cc5bd61fff72ff1c8cf363d'
'bd1ef2b6bcefaec0abf7a832e937f01a')
'bd1ef2b6bcefaec0abf7a832e937f01a'
'956ccadfdf4fc4188ec0ab79b7311a71')

prepare() {
if [ ! -d ${_pkgbase}-${pkgver} ]; then
Expand All @@ -38,6 +40,7 @@ build() {
patch -p1 -i "${srcdir}"/linux-4.15.patch
patch -p1 -i "${srcdir}"/linux-5.4.patch
patch -p1 -i "${srcdir}"/linux-5.6.patch
patch -p1 -i "${srcdir}"/linux-5.14.patch

make KVERS="${_kver}" all
}
Expand Down
68 changes: 68 additions & 0 deletions linux-5.14.patch
@@ -0,0 +1,68 @@
diff --git a/rc.h b/rc.h
index 96528cd..c518656 100644
--- a/rc.h
+++ b/rc.h
@@ -43,6 +43,7 @@
#include <scsi/scsi_device.h>
#include <scsi/scsi_cmnd.h>
#include <scsi/scsi_tcq.h>
+#include <scsi/scsi_proto.h>

#include <linux/delay.h>
#include <linux/timer.h>
@@ -173,8 +174,8 @@ enum {
RC_ODD_DEVICE_ODDZ,
RC_ODD_DEVICE_ODDL,
RC_ODD_DEVICE_ODD8
-};
-
+};
+
//
// Pulled from rc_event.c
//
@@ -218,8 +219,8 @@ typedef struct rc_thread_s {

extern rc_thread_t rc_thread[];

-#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,13,0)
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,13,0)
#define DEVICE_ACPI_HANDLE(dev) ((acpi_handle)ACPI_HANDLE(dev))
-#endif
+#endif

#endif // _RC_OSHEADERS_H_
diff --git a/rc_msg.c b/rc_msg.c
index fb442d8..4e5071a 100644
--- a/rc_msg.c
+++ b/rc_msg.c
@@ -1465,8 +1465,10 @@ rc_msg_send_srb(struct scsi_cmnd * scp)
srb->dev_private = (char *)srb->sg_list + sg_list_size;
#if LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,26)
srb->timeout = scp->timeout_per_command/HZ;
-#else
+#elif LINUX_VERSION_CODE < KERNEL_VERSION(5,14,0)
srb->timeout = scp->request->timeout/HZ;
+#else
+ srb->timeout = scsi_cmd_to_rq(scp)->timeout/HZ;
#endif
srb->seq_num = rc_srb_seq_num++;

@@ -1868,7 +1870,7 @@ rc_msg_srb_complete(struct rc_srb_s *srb)
if (srb->status == RC_SRB_STATUS_SUCCESS) {
//rc_printk(RC_DEBUG2, "%s: seq_num %d SUCCESS\n", __FUNCTION__,
// srb->seq_num);
- scp->result = DID_OK << 16 | COMMAND_COMPLETE << 8 | GOOD;
+ scp->result = DID_OK << 16 | COMMAND_COMPLETE << 8 | SAM_STAT_GOOD;

GET_IO_REQUEST_LOCK_IRQSAVE(irql);
scp->scsi_done(scp);
@@ -1908,7 +1910,7 @@ rc_msg_srb_complete(struct rc_srb_s *srb)
*/
rc_dump_scp(scp);

- scp->result = DID_OK << 16 | COMMAND_COMPLETE << 8 | CHECK_CONDITION;
+ scp->result = DID_OK << 16 | COMMAND_COMPLETE << 8 | SAM_STAT_CHECK_CONDITION;

if (! (srb->flags & RC_SRB_FLAGS_SENSEVALID)) {
if (srb->status == RC_SRB_STATUS_INVALID_REQUEST) {

0 comments on commit 897c1f3

Please sign in to comment.