Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- diff -ruN rr268x_orig/inc/linux_32mpa/Makefile.def rr268x_patched/inc/linux_32mpa/Makefile.def
- --- rr268x_orig/inc/linux_32mpa/Makefile.def 2017-03-09 18:04:25.000000000 -0500
- +++ rr268x_patched/inc/linux_32mpa/Makefile.def 2017-03-09 18:24:38.000000000 -0500
- @@ -88,10 +88,12 @@
- $(error Cannot find kernel version. Check $(KERNELDIR)/include/linux/version.h.)
- endif
- +ifneq ($(MAJOR), 4)
- ifneq ($(MAJOR), 3)
- ifneq ($(KERNEL_VER), 2.6)
- ifneq ($(KERNEL_VER), 2.4)
- -$(error Only kernel 2.4/2.6/3.x is supported but you use $(KERNEL_VER))
- +$(error Only kernel 2.4/2.6/3.x/4.x is supported but you use $(KERNEL_VER))
- +endif
- endif
- endif
- endif
- diff -ruN rr268x_orig/osm/linux/install.sh rr268x_patched/osm/linux/install.sh
- --- rr268x_orig/osm/linux/install.sh 2017-03-09 18:04:25.000000000 -0500
- +++ rr268x_patched/osm/linux/install.sh 2017-03-09 18:33:46.000000000 -0500
- @@ -3,6 +3,8 @@
- if test "${KERNEL_VER-set}" = set; then echo "KERNEL_VER is not set"; exit 1; fi
- if test "${TARGETNAME-set}" = set; then echo "TARGETNAME is not set"; exit 1; fi
- +echo "Kernel Version ${KERNEL_VER} detected..."
- +
- PWD=`pwd`
- case ${KERNEL_VER} in
- @@ -10,7 +12,7 @@
- OBJ=o
- MODVER=`modinfo -f%{kernel_version} ${PWD}/${TARGETNAME}.${OBJ}`
- ;;
- - 2.6 | 3.* )
- + 2.6 | 3.* | 4.* )
- OBJ=ko
- MODVER=`modinfo -F vermagic ${PWD}/${TARGETNAME}.${OBJ} | cut -d' ' -f1`
- ;;
- diff -ruN rr268x_orig/osm/linux/os_linux.c rr268x_patched/osm/linux/os_linux.c
- --- rr268x_orig/osm/linux/os_linux.c 2017-03-09 18:04:25.000000000 -0500
- +++ rr268x_patched/osm/linux/os_linux.c 2017-03-09 20:14:01.000000000 -0500
- @@ -357,38 +357,51 @@
- struct block_device *bdev = bdget(MKDEV(major[i], minor));
- if (bdev &&
- #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,38)
- - blkdev_get(bdev, FMODE_READ,NULL)
- + blkdev_get(bdev, FMODE_READ, NULL)
- #elif LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,28)
- blkdev_get(bdev, FMODE_READ)
- #else
- blkdev_get(bdev, FMODE_READ, 0 __BDEV_RAW)
- #endif
- ==0) {
- - if (bdev->bd_disk && bdev->bd_disk->driverfs_dev==&SDptr->sdev_gendev) {
- - if (vbus_ext->sd_flags[id] & SD_FLAG_REVALIDATE) {
- - if (bdev->bd_disk->fops->revalidate_disk)
- - bdev->bd_disk->fops->revalidate_disk(bdev->bd_disk);
- -#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,15)
- - mutex_lock(&bdev->bd_inode->i_mutex);
- + if (bdev->bd_disk) {
- + struct gendisk *cur_gendisk = bdev->bd_disk;
- +
- +#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,8,0)
- + struct device *gendisk_dev = disk_to_dev(cur_gendisk)->parent;
- +#else
- + struct device *gendisk_dev = cur_gendisk->driverfs_dev;
- +#endif
- + if (gendisk_dev==&SDptr->sdev_gendev) {
- + if (vbus_ext->sd_flags[id] & SD_FLAG_REVALIDATE) {
- + if (bdev->bd_disk->fops->revalidate_disk)
- + bdev->bd_disk->fops->revalidate_disk(bdev->bd_disk);
- +#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,7,0)
- + inode_lock(bdev->bd_inode);
- +#elif LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,15)
- + mutex_lock(&bdev->bd_inode->i_mutex);
- #else
- - down(&bdev->bd_inode->i_sem);
- + down(&bdev->bd_inode->i_sem);
- #endif
- - i_size_write(bdev->bd_inode, (loff_t)get_capacity(bdev->bd_disk)<<9);
- -#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,15)
- - mutex_unlock(&bdev->bd_inode->i_mutex);
- + i_size_write(bdev->bd_inode, (loff_t)get_capacity(bdev->bd_disk)<<9);
- +#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,7,0)
- + inode_unlock(bdev->bd_inode);
- +#elif LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,15)
- + mutex_unlock(&bdev->bd_inode->i_mutex);
- #else
- - up(&bdev->bd_inode->i_sem);
- + up(&bdev->bd_inode->i_sem);
- #endif
- - vbus_ext->sd_flags[id] &= ~SD_FLAG_REVALIDATE;
- - }
- - if (bdev->bd_openers>1)
- - vbus_ext->sd_flags[id] |= SD_FLAG_IN_USE;
- + vbus_ext->sd_flags[id] &= ~SD_FLAG_REVALIDATE;
- + }
- + if (bdev->bd_openers>1)
- + vbus_ext->sd_flags[id] |= SD_FLAG_IN_USE;
- #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,28)
- - blkdev_put(bdev, FMODE_READ);
- + blkdev_put(bdev, FMODE_READ);
- #else
- - blkdev_put(bdev __BDEV_RAW);
- + blkdev_put(bdev __BDEV_RAW);
- #endif
- - goto next;
- + goto next;
- + }
- }
- #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,28)
- blkdev_put(bdev, FMODE_READ);
- diff -ruN rr268x_orig/osm/linux/osm_linux.h rr268x_patched/osm/linux/osm_linux.h
- --- rr268x_orig/osm/linux/osm_linux.h 2017-03-09 18:04:25.000000000 -0500
- +++ rr268x_patched/osm/linux/osm_linux.h 2017-03-09 18:57:56.000000000 -0500
- @@ -177,7 +177,10 @@
- #define scsi_set_max_cmd_len(host, len) host->max_cmd_len = len
- #endif
- -#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,5,0)
- +#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,6,0)
- +#undef HPT_KMAP_TYPE
- +#define HPT_FIND_PCI_DEVICE
- +#elif LINUX_VERSION_CODE >= KERNEL_VERSION(2,5,0)
- #define HPT_KMAP_TYPE KM_BIO_SRC_IRQ
- #define HPT_FIND_PCI_DEVICE pci_get_device
- #else
- diff -ruN rr268x_orig/osm/linux/patch.sh rr268x_patched/osm/linux/patch.sh
- --- rr268x_orig/osm/linux/patch.sh 2017-03-09 18:04:25.000000000 -0500
- +++ rr268x_patched/osm/linux/patch.sh 2017-03-09 18:59:23.000000000 -0500
- @@ -28,6 +28,8 @@
- cd ${HPT_ROOT}/product
- cp ${HPT_ROOT}/product/${PRODUCTNAME}/linux/* ${KERNELDIR}/drivers/scsi/${TARGETNAME}/
- +echo "Kernel version ${KERNEL_VER} detected..."
- +
- case "$KERNEL_VER" in
- 2.4 )
- cd ${HPT_ROOT}/lib/linux/free-${ARCH}-regparm0
- @@ -143,7 +145,7 @@
- fi
- fi
- ;;
- - 2.6 )
- + 2.6 | 3.* | 4.* )
- cd ${HPT_ROOT}/lib/linux/free-${ARCH}-regparm0
- ld -r -o ${ARCH}-${TARGETNAME}.obj ${TARGETMODS}
- mv ${ARCH}-${TARGETNAME}.obj $KERNELDIR/drivers/scsi/${TARGETNAME}/
- diff -ruN rr268x_orig/product/rr2680/linux/config.c rr268x_patched/product/rr2680/linux/config.c
- --- rr268x_orig/product/rr2680/linux/config.c 2017-03-09 18:04:25.000000000 -0500
- +++ rr268x_patched/product/rr2680/linux/config.c 2017-03-09 19:01:30.000000000 -0500
- @@ -23,7 +23,18 @@
- char driver_name[] = "rr2680";
- char driver_name_long[] = "RocketRAID 268x controller driver";
- +
- +#if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 9)
- +#pragma GCC diagnostic push
- +#pragma GCC diagnostic ignored "-Wdate-time"
- +#endif
- +
- char driver_ver[] = "v2.1 (" __DATE__ " " __TIME__ ")";
- +
- +#if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 9)
- +#pragma GCC diagnostic pop
- +#endif
- +
- int osm_max_targets = 32;
- int os_max_cache_size = 0x2000000;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement