commit:     53260d25473b3195b048efe98c6a0efcf9497465
Author:     Mike Pagano <mpagano <AT> gentoo <DOT> org>
AuthorDate: Mon Dec 21 13:25:43 2020 +0000
Commit:     Mike Pagano <mpagano <AT> gentoo <DOT> org>
CommitDate: Mon Dec 21 13:25:43 2020 +0000
URL:        https://gitweb.gentoo.org/proj/linux-patches.git/commit/?id=53260d25

Rename patch and add 5.10.2

Signed-off-by: Mike Pagano <mpagano <AT> gentoo.org>

 0000_README                                        |   4 +
 1001_linux-5.10.1.patch => 1000_linux-5.10.1.patch |   0
 1001_linux-5.10.2.patch                            | 349 +++++++++++++++++++++
 3 files changed, 353 insertions(+)

diff --git a/0000_README b/0000_README
index 4cf514e..52d8ee0 100644
--- a/0000_README
+++ b/0000_README
@@ -47,6 +47,10 @@ Patch:  1000_linux-5.10.1.patch
 From:   http://www.kernel.org
 Desc:   Linux 5.10.1
 
+Patch:  1001_linux-5.10.2.patch
+From:   http://www.kernel.org
+Desc:   Linux 5.10.2
+
 Patch:  1500_XATTR_USER_PREFIX.patch
 From:   https://bugs.gentoo.org/show_bug.cgi?id=470644
 Desc:   Support for namespace user.pax.* on tmpfs.

diff --git a/1001_linux-5.10.1.patch b/1000_linux-5.10.1.patch
similarity index 100%
rename from 1001_linux-5.10.1.patch
rename to 1000_linux-5.10.1.patch

