]> git.pld-linux.org Git - packages/kernel.git/blobdiff - kernel-small_fixes.patch
irqbypass is a module only on x86
[packages/kernel.git] / kernel-small_fixes.patch
index 2323e82bef2aec4ea226bd5112c7899247210b6d..dc2c31ff9b1c67f8176b7c034942e6a78f7a9b5b 100644 (file)
---- linux-2.6.33/scripts/mod/modpost.c~        2010-02-24 19:52:17.000000000 +0100
-+++ linux-2.6.33/scripts/mod/modpost.c 2010-03-07 14:26:47.242168558 +0100
-@@ -15,7 +15,8 @@
- #include <stdio.h>
- #include <ctype.h>
- #include "modpost.h"
--#include "../../include/generated/autoconf.h"
-+// PLD architectures don't use CONFIG_SYMBOL_PREFIX
-+//#include "../../include/generated/autoconf.h"
- #include "../../include/linux/license.h"
+; https://lkml.org/lkml/2019/7/10/244
+diff -ur linux-5.3/drivers/scsi/aacraid.org/aacraid.h linux-5.3/drivers/scsi/aacraid/aacraid.h
+--- linux-5.3/drivers/scsi/aacraid.org/aacraid.h       2019-11-01 22:42:37.011469816 +0100
++++ linux-5.3/drivers/scsi/aacraid/aacraid.h   2019-11-04 09:29:51.321486211 +0100
+@@ -2740,17 +2740,6 @@
+ int aac_rx_deliver_producer(struct fib * fib);
+ void aac_reinit_aif(struct aac_dev *aac, unsigned int index);
  
