kernel: update 3.18 to rc7
authornbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Mon, 1 Dec 2014 17:38:54 +0000 (17:38 +0000)
committernbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Mon, 1 Dec 2014 17:38:54 +0000 (17:38 +0000)
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@43479 3c298f89-4303-0410-b956-a3cf2f4a3e73

28 files changed:
include/kernel-version.mk
target/linux/generic/patches-3.18/132-mips_inline_dma_ops.patch
target/linux/generic/patches-3.18/203-kallsyms_uncompressed.patch
target/linux/generic/patches-3.18/204-module_strip.patch
target/linux/generic/patches-3.18/230-openwrt_lzma_options.patch
target/linux/generic/patches-3.18/300-mips_expose_boot_raw.patch
target/linux/generic/patches-3.18/304-mips_disable_fpu.patch
target/linux/generic/patches-3.18/306-mips_mem_functions_performance.patch
target/linux/generic/patches-3.18/408-mtd-old-rootfs-squashfs-splitter.patch
target/linux/generic/patches-3.18/431-mtd-bcm47xxpart-support-TRX-data-partition-being-UBI.patch
target/linux/generic/patches-3.18/502-yaffs-3.10-disable-proc-entry.patch
target/linux/generic/patches-3.18/531-debloat_lzma.patch
target/linux/generic/patches-3.18/600-netfilter_layer7_2.22.patch
target/linux/generic/patches-3.18/604-netfilter_conntrack_flush.patch
target/linux/generic/patches-3.18/610-netfilter_match_bypass_default_checks.patch
target/linux/generic/patches-3.18/615-netfilter_add_xt_id_match.patch
target/linux/generic/patches-3.18/643-bridge_remove_ipv6_dependency.patch
target/linux/generic/patches-3.18/645-bridge_multicast_to_unicast.patch
target/linux/generic/patches-3.18/653-disable_netlink_trim.patch
target/linux/generic/patches-3.18/657-qdisc_reduce_truesize.patch
target/linux/generic/patches-3.18/666-Add-support-for-MAP-E-FMRs-mesh-mode.patch
target/linux/generic/patches-3.18/670-ipv6-allow-rejecting-with-source-address-failed-policy.patch
target/linux/generic/patches-3.18/750-hostap_txpower.patch
target/linux/generic/patches-3.18/773-bgmac-add-srab-switch.patch
target/linux/generic/patches-3.18/780-igb-Fix-Null-pointer-dereference-in-igb_reset_q_vect.patch
target/linux/generic/patches-3.18/810-pci_disable_common_quirks.patch
target/linux/generic/patches-3.18/902-debloat_proc.patch
target/linux/generic/patches-3.18/941-ocf_20120127.patch

index 0d97e4f..367c549 100644 (file)
@@ -7,14 +7,14 @@ LINUX_VERSION-3.8  = .13
 LINUX_VERSION-3.10 = .58
 LINUX_VERSION-3.13 = .7
 LINUX_VERSION-3.14 = .25
-LINUX_VERSION-3.18 = -rc6
+LINUX_VERSION-3.18 = -rc7
 
 LINUX_KERNEL_MD5SUM-3.3.8   = f1058f64eed085deb44f10cee8541d50
 LINUX_KERNEL_MD5SUM-3.8.13  = 2af19d06cd47ec459519159cdd10542d
 LINUX_KERNEL_MD5SUM-3.10.58 = 3ff3478b6351143cef22d4b81cf48b01
 LINUX_KERNEL_MD5SUM-3.13.7  = 370adced5e5c1cb1d0d621c2dae2723f
 LINUX_KERNEL_MD5SUM-3.14.25 = 3ae910d35292706d85870c3939547123
-LINUX_KERNEL_MD5SUM-3.18-rc6 = 892b929629ba8af764eeffc394654329
+LINUX_KERNEL_MD5SUM-3.18-rc7 = 36ac6232dfb74aebdfa30d7cbf154485
 
 ifdef KERNEL_PATCHVER
   LINUX_VERSION:=$(KERNEL_PATCHVER)$(strip $(LINUX_VERSION-$(KERNEL_PATCHVER)))
index c13e191..7425ba0 100644 (file)
@@ -510,7 +510,7 @@ Signed-off-by: Felix Fietkau <nbd@openwrt.org>
  
  
  void dma_free_noncoherent(struct device *dev, size_t size, void *vaddr,
-@@ -167,8 +145,8 @@ void dma_free_noncoherent(struct device
+@@ -167,8 +145,8 @@ void dma_free_noncoherent(struct device 
  }
  EXPORT_SYMBOL(dma_free_noncoherent);
  
@@ -650,7 +650,7 @@ Signed-off-by: Felix Fietkau <nbd@openwrt.org>
  
  void dma_cache_sync(struct device *dev, void *vaddr, size_t size,
                         enum dma_data_direction direction)
-@@ -360,23 +238,10 @@ void dma_cache_sync(struct device *dev,
+@@ -360,23 +238,10 @@ void dma_cache_sync(struct device *dev, 
  
  EXPORT_SYMBOL(dma_cache_sync);
  
index b9d8220..4888dd5 100644 (file)
@@ -1,6 +1,6 @@
 --- a/scripts/kallsyms.c
 +++ b/scripts/kallsyms.c
-@@ -58,6 +58,7 @@ static struct addr_range percpu_range =
+@@ -58,6 +58,7 @@ static struct addr_range percpu_range = 
  static struct sym_entry *table;
  static unsigned int table_size, table_cnt;
  static int all_symbols = 0;
index ed95eaf..c46f5f9 100644 (file)
@@ -72,7 +72,7 @@ Signed-off-by: Felix Fietkau <nbd@openwrt.org>
  #ifdef MODULE
  #define __MODULE_INFO(tag, name, info)                                          \
  static const char __UNIQUE_ID(name)[]                                   \
-@@ -23,8 +33,7 @@ static const char __UNIQUE_ID(name)[]
+@@ -23,8 +33,7 @@ static const char __UNIQUE_ID(name)[]                        
    = __stringify(tag) "=" info
  #else  /* !MODULE */
  /* This struct is here for syntactic coherency, it is not used */
@@ -82,7 +82,7 @@ Signed-off-by: Felix Fietkau <nbd@openwrt.org>
  #endif
  #define __MODULE_PARM_TYPE(name, _type)                                         \
    __MODULE_INFO(parmtype, name##type, #name ":" _type)
-@@ -32,7 +41,7 @@ static const char __UNIQUE_ID(name)[]
+@@ -32,7 +41,7 @@ static const char __UNIQUE_ID(name)[]                        
  /* One for each parameter, describing how to use it.  Some files do
     multiple of these per line, so can't just use MODULE_INFO. */
  #define MODULE_PARM_DESC(_parm, desc) \
index e59fdcd..1f9f0d0 100644 (file)
@@ -1,6 +1,6 @@
 --- a/scripts/Makefile.lib
 +++ b/scripts/Makefile.lib
-@@ -325,7 +325,7 @@ cmd_bzip2 = (cat $(filter-out FORCE,$^)
+@@ -325,7 +325,7 @@ cmd_bzip2 = (cat $(filter-out FORCE,$^) 
  
  quiet_cmd_lzma = LZMA    $@
  cmd_lzma = (cat $(filter-out FORCE,$^) | \
index 6f0879a..69d61f2 100644 (file)
@@ -18,7 +18,7 @@ Acked-by: Rob Landley <rob@landley.net>
  config CEVT_BCM1480
        bool
  
-@@ -2493,6 +2490,18 @@ config USE_OF
+@@ -2503,6 +2500,18 @@ config USE_OF
  config BUILTIN_DTB
        bool
  
index c7a6e86..ae742dc 100644 (file)
@@ -26,7 +26,7 @@ v2: incorporated changes suggested by Jonas Gorski
 \r
 --- a/arch/mips/Kconfig
 +++ b/arch/mips/Kconfig
-@@ -2485,6 +2485,20 @@ config MIPS_O32_FP64_SUPPORT
+@@ -2495,6 +2495,20 @@ config MIPS_O32_FP64_SUPPORT
  
          If unsure, say N.
  
index 9818677..e6056fa 100644 (file)
@@ -1,6 +1,6 @@
 --- a/arch/mips/include/asm/string.h
 +++ b/arch/mips/include/asm/string.h
-@@ -133,11 +133,44 @@ strncmp(__const__ char *__cs, __const__
+@@ -133,11 +133,44 @@ strncmp(__const__ char *__cs, __const__ 
  
  #define __HAVE_ARCH_MEMSET
  extern void *memset(void *__s, int __c, size_t __count);
index 07d4f7d..540e2bd 100644 (file)
@@ -14,7 +14,7 @@
        default y
 --- a/drivers/mtd/mtdpart.c
 +++ b/drivers/mtd/mtdpart.c
-@@ -681,6 +681,47 @@ mtd_pad_erasesize(struct mtd_info *mtd,
+@@ -681,6 +681,47 @@ mtd_pad_erasesize(struct mtd_info *mtd, 
        return len;
  }
  
index 4c47203..46881fc 100644 (file)
@@ -17,7 +17,7 @@
                                 u64 offset, uint32_t mask_flags)
  {
        part->name = name;
-@@ -58,6 +59,26 @@ static void bcm47xxpart_add_part(struct
+@@ -58,6 +59,26 @@ static void bcm47xxpart_add_part(struct 
        part->mask_flags = mask_flags;
  }
  
index 5b73d38..5345678 100644 (file)
@@ -8,7 +8,7 @@
  static struct proc_dir_entry *my_proc_entry;
  
  static char *yaffs_dump_dev_part0(char *buf, struct yaffs_dev *dev)
-@@ -3398,6 +3399,7 @@ static int yaffs_proc_write(struct file
+@@ -3398,6 +3399,7 @@ static int yaffs_proc_write(struct file 
                return yaffs_proc_debug_write(file, buf, count, data);
        return yaffs_proc_write_trace_options(file, buf, count, data);
  }
index aa3c498..9f9690f 100644 (file)
  /* LzmaDecode
 --- a/lib/lzma/LzmaDec.c
 +++ b/lib/lzma/LzmaDec.c
-@@ -682,7 +682,7 @@ static void LzmaDec_InitRc(CLzmaDec *p,
+@@ -682,7 +682,7 @@ static void LzmaDec_InitRc(CLzmaDec *p, 
    p->needFlush = 0;
  }
  
  {
    UInt32 dicSize;
    Byte d;
-@@ -935,7 +883,7 @@ static SRes LzmaDec_AllocateProbs2(CLzma
+@@ -935,33 +883,11 @@ static SRes LzmaDec_AllocateProbs2(CLzma
    return SZ_OK;
  }
  
 -SRes LzmaDec_AllocateProbs(CLzmaDec *p, const Byte *props, unsigned propsSize, ISzAlloc *alloc)
-+static SRes LzmaDec_AllocateProbs(CLzmaDec *p, const Byte *props, unsigned propsSize, ISzAlloc *alloc)
- {
-   CLzmaProps propNew;
-   RINOK(LzmaProps_Decode(&propNew, props, propsSize));
-@@ -943,28 +891,6 @@ SRes LzmaDec_AllocateProbs(CLzmaDec *p,
-   p->prop = propNew;
-   return SZ_OK;
- }
--
--SRes LzmaDec_Allocate(CLzmaDec *p, const Byte *props, unsigned propsSize, ISzAlloc *alloc)
 -{
 -  CLzmaProps propNew;
--  SizeT dicBufSize;
 -  RINOK(LzmaProps_Decode(&propNew, props, propsSize));
 -  RINOK(LzmaDec_AllocateProbs2(p, &propNew, alloc));
+-  p->prop = propNew;
+-  return SZ_OK;
+-}
+-
+-SRes LzmaDec_Allocate(CLzmaDec *p, const Byte *props, unsigned propsSize, ISzAlloc *alloc)
++static SRes LzmaDec_AllocateProbs(CLzmaDec *p, const Byte *props, unsigned propsSize, ISzAlloc *alloc)
+ {
+   CLzmaProps propNew;
+-  SizeT dicBufSize;
+   RINOK(LzmaProps_Decode(&propNew, props, propsSize));
+   RINOK(LzmaDec_AllocateProbs2(p, &propNew, alloc));
 -  dicBufSize = propNew.dicSize;
 -  if (p->dic == 0 || dicBufSize != p->dicBufSize)
 -  {
 -    }
 -  }
 -  p->dicBufSize = dicBufSize;
--  p->prop = propNew;
--  return SZ_OK;
--}
- SRes LzmaDecode(Byte *dest, SizeT *destLen, const Byte *src, SizeT *srcLen,
-     const Byte *propData, unsigned propSize, ELzmaFinishMode finishMode,
+   p->prop = propNew;
+   return SZ_OK;
+ }
 --- a/include/linux/lzma/LzmaEnc.h
 +++ b/include/linux/lzma/LzmaEnc.h
 @@ -31,9 +31,6 @@ typedef struct _CLzmaEncProps
  void MatchFinder_Construct(CMatchFinder *p);
  
  /* Conditions:
-@@ -70,12 +65,6 @@ int MatchFinder_Create(CMatchFinder *p,
+@@ -70,12 +65,6 @@ int MatchFinder_Create(CMatchFinder *p, 
      UInt32 keepAddBufferBefore, UInt32 matchMaxLen, UInt32 keepAddBufferAfter,
      ISzAlloc *alloc);
  void MatchFinder_Free(CMatchFinder *p, ISzAlloc *alloc);
  {
    memmove(p->bufferBase,
      p->buffer - p->keepSizeBefore,
-@@ -97,22 +103,14 @@ void MatchFinder_MoveBlock(CMatchFinder
+@@ -97,22 +103,14 @@ void MatchFinder_MoveBlock(CMatchFinder 
    p->buffer = p->bufferBase + p->keepSizeBefore;
  }
  
index 4b0a364..eb38e30 100644 (file)
@@ -30,7 +30,7 @@
        depends on NETFILTER_ADVANCED
 --- a/net/netfilter/Makefile
 +++ b/net/netfilter/Makefile
-@@ -162,6 +162,7 @@ obj-$(CONFIG_NETFILTER_XT_MATCH_RECENT)
+@@ -162,6 +162,7 @@ obj-$(CONFIG_NETFILTER_XT_MATCH_RECENT) 
  obj-$(CONFIG_NETFILTER_XT_MATCH_SCTP) += xt_sctp.o
  obj-$(CONFIG_NETFILTER_XT_MATCH_SOCKET) += xt_socket.o
  obj-$(CONFIG_NETFILTER_XT_MATCH_STATE) += xt_state.o
index 83cd04a..88adb01 100644 (file)
@@ -8,7 +8,7 @@
  #include <net/net_namespace.h>
  #ifdef CONFIG_SYSCTL
  #include <linux/sysctl.h>
-@@ -268,10 +269,66 @@ static int ct_open(struct inode *inode,
+@@ -268,10 +269,66 @@ static int ct_open(struct inode *inode, 
                        sizeof(struct ct_iter_state));
  }
  
index 358d64b..f652daf 100644 (file)
  
        counters = alloc_counters(table);
        if (IS_ERR(counters))
-@@ -965,6 +994,14 @@ copy_entries_to_user(unsigned int total_
-                       ret = -EFAULT;
+@@ -966,6 +995,14 @@ copy_entries_to_user(unsigned int total_
                        goto free_counters;
                }
-+
 +              flags = e->ip.flags & IPT_F_MASK;
 +              if (copy_to_user(userptr + off
 +                               + offsetof(struct ipt_entry, ip.flags),
@@ -88,6 +87,7 @@
 +                      ret = -EFAULT;
 +                      goto free_counters;
 +              }
++
                for (i = sizeof(struct ipt_entry);
                     i < e->target_offset;
+                    i += m->u.match_size) {
index 265ff20..b95c721 100644 (file)
@@ -37,7 +37,7 @@
        depends on NETFILTER_ADVANCED
 --- a/net/netfilter/Makefile
 +++ b/net/netfilter/Makefile
-@@ -140,6 +140,7 @@ obj-$(CONFIG_NETFILTER_XT_MATCH_ESP) +=
+@@ -140,6 +140,7 @@ obj-$(CONFIG_NETFILTER_XT_MATCH_ESP) += 
  obj-$(CONFIG_NETFILTER_XT_MATCH_HASHLIMIT) += xt_hashlimit.o
  obj-$(CONFIG_NETFILTER_XT_MATCH_HELPER) += xt_helper.o
  obj-$(CONFIG_NETFILTER_XT_MATCH_HL) += xt_hl.o
index e8b21e5..05df907 100644 (file)
@@ -25,7 +25,7 @@
          Ethernet bridge, which means that the different Ethernet segments it
 --- a/net/ipv6/Makefile
 +++ b/net/ipv6/Makefile
-@@ -45,6 +45,7 @@ obj-y += addrconf_core.o exthdrs_core.o
+@@ -45,6 +45,7 @@ obj-y += addrconf_core.o exthdrs_core.o 
  obj-$(CONFIG_INET) += output_core.o protocol.o $(ipv6-offload)
  
  obj-$(subst m,y,$(CONFIG_IPV6)) += inet6_hashtables.o
index 8d0da3c..a8a6017 100644 (file)
  }
  #endif
  
-@@ -1556,6 +1581,7 @@ static int br_multicast_ipv4_rcv(struct
+@@ -1556,6 +1581,7 @@ static int br_multicast_ipv4_rcv(struct 
                                 struct sk_buff *skb,
                                 u16 vid)
  {
        struct sk_buff *skb2 = skb;
        const struct iphdr *iph;
        struct igmphdr *ih;
-@@ -1629,7 +1655,7 @@ static int br_multicast_ipv4_rcv(struct
+@@ -1629,7 +1655,7 @@ static int br_multicast_ipv4_rcv(struct 
        case IGMP_HOST_MEMBERSHIP_REPORT:
        case IGMPV2_HOST_MEMBERSHIP_REPORT:
                BR_INPUT_SKB_CB(skb)->mrouters_only = 1;
                break;
        case IGMPV3_HOST_MEMBERSHIP_REPORT:
                err = br_ip4_multicast_igmp3_report(br, port, skb2, vid);
-@@ -1638,7 +1664,7 @@ static int br_multicast_ipv4_rcv(struct
+@@ -1638,7 +1664,7 @@ static int br_multicast_ipv4_rcv(struct 
                err = br_ip4_multicast_query(br, port, skb2, vid);
                break;
        case IGMP_HOST_LEAVE_MESSAGE:
                break;
        }
  
-@@ -1656,6 +1682,7 @@ static int br_multicast_ipv6_rcv(struct
+@@ -1656,6 +1682,7 @@ static int br_multicast_ipv6_rcv(struct 
                                 struct sk_buff *skb,
                                 u16 vid)
  {
        struct sk_buff *skb2;
        const struct ipv6hdr *ip6h;
        u8 icmp6_type;
-@@ -1765,7 +1792,8 @@ static int br_multicast_ipv6_rcv(struct
+@@ -1765,7 +1792,8 @@ static int br_multicast_ipv6_rcv(struct 
                }
                mld = (struct mld_msg *)skb_transport_header(skb2);
                BR_INPUT_SKB_CB(skb)->mrouters_only = 1;
                break;
            }
        case ICMPV6_MLD2_REPORT:
-@@ -1782,7 +1810,7 @@ static int br_multicast_ipv6_rcv(struct
+@@ -1782,7 +1810,7 @@ static int br_multicast_ipv6_rcv(struct 
                        goto out;
                }
                mld = (struct mld_msg *)skb_transport_header(skb2);
index 6b25a2e..5462388 100644 (file)
@@ -1,6 +1,6 @@
 --- a/net/netlink/af_netlink.c
 +++ b/net/netlink/af_netlink.c
-@@ -1715,27 +1715,7 @@ void netlink_detachskb(struct sock *sk,
+@@ -1715,27 +1715,7 @@ void netlink_detachskb(struct sock *sk, 
  
  static struct sk_buff *netlink_trim(struct sk_buff *skb, gfp_t allocation)
  {
index 6777eec..72b3dfc 100644 (file)
@@ -24,7 +24,7 @@ commont qdiscs.
        }
 --- a/net/sched/sch_fifo.c
 +++ b/net/sched/sch_fifo.c
-@@ -29,17 +29,21 @@ static int bfifo_enqueue(struct sk_buff
+@@ -29,17 +29,21 @@ static int bfifo_enqueue(struct sk_buff 
  
  static int pfifo_enqueue(struct sk_buff *skb, struct Qdisc *sch)
  {
index 000665f..8bf4b3b 100644 (file)
@@ -308,7 +308,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
        err = ip6_tnl_xmit2(skb, dev, dsfield, &fl6, encap_limit, &mtu);
        if (err != 0) {
                /* XXX: send ICMP error even if DF is not set. */
-@@ -1263,6 +1413,14 @@ ip6_tnl_change(struct ip6_tnl *t, const
+@@ -1263,6 +1413,14 @@ ip6_tnl_change(struct ip6_tnl *t, const 
        t->parms.flowinfo = p->flowinfo;
        t->parms.link = p->link;
        t->parms.proto = p->proto;
index d76375e..63e5ab4 100644 (file)
@@ -55,7 +55,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
  
 --- a/net/ipv4/fib_semantics.c
 +++ b/net/ipv4/fib_semantics.c
-@@ -138,6 +138,10 @@ const struct fib_prop fib_props[RTN_MAX
+@@ -138,6 +138,10 @@ const struct fib_prop fib_props[RTN_MAX 
                .error  = -EINVAL,
                .scope  = RT_SCOPE_NOWHERE,
        },
index 768c80f..fc032a9 100644 (file)
@@ -1,6 +1,6 @@
 --- a/drivers/net/wireless/hostap/hostap_ap.c
 +++ b/drivers/net/wireless/hostap/hostap_ap.c
-@@ -2403,13 +2403,13 @@ int prism2_ap_get_sta_qual(local_info_t
+@@ -2403,13 +2403,13 @@ int prism2_ap_get_sta_qual(local_info_t 
                addr[count].sa_family = ARPHRD_ETHER;
                memcpy(addr[count].sa_data, sta->addr, ETH_ALEN);
                if (sta->last_rx_silence == 0)
index fe52ccc..c2eef69 100644 (file)
@@ -12,7 +12,7 @@ Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
  #include <bcm47xx_nvram.h>
  
  static const struct bcma_device_id bgmac_bcma_tbl[] = {
-@@ -1405,6 +1406,17 @@ static void bgmac_mii_unregister(struct
+@@ -1405,6 +1406,17 @@ static void bgmac_mii_unregister(struct 
        mdiobus_free(mii_bus);
  }
  
index 3c29034..e541b2c 100644 (file)
@@ -25,7 +25,7 @@ Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
 
 --- a/drivers/net/ethernet/intel/igb/igb_main.c
 +++ b/drivers/net/ethernet/intel/igb/igb_main.c
-@@ -1033,6 +1033,12 @@ static void igb_reset_q_vector(struct ig
+@@ -1034,6 +1034,12 @@ static void igb_reset_q_vector(struct ig
        if (!q_vector)
                return;
  
index ef811c6..63cc201 100644 (file)
@@ -15,7 +15,7 @@
        default y
 --- a/drivers/pci/quirks.c
 +++ b/drivers/pci/quirks.c
-@@ -41,6 +41,7 @@ static void quirk_mmio_always_on(struct
+@@ -41,6 +41,7 @@ static void quirk_mmio_always_on(struct 
  DECLARE_PCI_FIXUP_CLASS_EARLY(PCI_ANY_ID, PCI_ANY_ID,
                                PCI_CLASS_BRIDGE_HOST, 8, quirk_mmio_always_on);
  
index 1134b83..08c0648 100644 (file)
                         &fib_triestat_fops))
                goto out2;
  
-@@ -2594,17 +2596,21 @@ int __net_init fib_proc_init(struct net
+@@ -2594,17 +2596,21 @@ int __net_init fib_proc_init(struct net 
        return 0;
  
  out3:
index cc512f8..4e3e99d 100644 (file)
@@ -24,7 +24,7 @@
   * All of these routines try to estimate how many bits of randomness a
   * particular randomness source.  They do this by keeping track of the
   * first and second order deltas of the event timings.
-@@ -938,6 +948,63 @@ void add_disk_randomness(struct gendisk
+@@ -938,6 +948,63 @@ void add_disk_randomness(struct gendisk 
  EXPORT_SYMBOL_GPL(add_disk_randomness);
  #endif