diff --git a/1001_linux-5.10.2.patch b/1001_linux-5.10.2.patch
new file mode 100644
index 0000000..5242eac
--- /dev/null
+++ b/1001_linux-5.10.2.patch
@@ -0,0 +1,349 @@
+diff --git a/Documentation/admin-guide/kernel-parameters.txt 
b/Documentation/admin-guide/kernel-parameters.txt
+index 44fde25bb221e..f6a1513dfb76c 100644
+--- a/Documentation/admin-guide/kernel-parameters.txt
++++ b/Documentation/admin-guide/kernel-parameters.txt
+@@ -5663,6 +5663,7 @@
+                                       device);
+                               j = NO_REPORT_LUNS (don't use report luns
+                                       command, uas only);
++                              k = NO_SAME (do not use WRITE_SAME, uas only)
+                               l = NOT_LOCKABLE (don't try to lock and
+                                       unlock ejectable media, not on uas);
+                               m = MAX_SECTORS_64 (don't transfer more
+diff --git a/Makefile b/Makefile
+index 076d4e6b9ccc2..44f4cd2e58a80 100644
+--- a/Makefile
++++ b/Makefile
+@@ -1,7 +1,7 @@
+ # SPDX-License-Identifier: GPL-2.0
+ VERSION = 5
+ PATCHLEVEL = 10
+-SUBLEVEL = 1
++SUBLEVEL = 2
+ EXTRAVERSION =
+ NAME = Kleptomaniac Octopus
+ 
+diff --git a/drivers/tty/serial/8250/8250_omap.c 
b/drivers/tty/serial/8250/8250_omap.c
+index 562087df7d334..0cc6d35a08156 100644
+--- a/drivers/tty/serial/8250/8250_omap.c
++++ b/drivers/tty/serial/8250/8250_omap.c
+@@ -184,11 +184,6 @@ static void omap_8250_mdr1_errataset(struct 
uart_8250_port *up,
+                                    struct omap8250_priv *priv)
+ {
+       u8 timeout = 255;
+-      u8 old_mdr1;
+-
+-      old_mdr1 = serial_in(up, UART_OMAP_MDR1);
+-      if (old_mdr1 == priv->mdr1)
+-              return;
+ 
+       serial_out(up, UART_OMAP_MDR1, priv->mdr1);
+       udelay(2);
+diff --git a/drivers/usb/core/quirks.c b/drivers/usb/core/quirks.c
+index fad31ccd1fa83..1b4eb7046b078 100644
+--- a/drivers/usb/core/quirks.c
++++ b/drivers/usb/core/quirks.c
+@@ -342,6 +342,9 @@ static const struct usb_device_id usb_quirk_list[] = {
+       { USB_DEVICE(0x06a3, 0x0006), .driver_info =
+                       USB_QUIRK_CONFIG_INTF_STRINGS },
+ 
++      /* Agfa SNAPSCAN 1212U */
++      { USB_DEVICE(0x06bd, 0x0001), .driver_info = USB_QUIRK_RESET_RESUME },
++
+       /* Guillemot Webcam Hercules Dualpix Exchange (2nd ID) */
+       { USB_DEVICE(0x06f8, 0x0804), .driver_info = USB_QUIRK_RESET_RESUME },
+ 
+diff --git a/drivers/usb/gadget/udc/dummy_hcd.c 
b/drivers/usb/gadget/udc/dummy_hcd.c
+index 53a227217f1cb..99c1ebe86f6a2 100644
+--- a/drivers/usb/gadget/udc/dummy_hcd.c
++++ b/drivers/usb/gadget/udc/dummy_hcd.c
+@@ -2734,7 +2734,7 @@ static int __init init(void)
+ {
+       int     retval = -ENOMEM;
+       int     i;
+-      struct  dummy *dum[MAX_NUM_UDC];
++      struct  dummy *dum[MAX_NUM_UDC] = {};
+ 
+       if (usb_disabled())
+               return -ENODEV;
+diff --git a/drivers/usb/host/xhci-hub.c b/drivers/usb/host/xhci-hub.c
+index c799ca5361d4d..74c497fd34762 100644
+--- a/drivers/usb/host/xhci-hub.c
++++ b/drivers/usb/host/xhci-hub.c
+@@ -1712,6 +1712,10 @@ retry:
+       hcd->state = HC_STATE_SUSPENDED;
+       bus_state->next_statechange = jiffies + msecs_to_jiffies(10);
+       spin_unlock_irqrestore(&xhci->lock, flags);
++
++      if (bus_state->bus_suspended)
++              usleep_range(5000, 10000);
++
+       return 0;
+ }
+ 
+diff --git a/drivers/usb/host/xhci-pci.c b/drivers/usb/host/xhci-pci.c
+index bf89172c43cac..84da8406d5b42 100644
+--- a/drivers/usb/host/xhci-pci.c
++++ b/drivers/usb/host/xhci-pci.c
+@@ -47,6 +47,7 @@
+ #define PCI_DEVICE_ID_INTEL_DNV_XHCI                  0x19d0
+ #define PCI_DEVICE_ID_INTEL_ALPINE_RIDGE_2C_XHCI      0x15b5
+ #define PCI_DEVICE_ID_INTEL_ALPINE_RIDGE_4C_XHCI      0x15b6
++#define PCI_DEVICE_ID_INTEL_ALPINE_RIDGE_LP_XHCI      0x15c1
+ #define PCI_DEVICE_ID_INTEL_ALPINE_RIDGE_C_2C_XHCI    0x15db
+ #define PCI_DEVICE_ID_INTEL_ALPINE_RIDGE_C_4C_XHCI    0x15d4
+ #define PCI_DEVICE_ID_INTEL_TITAN_RIDGE_2C_XHCI               0x15e9
+@@ -55,6 +56,7 @@
+ #define PCI_DEVICE_ID_INTEL_ICE_LAKE_XHCI             0x8a13
+ #define PCI_DEVICE_ID_INTEL_CML_XHCI                  0xa3af
+ #define PCI_DEVICE_ID_INTEL_TIGER_LAKE_XHCI           0x9a13
++#define PCI_DEVICE_ID_INTEL_MAPLE_RIDGE_XHCI          0x1138
+ 
+ #define PCI_DEVICE_ID_AMD_PROMONTORYA_4                       0x43b9
+ #define PCI_DEVICE_ID_AMD_PROMONTORYA_3                       0x43ba
+@@ -232,13 +234,15 @@ static void xhci_pci_quirks(struct device *dev, struct 
xhci_hcd *xhci)
+       if (pdev->vendor == PCI_VENDOR_ID_INTEL &&
+           (pdev->device == PCI_DEVICE_ID_INTEL_ALPINE_RIDGE_2C_XHCI ||
+            pdev->device == PCI_DEVICE_ID_INTEL_ALPINE_RIDGE_4C_XHCI ||
++           pdev->device == PCI_DEVICE_ID_INTEL_ALPINE_RIDGE_LP_XHCI ||
+            pdev->device == PCI_DEVICE_ID_INTEL_ALPINE_RIDGE_C_2C_XHCI ||
+            pdev->device == PCI_DEVICE_ID_INTEL_ALPINE_RIDGE_C_4C_XHCI ||
+            pdev->device == PCI_DEVICE_ID_INTEL_TITAN_RIDGE_2C_XHCI ||
+            pdev->device == PCI_DEVICE_ID_INTEL_TITAN_RIDGE_4C_XHCI ||
+            pdev->device == PCI_DEVICE_ID_INTEL_TITAN_RIDGE_DD_XHCI ||
+            pdev->device == PCI_DEVICE_ID_INTEL_ICE_LAKE_XHCI ||
+-           pdev->device == PCI_DEVICE_ID_INTEL_TIGER_LAKE_XHCI))
++           pdev->device == PCI_DEVICE_ID_INTEL_TIGER_LAKE_XHCI ||
++           pdev->device == PCI_DEVICE_ID_INTEL_MAPLE_RIDGE_XHCI))
+               xhci->quirks |= XHCI_DEFAULT_PM_RUNTIME_ALLOW;
+ 
+       if (pdev->vendor == PCI_VENDOR_ID_ETRON &&
+diff --git a/drivers/usb/host/xhci-plat.c b/drivers/usb/host/xhci-plat.c
+index aa2d35f982002..4d34f6005381e 100644
+--- a/drivers/usb/host/xhci-plat.c
++++ b/drivers/usb/host/xhci-plat.c
+@@ -333,6 +333,9 @@ static int xhci_plat_probe(struct platform_device *pdev)
+       if (priv && (priv->quirks & XHCI_SKIP_PHY_INIT))
+               hcd->skip_phy_initialization = 1;
+ 
++      if (priv && (priv->quirks & XHCI_SG_TRB_CACHE_SIZE_QUIRK))
++              xhci->quirks |= XHCI_SG_TRB_CACHE_SIZE_QUIRK;
++
+       ret = usb_add_hcd(hcd, irq, IRQF_SHARED);
+       if (ret)
+               goto disable_usb_phy;
+diff --git a/drivers/usb/host/xhci.h b/drivers/usb/host/xhci.h
+index ebb359ebb261c..d90c0d5df3b37 100644
+--- a/drivers/usb/host/xhci.h
++++ b/drivers/usb/host/xhci.h
+@@ -1878,6 +1878,7 @@ struct xhci_hcd {
+ #define XHCI_RENESAS_FW_QUIRK BIT_ULL(36)
+ #define XHCI_SKIP_PHY_INIT    BIT_ULL(37)
+ #define XHCI_DISABLE_SPARSE   BIT_ULL(38)
++#define XHCI_SG_TRB_CACHE_SIZE_QUIRK  BIT_ULL(39)
+ 
+       unsigned int            num_active_eps;
+       unsigned int            limit_active_eps;
+diff --git a/drivers/usb/misc/legousbtower.c b/drivers/usb/misc/legousbtower.c
+index ba655b4af4fc2..1c9e09138c109 100644
+--- a/drivers/usb/misc/legousbtower.c
++++ b/drivers/usb/misc/legousbtower.c
+@@ -797,7 +797,7 @@ static int tower_probe(struct usb_interface *interface, 
const struct usb_device_
+                                     &get_version_reply,
+                                     sizeof(get_version_reply),
+                                     1000, GFP_KERNEL);
+-      if (!result) {
++      if (result) {
+               dev_err(idev, "get version request failed: %d\n", result);
+               retval = result;
+               goto error;
+diff --git a/drivers/usb/misc/sisusbvga/Kconfig 
b/drivers/usb/misc/sisusbvga/Kconfig
+index 655d9cb0651a7..c12cdd0154102 100644
+--- a/drivers/usb/misc/sisusbvga/Kconfig
++++ b/drivers/usb/misc/sisusbvga/Kconfig
+@@ -16,7 +16,7 @@ config USB_SISUSBVGA
+ 
+ config USB_SISUSBVGA_CON
+       bool "Text console and mode switching support" if USB_SISUSBVGA
+-      depends on VT
++      depends on VT && BROKEN
+       select FONT_8x16
+       help
+         Say Y here if you want a VGA text console via the USB dongle or
+diff --git a/drivers/usb/storage/uas.c b/drivers/usb/storage/uas.c
+index 652d6d6f1f365..ff6f41e7e0683 100644
+--- a/drivers/usb/storage/uas.c
++++ b/drivers/usb/storage/uas.c
+@@ -867,6 +867,9 @@ static int uas_slave_configure(struct scsi_device *sdev)
+       if (devinfo->flags & US_FL_NO_READ_CAPACITY_16)
+               sdev->no_read_capacity_16 = 1;
+ 
++      /* Some disks cannot handle WRITE_SAME */
++      if (devinfo->flags & US_FL_NO_SAME)
++              sdev->no_write_same = 1;
+       /*
+        * Some disks return the total number of blocks in response
+        * to READ CAPACITY rather than the highest block number.
+diff --git a/drivers/usb/storage/unusual_uas.h 
b/drivers/usb/storage/unusual_uas.h
+index 711ab240058c7..870e9cf3d5dc4 100644
+--- a/drivers/usb/storage/unusual_uas.h
++++ b/drivers/usb/storage/unusual_uas.h
+@@ -35,12 +35,15 @@ UNUSUAL_DEV(0x054c, 0x087d, 0x0000, 0x9999,
+               USB_SC_DEVICE, USB_PR_DEVICE, NULL,
+               US_FL_NO_REPORT_OPCODES),
+ 
+-/* Reported-by: Julian Groß <[email protected]> */
++/*
++ *  Initially Reported-by: Julian Groß <[email protected]>
++ *  Further reports David C. Partridge <[email protected]>
++ */
+ UNUSUAL_DEV(0x059f, 0x105f, 0x0000, 0x9999,
+               "LaCie",
+               "2Big Quadra USB3",
+               USB_SC_DEVICE, USB_PR_DEVICE, NULL,
+-              US_FL_NO_REPORT_OPCODES),
++              US_FL_NO_REPORT_OPCODES | US_FL_NO_SAME),
+ 
+ /*
+  * Apricorn USB3 dongle sometimes returns "USBSUSBSUSBS" in response to SCSI
+diff --git a/drivers/usb/storage/usb.c b/drivers/usb/storage/usb.c
+index 94a64729dc27d..90aa9c12ffac5 100644
+--- a/drivers/usb/storage/usb.c
++++ b/drivers/usb/storage/usb.c
+@@ -541,6 +541,9 @@ void usb_stor_adjust_quirks(struct usb_device *udev, 
unsigned long *fflags)
+               case 'j':
+                       f |= US_FL_NO_REPORT_LUNS;
+                       break;
++              case 'k':
++                      f |= US_FL_NO_SAME;
++                      break;
+               case 'l':
+                       f |= US_FL_NOT_LOCKABLE;
+                       break;
+diff --git a/include/linux/usb_usual.h b/include/linux/usb_usual.h
+index 4a19ac3f24d06..6b03fdd69d274 100644
+--- a/include/linux/usb_usual.h
++++ b/include/linux/usb_usual.h
+@@ -84,6 +84,8 @@
+               /* Cannot handle REPORT_LUNS */                 \
+       US_FLAG(ALWAYS_SYNC, 0x20000000)                        \
+               /* lies about caching, so always sync */        \
++      US_FLAG(NO_SAME, 0x40000000)                            \
++              /* Cannot handle WRITE_SAME */                  \
+ 
+ #define US_FLAG(name, value)  US_FL_##name = value ,
+ enum { US_DO_ALL_FLAGS };
+diff --git a/include/uapi/linux/ptrace.h b/include/uapi/linux/ptrace.h
+index a71b6e3b03ebc..83ee45fa634b9 100644
+--- a/include/uapi/linux/ptrace.h
++++ b/include/uapi/linux/ptrace.h
+@@ -81,7 +81,8 @@ struct seccomp_metadata {
+ 
+ struct ptrace_syscall_info {
+       __u8 op;        /* PTRACE_SYSCALL_INFO_* */
+-      __u32 arch __attribute__((__aligned__(sizeof(__u32))));
++      __u8 pad[3];
++      __u32 arch;
+       __u64 instruction_pointer;
+       __u64 stack_pointer;
+       union {
+diff --git a/sound/core/oss/pcm_oss.c b/sound/core/oss/pcm_oss.c
+index 327ec42a36b09..de1917484647e 100644
+--- a/sound/core/oss/pcm_oss.c
++++ b/sound/core/oss/pcm_oss.c
+@@ -1935,11 +1935,15 @@ static int snd_pcm_oss_set_subdivide(struct 
snd_pcm_oss_file *pcm_oss_file, int
+ static int snd_pcm_oss_set_fragment1(struct snd_pcm_substream *substream, 
unsigned int val)
+ {
+       struct snd_pcm_runtime *runtime;
++      int fragshift;
+ 
+       runtime = substream->runtime;
+       if (runtime->oss.subdivision || runtime->oss.fragshift)
+               return -EINVAL;
+-      runtime->oss.fragshift = val & 0xffff;
++      fragshift = val & 0xffff;
++      if (fragshift >= 31)
++              return -EINVAL;
++      runtime->oss.fragshift = fragshift;
+       runtime->oss.maxfrags = (val >> 16) & 0xffff;
+       if (runtime->oss.fragshift < 4)         /* < 16 */
+               runtime->oss.fragshift = 4;
+diff --git a/sound/usb/format.c b/sound/usb/format.c
+index 3bfead393aa34..91f0ed4a2e7eb 100644
+--- a/sound/usb/format.c
++++ b/sound/usb/format.c
+@@ -40,6 +40,8 @@ static u64 parse_audio_format_i_type(struct snd_usb_audio 
*chip,
+       case UAC_VERSION_1:
+       default: {
+               struct uac_format_type_i_discrete_descriptor *fmt = _fmt;
++              if (format >= 64)
++                      return 0; /* invalid format */
+               sample_width = fmt->bBitResolution;
+               sample_bytes = fmt->bSubframeSize;
+               format = 1ULL << format;
+diff --git a/sound/usb/stream.c b/sound/usb/stream.c
+index ca76ba5b5c0b2..2f6d39c2ba7c8 100644
+--- a/sound/usb/stream.c
++++ b/sound/usb/stream.c
+@@ -193,16 +193,16 @@ static int usb_chmap_ctl_get(struct snd_kcontrol 
*kcontrol,
+       struct snd_pcm_chmap *info = snd_kcontrol_chip(kcontrol);
+       struct snd_usb_substream *subs = info->private_data;
+       struct snd_pcm_chmap_elem *chmap = NULL;
+-      int i;
++      int i = 0;
+ 
+-      memset(ucontrol->value.integer.value, 0,
+-             sizeof(ucontrol->value.integer.value));
+       if (subs->cur_audiofmt)
+               chmap = subs->cur_audiofmt->chmap;
+       if (chmap) {
+               for (i = 0; i < chmap->channels; i++)
+                       ucontrol->value.integer.value[i] = chmap->map[i];
+       }
++      for (; i < subs->channels_max; i++)
++              ucontrol->value.integer.value[i] = 0;
+       return 0;
+ }
+ 
+diff --git a/tools/testing/ktest/ktest.pl b/tools/testing/ktest/ktest.pl
+index 54188ee16c486..4e24509645173 100755
+--- a/tools/testing/ktest/ktest.pl
++++ b/tools/testing/ktest/ktest.pl
+@@ -1499,17 +1499,16 @@ sub dodie {
+       my $log_file;
+ 
+       if (defined($opt{"LOG_FILE"})) {
+-          my $whence = 0; # beginning of file
+-          my $pos = $test_log_start;
++          my $whence = 2; # End of file
++          my $log_size = tell LOG;
++          my $size = $log_size - $test_log_start;
+ 
+           if (defined($mail_max_size)) {
+-              my $log_size = tell LOG;
+-              $log_size -= $test_log_start;
+-              if ($log_size > $mail_max_size) {
+-                  $whence = 2; # end of file
+-                  $pos = - $mail_max_size;
++              if ($size > $mail_max_size) {
++                  $size = $mail_max_size;
+               }
+           }
++          my $pos = - $size;
+           $log_file = "$tmpdir/log";
+           open (L, "$opt{LOG_FILE}") or die "Can't open $opt{LOG_FILE} to 
read)";
+           open (O, "> $tmpdir/log") or die "Can't open $tmpdir/log\n";
+@@ -4253,7 +4252,12 @@ sub do_send_mail {
+     $mail_command =~ s/\$SUBJECT/$subject/g;
+     $mail_command =~ s/\$MESSAGE/$message/g;
+ 
+-    run_command $mail_command;
++    my $ret = run_command $mail_command;
++    if (!$ret && defined($file)) {
++      # try again without the file
++      $message .= "\n\n*** FAILED TO SEND LOG ***\n\n";
++      do_send_email($subject, $message);
++    }
+ }
+ 
+ sub send_email {

Reply via email to