- /* Some toolchains use a `_' prefix for all user symbols. */
-
---- linux-3.0/scripts/kconfig/lxdialog/check-lxdialog.sh~      2011-07-22 04:17:23.000000000 +0200
-+++ linux-3.0/scripts/kconfig/lxdialog/check-lxdialog.sh       2011-08-25 21:26:04.799150642 +0200
-@@ -9,6 +9,12 @@
-                       $cc -print-file-name=lib${lib}.${ext} | grep -q /
-                       if [ $? -eq 0 ]; then
-                               echo "-l${lib}"
-+                              for libt in tinfow tinfo ; do
-+                                      $cc -print-file-name=lib${libt}.${ext} | grep -q /
-+                                      if [ $? -eq 0 ]; then
-+                                              echo "-l${libt}"
-+                                      fi
-+                              done
-                               exit
-                       fi
-               done
-
-
-Hi all,
- There is a risk of data loss with md/raid6 arrays running on Linux since
- 2.6.32.
- If:
-   - the array is doubly degraded
-   - one or both failed devices are being recovered, and
-   - the array is written to
-
- then it is possible for data on the array to be lost.  The patch below fixes
- the problem.  If you apply the patch to an older kernel which has separate
- handle_stripe5() and handle_stripe6() functions, be sure that patch changes
- handle_stripe6().
-
- There is no risk to an optimal array or a singly-degraded array.  There is
- also no risk on a doubly-degraded array which is not recovering a device or
- is not receiving write requests.
-
- If you have data on a RAID6 array, please consider how to avoid corruption,
- possibly by applying the patch, possibly by removing any hot spares so
- recovery does not automatically start.
-
- This patch will be sent upstream shortly and will subsequently appear in
- future "-stable" kernels.
-
-NeilBrown
-
-From f94e37dce722ec7b6666fd04be357f422daa02b5 Mon Sep 17 00:00:00 2001
-From: NeilBrown <neilb@suse.de>
-Date: Wed, 13 Aug 2014 09:57:07 +1000
-Subject: [PATCH] md/raid6: avoid data corruption during recovery of
- double-degraded RAID6
-
-During recovery of a double-degraded RAID6 it is possible for
-some blocks not to be recovered properly, leading to corruption.
-
-If a write happens to one block in a stripe that would be written to a
-missing device, and at the same time that stripe is recovering data
-to the other missing device, then that recovered data may not be written.
-
-This patch skips, in the double-degraded case, an optimisation that is
-only safe for single-degraded arrays.
-
-Bug was introduced in 2.6.32 and fix is suitable for any kernel since
-then.  In an older kernel with separate handle_stripe5() and
-handle_stripe6() functions that patch must change handle_stripe6().
-
-Cc: stable@vger.kernel.org (2.6.32+)
-Fixes: 6c0069c0ae9659e3a91b68eaed06a5c6c37f45c8
-Cc: Yuri Tikhonov <yur@emcraft.com>
-Cc: Dan Williams <dan.j.williams@intel.com>
-Reported-by: "Manibalan P" <pmanibalan@amiindia.co.in>
-Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1090423
-Signed-off-by: NeilBrown <neilb@suse.de>
-
-diff --git a/drivers/md/raid5.c b/drivers/md/raid5.c
-index 6b2d615d1094..183588b11fc1 100644
---- a/drivers/md/raid5.c
-+++ b/drivers/md/raid5.c
-@@ -3817,6 +3817,8 @@ static void handle_stripe(struct stripe_head *sh)
-                               set_bit(R5_Wantwrite, &dev->flags);
-                               if (prexor)
-                                       continue;
-+                              if (s.failed > 1)
-+                                      continue;
-                               if (!test_bit(R5_Insync, &dev->flags) ||
-                                   ((i == sh->pd_idx || i == sh->qd_idx)  &&
-                                    s.failed == 0))
-
+-static inline int aac_is_src(struct aac_dev *dev)
+-{
+-      u16 device = dev->pdev->device;
+-
+-      if (device == PMC_DEVICE_S6 ||
+-              device == PMC_DEVICE_S7 ||
+-              device == PMC_DEVICE_S8)
+-              return 1;
+-      return 0;
+-}
+-
+ static inline int aac_supports_2T(struct aac_dev *dev)
+ {
+       return (dev->adapter_info.options & AAC_OPT_NEW_COMM_64);
+diff -ur linux-5.3/drivers/scsi/aacraid.org/comminit.c linux-5.3/drivers/scsi/aacraid/comminit.c
+--- linux-5.3/drivers/scsi/aacraid.org/comminit.c      2019-11-01 22:42:37.014803249 +0100
++++ linux-5.3/drivers/scsi/aacraid/comminit.c  2019-11-04 09:29:51.321486211 +0100
+@@ -41,8 +41,11 @@
+ {
+       u32 status = 0;
+-      if (aac_is_src(dev))
++      if (dev->pdev->device == PMC_DEVICE_S6 ||
++              dev->pdev->device == PMC_DEVICE_S7 ||
++              dev->pdev->device == PMC_DEVICE_S8) {
+               status = src_readl(dev, MUnit.OMR);
++      }
+       return (status & AAC_INT_MODE_MSIX);
+ }
+@@ -349,7 +352,8 @@
+       /* FIB should be freed only after getting the response from the F/W */
+       if (status != -ERESTARTSYS)
+               aac_fib_free(fibctx);
+-      if (aac_is_src(dev) &&
++      if ((dev->pdev->device == PMC_DEVICE_S7 ||
++           dev->pdev->device == PMC_DEVICE_S8) &&
+            dev->msi_enabled)
+               aac_set_intx_mode(dev);
+       return status;
+@@ -610,7 +614,8 @@
+               dev->max_fib_size = status[1] & 0xFFE0;
+               host->sg_tablesize = status[2] >> 16;
+               dev->sg_tablesize = status[2] & 0xFFFF;
+-              if (aac_is_src(dev)) {
++              if (dev->pdev->device == PMC_DEVICE_S7 ||
++                  dev->pdev->device == PMC_DEVICE_S8) {
+                       if (host->can_queue > (status[3] >> 16) -
+                                       AAC_NUM_MGT_FIB)
+                               host->can_queue = (status[3] >> 16) -
+@@ -629,7 +634,9 @@
+                       pr_warn("numacb=%d ignored\n", numacb);
+       }
+-      if (aac_is_src(dev))
++      if (dev->pdev->device == PMC_DEVICE_S6 ||
++          dev->pdev->device == PMC_DEVICE_S7 ||
++          dev->pdev->device == PMC_DEVICE_S8)
+               aac_define_int_mode(dev);
+       /*
+        *      Ok now init the communication subsystem
+diff -ur linux-5.3/drivers/scsi/aacraid.org/commsup.c linux-5.3/drivers/scsi/aacraid/commsup.c
+--- linux-5.3/drivers/scsi/aacraid.org/commsup.c       2019-11-01 22:42:37.014803249 +0100
++++ linux-5.3/drivers/scsi/aacraid/commsup.c   2019-11-04 09:29:51.321486211 +0100
+@@ -2593,7 +2593,9 @@
+ {
+       int i;
+-      if (aac_is_src(dev)) {
++      if (dev->pdev->device == PMC_DEVICE_S6 ||
++          dev->pdev->device == PMC_DEVICE_S7 ||
++          dev->pdev->device == PMC_DEVICE_S8) {
+               if (dev->max_msix > 1) {
+                       for (i = 0; i < dev->max_msix; i++)
+                               free_irq(pci_irq_vector(dev->pdev, i),
+diff -ur linux-5.3/drivers/scsi/aacraid.org/linit.c linux-5.3/drivers/scsi/aacraid/linit.c
+--- linux-5.3/drivers/scsi/aacraid.org/linit.c 2019-11-01 22:42:37.011469816 +0100
++++ linux-5.3/drivers/scsi/aacraid/linit.c     2019-11-04 09:29:51.321486211 +0100
+@@ -1567,8 +1567,9 @@
+       aac_send_shutdown(aac);
+       aac_adapter_disable_int(aac);
+-
+-      if (aac_is_src(aac)) {
++      if (aac->pdev->device == PMC_DEVICE_S6 ||
++          aac->pdev->device == PMC_DEVICE_S7 ||
++          aac->pdev->device == PMC_DEVICE_S8) {
+               if (aac->max_msix > 1) {
+                       for (i = 0; i < aac->max_msix; i++) {
+                               free_irq(pci_irq_vector(aac->pdev, i),
+@@ -1858,7 +1859,8 @@
+       aac_adapter_enable_int(dev);
+-      if (aac_is_src(dev))
++      if (dev->pdev->device == PMC_DEVICE_S7 ||
++          dev->pdev->device == PMC_DEVICE_S8)
+               aac_define_int_mode(dev);
+       if (dev->msi_enabled)
 
This page took 0.090871 seconds and 4 git commands to generate.