Advertisement
Guest User

Untitled

a guest
Mar 9th, 2017
373
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.45 KB | None | 0 0
  1. diff -ruN rr268x_orig/inc/linux_32mpa/Makefile.def rr268x_patched/inc/linux_32mpa/Makefile.def
  2. --- rr268x_orig/inc/linux_32mpa/Makefile.def 2017-03-09 18:04:25.000000000 -0500
  3. +++ rr268x_patched/inc/linux_32mpa/Makefile.def 2017-03-09 18:24:38.000000000 -0500
  4. @@ -88,10 +88,12 @@
  5. $(error Cannot find kernel version. Check $(KERNELDIR)/include/linux/version.h.)
  6. endif
  7.  
  8. +ifneq ($(MAJOR), 4)
  9. ifneq ($(MAJOR), 3)
  10. ifneq ($(KERNEL_VER), 2.6)
  11. ifneq ($(KERNEL_VER), 2.4)
  12. -$(error Only kernel 2.4/2.6/3.x is supported but you use $(KERNEL_VER))
  13. +$(error Only kernel 2.4/2.6/3.x/4.x is supported but you use $(KERNEL_VER))
  14. +endif
  15. endif
  16. endif
  17. endif
  18. diff -ruN rr268x_orig/osm/linux/install.sh rr268x_patched/osm/linux/install.sh
  19. --- rr268x_orig/osm/linux/install.sh 2017-03-09 18:04:25.000000000 -0500
  20. +++ rr268x_patched/osm/linux/install.sh 2017-03-09 18:33:46.000000000 -0500
  21. @@ -3,6 +3,8 @@
  22. if test "${KERNEL_VER-set}" = set; then echo "KERNEL_VER is not set"; exit 1; fi
  23. if test "${TARGETNAME-set}" = set; then echo "TARGETNAME is not set"; exit 1; fi
  24.  
  25. +echo "Kernel Version ${KERNEL_VER} detected..."
  26. +
  27. PWD=`pwd`
  28.  
  29. case ${KERNEL_VER} in
  30. @@ -10,7 +12,7 @@
  31. OBJ=o
  32. MODVER=`modinfo -f%{kernel_version} ${PWD}/${TARGETNAME}.${OBJ}`
  33. ;;
  34. - 2.6 | 3.* )
  35. + 2.6 | 3.* | 4.* )
  36. OBJ=ko
  37. MODVER=`modinfo -F vermagic ${PWD}/${TARGETNAME}.${OBJ} | cut -d' ' -f1`
  38. ;;
  39. diff -ruN rr268x_orig/osm/linux/os_linux.c rr268x_patched/osm/linux/os_linux.c
  40. --- rr268x_orig/osm/linux/os_linux.c 2017-03-09 18:04:25.000000000 -0500
  41. +++ rr268x_patched/osm/linux/os_linux.c 2017-03-09 20:14:01.000000000 -0500
  42. @@ -357,38 +357,51 @@
  43. struct block_device *bdev = bdget(MKDEV(major[i], minor));
  44. if (bdev &&
  45. #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,38)
  46. - blkdev_get(bdev, FMODE_READ,NULL)
  47. + blkdev_get(bdev, FMODE_READ, NULL)
  48. #elif LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,28)
  49. blkdev_get(bdev, FMODE_READ)
  50. #else
  51. blkdev_get(bdev, FMODE_READ, 0 __BDEV_RAW)
  52. #endif
  53. ==0) {
  54. - if (bdev->bd_disk && bdev->bd_disk->driverfs_dev==&SDptr->sdev_gendev) {
  55. - if (vbus_ext->sd_flags[id] & SD_FLAG_REVALIDATE) {
  56. - if (bdev->bd_disk->fops->revalidate_disk)
  57. - bdev->bd_disk->fops->revalidate_disk(bdev->bd_disk);
  58. -#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,15)
  59. - mutex_lock(&bdev->bd_inode->i_mutex);
  60. + if (bdev->bd_disk) {
  61. + struct gendisk *cur_gendisk = bdev->bd_disk;
  62. +
  63. +#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,8,0)
  64. + struct device *gendisk_dev = disk_to_dev(cur_gendisk)->parent;
  65. +#else
  66. + struct device *gendisk_dev = cur_gendisk->driverfs_dev;
  67. +#endif
  68. + if (gendisk_dev==&SDptr->sdev_gendev) {
  69. + if (vbus_ext->sd_flags[id] & SD_FLAG_REVALIDATE) {
  70. + if (bdev->bd_disk->fops->revalidate_disk)
  71. + bdev->bd_disk->fops->revalidate_disk(bdev->bd_disk);
  72. +#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,7,0)
  73. + inode_lock(bdev->bd_inode);
  74. +#elif LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,15)
  75. + mutex_lock(&bdev->bd_inode->i_mutex);
  76. #else
  77. - down(&bdev->bd_inode->i_sem);
  78. + down(&bdev->bd_inode->i_sem);
  79. #endif
  80. - i_size_write(bdev->bd_inode, (loff_t)get_capacity(bdev->bd_disk)<<9);
  81. -#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,15)
  82. - mutex_unlock(&bdev->bd_inode->i_mutex);
  83. + i_size_write(bdev->bd_inode, (loff_t)get_capacity(bdev->bd_disk)<<9);
  84. +#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,7,0)
  85. + inode_unlock(bdev->bd_inode);
  86. +#elif LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,15)
  87. + mutex_unlock(&bdev->bd_inode->i_mutex);
  88. #else
  89. - up(&bdev->bd_inode->i_sem);
  90. + up(&bdev->bd_inode->i_sem);
  91. #endif
  92. - vbus_ext->sd_flags[id] &= ~SD_FLAG_REVALIDATE;
  93. - }
  94. - if (bdev->bd_openers>1)
  95. - vbus_ext->sd_flags[id] |= SD_FLAG_IN_USE;
  96. + vbus_ext->sd_flags[id] &= ~SD_FLAG_REVALIDATE;
  97. + }
  98. + if (bdev->bd_openers>1)
  99. + vbus_ext->sd_flags[id] |= SD_FLAG_IN_USE;
  100. #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,28)
  101. - blkdev_put(bdev, FMODE_READ);
  102. + blkdev_put(bdev, FMODE_READ);
  103. #else
  104. - blkdev_put(bdev __BDEV_RAW);
  105. + blkdev_put(bdev __BDEV_RAW);
  106. #endif
  107. - goto next;
  108. + goto next;
  109. + }
  110. }
  111. #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,28)
  112. blkdev_put(bdev, FMODE_READ);
  113. diff -ruN rr268x_orig/osm/linux/osm_linux.h rr268x_patched/osm/linux/osm_linux.h
  114. --- rr268x_orig/osm/linux/osm_linux.h 2017-03-09 18:04:25.000000000 -0500
  115. +++ rr268x_patched/osm/linux/osm_linux.h 2017-03-09 18:57:56.000000000 -0500
  116. @@ -177,7 +177,10 @@
  117. #define scsi_set_max_cmd_len(host, len) host->max_cmd_len = len
  118. #endif
  119.  
  120. -#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,5,0)
  121. +#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,6,0)
  122. +#undef HPT_KMAP_TYPE
  123. +#define HPT_FIND_PCI_DEVICE
  124. +#elif LINUX_VERSION_CODE >= KERNEL_VERSION(2,5,0)
  125. #define HPT_KMAP_TYPE KM_BIO_SRC_IRQ
  126. #define HPT_FIND_PCI_DEVICE pci_get_device
  127. #else
  128. diff -ruN rr268x_orig/osm/linux/patch.sh rr268x_patched/osm/linux/patch.sh
  129. --- rr268x_orig/osm/linux/patch.sh 2017-03-09 18:04:25.000000000 -0500
  130. +++ rr268x_patched/osm/linux/patch.sh 2017-03-09 18:59:23.000000000 -0500
  131. @@ -28,6 +28,8 @@
  132. cd ${HPT_ROOT}/product
  133. cp ${HPT_ROOT}/product/${PRODUCTNAME}/linux/* ${KERNELDIR}/drivers/scsi/${TARGETNAME}/
  134.  
  135. +echo "Kernel version ${KERNEL_VER} detected..."
  136. +
  137. case "$KERNEL_VER" in
  138. 2.4 )
  139. cd ${HPT_ROOT}/lib/linux/free-${ARCH}-regparm0
  140. @@ -143,7 +145,7 @@
  141. fi
  142. fi
  143. ;;
  144. - 2.6 )
  145. + 2.6 | 3.* | 4.* )
  146. cd ${HPT_ROOT}/lib/linux/free-${ARCH}-regparm0
  147. ld -r -o ${ARCH}-${TARGETNAME}.obj ${TARGETMODS}
  148. mv ${ARCH}-${TARGETNAME}.obj $KERNELDIR/drivers/scsi/${TARGETNAME}/
  149. diff -ruN rr268x_orig/product/rr2680/linux/config.c rr268x_patched/product/rr2680/linux/config.c
  150. --- rr268x_orig/product/rr2680/linux/config.c 2017-03-09 18:04:25.000000000 -0500
  151. +++ rr268x_patched/product/rr2680/linux/config.c 2017-03-09 19:01:30.000000000 -0500
  152. @@ -23,7 +23,18 @@
  153.  
  154. char driver_name[] = "rr2680";
  155. char driver_name_long[] = "RocketRAID 268x controller driver";
  156. +
  157. +#if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 9)
  158. +#pragma GCC diagnostic push
  159. +#pragma GCC diagnostic ignored "-Wdate-time"
  160. +#endif
  161. +
  162. char driver_ver[] = "v2.1 (" __DATE__ " " __TIME__ ")";
  163. +
  164. +#if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 9)
  165. +#pragma GCC diagnostic pop
  166. +#endif
  167. +
  168. int osm_max_targets = 32;
  169. int os_max_cache_size = 0x2000000;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement