)]}'
{
  "log": [
    {
      "commit": "c5396a31b20991c856facbce18a2a56d1a14e8d0",
      "tree": "39213f3e9cabee6ba2ffe7440a7a4efef8a1e033",
      "parents": [
        "b293acfd3133393a81bcd382eb71a210c9cf9526"
      ],
      "author": {
        "name": "YOSHIFUJI Hideaki",
        "email": "yoshfuji@linux-ipv6.org",
        "time": "Sat Jun 17 22:48:48 2006 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Jun 17 22:48:48 2006 -0700"
      },
      "message": "[IPV6]: Sum real space for RTAs.\n\nThis patch fixes RTNLGRP_IPV6_IFINFO netlink notifications.  Issue\npointed out by Patrick McHardy \u003ckaber@trash.net\u003e.\n\nSigned-off-by: YOSHIFUJI Hideaki \u003cyoshfuji@linux-ipv6.org\u003e\nAcked-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "e041c683412d5bf44dc2b109053e3b837b71742d",
      "tree": "9d271066ef379da0c0fb3b8cb4137abd5d2ebba0",
      "parents": [
        "76b81e2b0e2241accebcc68e126bc5ab958661b9"
      ],
      "author": {
        "name": "Alan Stern",
        "email": "stern@rowland.harvard.edu",
        "time": "Mon Mar 27 01:16:30 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Mar 27 08:44:50 2006 -0800"
      },
      "message": "[PATCH] Notifier chain update: API changes\n\nThe kernel\u0027s implementation of notifier chains is unsafe.  There is no\nprotection against entries being added to or removed from a chain while the\nchain is in use.  The issues were discussed in this thread:\n\n    http://marc.theaimsgroup.com/?l\u003dlinux-kernel\u0026m\u003d113018709002036\u0026w\u003d2\n\nWe noticed that notifier chains in the kernel fall into two basic usage\nclasses:\n\n\t\"Blocking\" chains are always called from a process context\n\tand the callout routines are allowed to sleep;\n\n\t\"Atomic\" chains can be called from an atomic context and\n\tthe callout routines are not allowed to sleep.\n\nWe decided to codify this distinction and make it part of the API.  Therefore\nthis set of patches introduces three new, parallel APIs: one for blocking\nnotifiers, one for atomic notifiers, and one for \"raw\" notifiers (which is\nreally just the old API under a new name).  New kinds of data structures are\nused for the heads of the chains, and new routines are defined for\nregistration, unregistration, and calling a chain.  The three APIs are\nexplained in include/linux/notifier.h and their implementation is in\nkernel/sys.c.\n\nWith atomic and blocking chains, the implementation guarantees that the chain\nlinks will not be corrupted and that chain callers will not get messed up by\nentries being added or removed.  For raw chains the implementation provides no\nguarantees at all; users of this API must provide their own protections.  (The\nidea was that situations may come up where the assumptions of the atomic and\nblocking APIs are not appropriate, so it should be possible for users to\nhandle these things in their own way.)\n\nThere are some limitations, which should not be too hard to live with.  For\natomic/blocking chains, registration and unregistration must always be done in\na process context since the chain is protected by a mutex/rwsem.  Also, a\ncallout routine for a non-raw chain must not try to register or unregister\nentries on its own chain.  (This did happen in a couple of places and the code\nhad to be changed to avoid it.)\n\nSince atomic chains may be called from within an NMI handler, they cannot use\nspinlocks for synchronization.  Instead we use RCU.  The overhead falls almost\nentirely in the unregister routine, which is okay since unregistration is much\nless frequent that calling a chain.\n\nHere is the list of chains that we adjusted and their classifications.  None\nof them use the raw API, so for the moment it is only a placeholder.\n\n  ATOMIC CHAINS\n  -------------\narch/i386/kernel/traps.c:\t\ti386die_chain\narch/ia64/kernel/traps.c:\t\tia64die_chain\narch/powerpc/kernel/traps.c:\t\tpowerpc_die_chain\narch/sparc64/kernel/traps.c:\t\tsparc64die_chain\narch/x86_64/kernel/traps.c:\t\tdie_chain\ndrivers/char/ipmi/ipmi_si_intf.c:\txaction_notifier_list\nkernel/panic.c:\t\t\t\tpanic_notifier_list\nkernel/profile.c:\t\t\ttask_free_notifier\nnet/bluetooth/hci_core.c:\t\thci_notifier\nnet/ipv4/netfilter/ip_conntrack_core.c:\tip_conntrack_chain\nnet/ipv4/netfilter/ip_conntrack_core.c:\tip_conntrack_expect_chain\nnet/ipv6/addrconf.c:\t\t\tinet6addr_chain\nnet/netfilter/nf_conntrack_core.c:\tnf_conntrack_chain\nnet/netfilter/nf_conntrack_core.c:\tnf_conntrack_expect_chain\nnet/netlink/af_netlink.c:\t\tnetlink_chain\n\n  BLOCKING CHAINS\n  ---------------\narch/powerpc/platforms/pseries/reconfig.c:\tpSeries_reconfig_chain\narch/s390/kernel/process.c:\t\tidle_chain\narch/x86_64/kernel/process.c\t\tidle_notifier\ndrivers/base/memory.c:\t\t\tmemory_chain\ndrivers/cpufreq/cpufreq.c\t\tcpufreq_policy_notifier_list\ndrivers/cpufreq/cpufreq.c\t\tcpufreq_transition_notifier_list\ndrivers/macintosh/adb.c:\t\tadb_client_list\ndrivers/macintosh/via-pmu.c\t\tsleep_notifier_list\ndrivers/macintosh/via-pmu68k.c\t\tsleep_notifier_list\ndrivers/macintosh/windfarm_core.c\twf_client_list\ndrivers/usb/core/notify.c\t\tusb_notifier_list\ndrivers/video/fbmem.c\t\t\tfb_notifier_list\nkernel/cpu.c\t\t\t\tcpu_chain\nkernel/module.c\t\t\t\tmodule_notify_list\nkernel/profile.c\t\t\tmunmap_notifier\nkernel/profile.c\t\t\ttask_exit_notifier\nkernel/sys.c\t\t\t\treboot_notifier_list\nnet/core/dev.c\t\t\t\tnetdev_chain\nnet/decnet/dn_dev.c:\t\t\tdnaddr_chain\nnet/ipv4/devinet.c:\t\t\tinetaddr_chain\n\nIt\u0027s possible that some of these classifications are wrong.  If they are,\nplease let us know or submit a patch to fix them.  Note that any chain that\ngets called very frequently should be atomic, because the rwsem read-locking\nused for blocking chains is very likely to incur cache misses on SMP systems.\n(However, if the chain\u0027s callout routines may sleep then the chain cannot be\natomic.)\n\nThe patch set was written by Alan Stern and Chandra Seetharaman, incorporating\nmaterial written by Keith Owens and suggestions from Paul McKenney and Andrew\nMorton.\n\n[jes@sgi.com: restructure the notifier chain initialization macros]\nSigned-off-by: Alan Stern \u003cstern@rowland.harvard.edu\u003e\nSigned-off-by: Chandra Seetharaman \u003csekharan@us.ibm.com\u003e\nSigned-off-by: Jes Sorensen \u003cjes@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "322f74a432f976328e834a8663f2e75eb5933ecc",
      "tree": "78c0415bc4902862eef3b33254fc516ad24b6872",
      "parents": [
        "0c600eda4b1c9f8f6d1bd643d494db5a29842fbe"
      ],
      "author": {
        "name": "Ingo Oeser",
        "email": "ioe-lkml@rameria.de",
        "time": "Mon Mar 20 23:01:47 2006 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Mar 20 23:01:47 2006 -0800"
      },
      "message": "[IPV6]: Cleanups for net/ipv6/addrconf.c (kzalloc, early exit) v2\n\nHere are some possible (and trivial) cleanups.\n- use kzalloc() where possible\n- invert allocation failure test like\n  if (object) {\n        /* Rest of function here */\n  }\n  to\n\n  if (object \u003d\u003d NULL)\n        return NULL;\n\n  /* Rest of function here */\n\nSigned-off-by: Ingo Oeser \u003cioe-lkml@rameria.de\u003e\nAcked-by: YOSHIFUJI Hideaki \u003cyoshfuji@linux-ipv6.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "09c884d4c3b45cda904c2291d4723074ff523611",
      "tree": "90b893f1b83165d7088ecdead94085969e0a58ef",
      "parents": [
        "e317da96227cef28a137e2d1ad790b23e518dd2b"
      ],
      "author": {
        "name": "YOSHIFUJI Hideaki",
        "email": "yoshfuji@linux-ipv6.org",
        "time": "Mon Mar 20 17:07:03 2006 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Mar 20 17:07:03 2006 -0800"
      },
      "message": "[IPV6]: ROUTE: Add accept_ra_rt_info_max_plen sysctl.\n\nSigned-off-by: YOSHIFUJI Hideaki \u003cyoshfuji@linux-ipv6.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "52e1635631b342803aecaf81a362c1464e3da2e5",
      "tree": "971c40743f7fcb594697dd18d22e2d8b168d1785",
      "parents": [
        "930d6ff2e2a5f1538448d3b0b2652a8f0c0f6cba"
      ],
      "author": {
        "name": "YOSHIFUJI Hideaki",
        "email": "yoshfuji@linux-ipv6.org",
        "time": "Mon Mar 20 17:05:47 2006 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Mar 20 17:05:47 2006 -0800"
      },
      "message": "[IPV6]: ROUTE: Add router_probe_interval sysctl.\n\nSigned-off-by: YOSHIFUJI Hideaki \u003cyoshfuji@linux-ipv6.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "930d6ff2e2a5f1538448d3b0b2652a8f0c0f6cba",
      "tree": "0ea6ca2d6d04c13bf05100a70a4a21d7cd6eeb82",
      "parents": [
        "270972554c91acd29412d8b6a10e606041012106"
      ],
      "author": {
        "name": "YOSHIFUJI Hideaki",
        "email": "yoshfuji@linux-ipv6.org",
        "time": "Mon Mar 20 17:05:30 2006 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Mar 20 17:05:30 2006 -0800"
      },
      "message": "[IPV6]: ROUTE: Add accept_ra_rtr_pref sysctl.\n\nSigned-off-by: YOSHIFUJI Hideaki \u003cyoshfuji@linux-ipv6.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "c4fd30eb18666972230689eb30e8f90844bce635",
      "tree": "f1b8daddeb21d7d1390fa1ae820bf2b5ffa8d276",
      "parents": [
        "65f5c7c1143fb8eed5bc7e7d8c926346e00fe3c0"
      ],
      "author": {
        "name": "YOSHIFUJI Hideaki",
        "email": "yoshfuji@linux-ipv6.org",
        "time": "Mon Mar 20 16:55:26 2006 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Mar 20 16:55:26 2006 -0800"
      },
      "message": "[IPV6]: ADDRCONF: Add accept_ra_pinfo sysctl.\n\nThis controls whether we accept Prefix Information in RAs.\n\nSigned-off-by: YOSHIFUJI Hideaki \u003cyoshfuji@linux-ipv6.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "65f5c7c1143fb8eed5bc7e7d8c926346e00fe3c0",
      "tree": "fb61c9f73577a7fec29b11039d1434b972796d8b",
      "parents": [
        "073a8e0e154c1c440e0b33aaa887473d5cc843f4"
      ],
      "author": {
        "name": "YOSHIFUJI Hideaki",
        "email": "yoshfuji@linux-ipv6.org",
        "time": "Mon Mar 20 16:55:08 2006 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Mar 20 16:55:08 2006 -0800"
      },
      "message": "[IPV6]: ROUTE: Add accept_ra_defrtr sysctl.\n\nThis controls whether we accept default router information\nin RAs.\n\nSigned-off-by: YOSHIFUJI Hideaki \u003cyoshfuji@linux-ipv6.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "073a8e0e154c1c440e0b33aaa887473d5cc843f4",
      "tree": "eb7983e9977b153c3ee67864aca9cc5fedba8194",
      "parents": [
        "955189efb44742890f33c91df478877af25246da"
      ],
      "author": {
        "name": "YOSHIFUJI Hideaki",
        "email": "yoshfuji@linux-ipv6.org",
        "time": "Mon Mar 20 16:54:49 2006 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Mar 20 16:54:49 2006 -0800"
      },
      "message": "[IPV6]: ADDRCONF: Split up ipv6_generate_eui64() by device type.\n\nSigned-off-by: YOSHIFUJI Hideaki \u003cyoshfuji@linux-ipv6.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "955189efb44742890f33c91df478877af25246da",
      "tree": "7e98451f91422ad33bc8f4df62cb8166317b9796",
      "parents": [
        "955aaa2fe39e21e49521449c09548ce1ba501010"
      ],
      "author": {
        "name": "YOSHIFUJI Hideaki",
        "email": "yoshfuji@linux-ipv6.org",
        "time": "Mon Mar 20 16:54:09 2006 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Mar 20 16:54:09 2006 -0800"
      },
      "message": "[IPV6]: ADDRCONF: Use our standard algorithm for randomized ifid.\n\nRFC 3041 describes an algorithm to generate random interface\nidentifier.  In RFC 3041bis, it is allowed to use different\nalgorithm than one described in RFC 3041.\n\nSo, let\u0027s use our standard pseudo random algorithm to simplify\nour implementation.\n\nSigned-off-by: YOSHIFUJI Hideaki \u003cyoshfuji@linux-ipv6.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "74a3a0ed9096ba9feffc7e44f2a2c37d968bc6d1",
      "tree": "932bfb5e207cb91a1a87f45c26010dd9f7d804fb",
      "parents": [
        "c4a1745aa09fc110afdefea0e5d025043e348bae"
      ],
      "author": {
        "name": "YOSHIFUJI Hideaki",
        "email": "yoshfuji@linux-ipv6.org",
        "time": "Mon Mar 20 16:51:48 2006 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Mar 20 16:51:48 2006 -0800"
      },
      "message": "[IPV6]: TUNNEL6: Don\u0027t try to add multicast route twice.\n\nSince addrconf_add_dev() has already called addrconf_add_mroute()\nto added route for multicast prefix, there\u0027s no point to call it\nagain in addrconf_ip6_tnl_config().\n\nSigned-off-by: YOSHIFUJI Hideaki \u003cyoshfuji@linux-ipv6.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "0d27b42739ee432a66104793e51a23807b372928",
      "tree": "d23986eff26122d06f6493029428a8748ff90040",
      "parents": [
        "0ade309be739eceedc4812798da09d698a59867d"
      ],
      "author": {
        "name": "Brian Haley",
        "email": "brian.haley@hp.com",
        "time": "Sat Mar 11 18:50:14 2006 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Mar 11 18:50:14 2006 -0800"
      },
      "message": "[IPV6]: fix ipv6_saddr_score struct element\n\nThe scope element in the ipv6_saddr_score struct used in \nipv6_dev_get_saddr() is an unsigned integer, but __ipv6_addr_src_scope() \nreturns a signed integer (and can return -1).\n\nSigned-off-by: Brian Haley \u003cbrian.haley@hp.com\u003e\nAcked-by: YOSHIFUJI Hideaki \u003cyoshfuji@linux-ipv6.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "9908104935325bd6beba67d637b6f5396d47075c",
      "tree": "ec3bf2213993e21598403e4aeb68ba1e92d536b5",
      "parents": [
        "4b88f09364e94b05b66fb1441131e8460495a2f8"
      ],
      "author": {
        "name": "Kristian Slavov",
        "email": "kristian.slavov@nomadiclab.com",
        "time": "Wed Feb 08 16:10:53 2006 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Feb 08 16:13:28 2006 -0800"
      },
      "message": "[IPV6]: Address autoconfiguration does not work after device down/up cycle\n\nIf you set network interface down and up again, the IPv6 address\nautoconfiguration does not work. \u0027ip addr\u0027 shows that the link-local\naddress is in tentative state. We don\u0027t even react to periodical router\nadvertisements.\n\nDuring NETDEV_DOWN we clear IF_READY, and we don\u0027t set it back in\nNETDEV_UP. While starting to perform DAD on the link-local address, we\nnotice that the device is not in IF_READY, and we abort autoconfiguration\nprocess (which would eventually send router solicitations).\n\nAcked-by: Juha-Matti Tapio \u003cjmtapio@verkkotelakka.net\u003e\nAcked-by: YOSHIFUJI Hideaki \u003cyoshfuji@linux-ipv6.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "4641e7a334adf6856300a98e7296dfc886c446af",
      "tree": "39030c280f6fbfa183c2ce5a0db37118ce5a7810",
      "parents": [
        "42c5e15f18d63c1ecf79d52bdaf4ea31cd22416d"
      ],
      "author": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Thu Feb 02 16:55:45 2006 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Feb 02 16:55:45 2006 -0800"
      },
      "message": "[IPV6]: Don\u0027t hold extra ref count in ipv6_ifa_notify\n\nCurrently the logic in ipv6_ifa_notify is to hold an extra reference\ncount for addrconf dst\u0027s that get added to the routing table.  Thus,\nwhen addrconf dst entries are taken out of the routing table, we need\nto drop that dst.  However, addrconf dst entries may be removed from\nthe routing table by means other than __ipv6_ifa_notify.\n\nSo we\u0027re faced with the choice of either fixing up all places where\naddrconf dst entries are removed, or dropping the extra reference count\naltogether.\n\nI chose the latter because the ifp itself always holds a dst reference\ncount of 1 while it\u0027s alive.  This is dropped just before we kfree the\nifp object.  Therefore we know that in __ipv6_ifa_notify we will always\nhold that count.\n\nThis bug was found by Eric W. Biederman.\n\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "9343e79a7bb2d3268d68997163608b87d58d8098",
      "tree": "1016bc38ce877e988e26ec644a48e73cc1c1545d",
      "parents": [
        "2664b25051f7ab96b22b199aa2f5ef6a949a4296"
      ],
      "author": {
        "name": "YOSHIFUJI Hideaki",
        "email": "yoshfuji@linux-ipv6.org",
        "time": "Tue Jan 17 02:10:53 2006 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jan 17 02:10:53 2006 -0800"
      },
      "message": "[IPV6]: Preserve procfs IPV6 address output format\n\nProcfs always output IPV6 addresses without the colon\ncharacters, and we cannot change that.\n\nSigned-off-by: YOSHIFUJI Hideaki \u003cyoshfuji@linux-ipv6.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "46b86a2da0fd14bd49765330df63a62279833acb",
      "tree": "069b4741a970db9b03772a870b4d63398b1f56e0",
      "parents": [
        "23b0ca5bf52cef0ab0f0fe247cb91cbef836e7eb"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Fri Jan 13 14:29:07 2006 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Jan 13 14:29:07 2006 -0800"
      },
      "message": "[NET]: Use NIP6_FMT in kernel.h\n\nThere are errors and inconsistency in the display of NIP6 strings.\n\tie: net/ipv6/ip6_flowlabel.c\n\nThere are errors and inconsistency in the display of NIPQUAD strings too.\n\tie: net/netfilter/nf_conntrack_ftp.c\n\nThis patch:\n\tadds NIP6_FMT to kernel.h\n\tchanges all code to use NIP6_FMT\n\tfixes net/ipv6/ip6_flowlabel.c\n\tadds NIPQUAD_FMT to kernel.h\n\tfixes net/netfilter/nf_conntrack_ftp.c\n\tchanges a few uses of \"%u.%u.%u.%u\" to NIPQUAD_FMT for symmetry to NIP6_FMT\n\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "4fc268d24ceb9f4150777c1b5b2b8e6214e56b2b",
      "tree": "d2aaf0b5986b03e6129ed3ccd65b9f706cd59c7f",
      "parents": [
        "16f7e0fe2ecc30f30652e8185e1772cdebe39109"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "rdunlap@xenotime.net",
        "time": "Wed Jan 11 12:17:47 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Jan 11 18:42:14 2006 -0800"
      },
      "message": "[PATCH] capable/capability.h (net/)\n\nnet: Use \u003clinux/capability.h\u003e where capable() is used.\n\nSigned-off-by: Randy Dunlap \u003crdunlap@xenotime.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "9f5336e21893fafd232a9a02cfa7588ad153889a",
      "tree": "83e86a9be67db41144a551cce96d0c2b4884ff70",
      "parents": [
        "97dc627fb3471664c72d0933790a90ba3f91e131"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Sat Jan 07 13:24:25 2006 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Jan 07 13:24:25 2006 -0800"
      },
      "message": "[IPV6]: small cleanups\n\nThis patch contains the following cleanups:\n- addrconf.c: make addrconf_dad_stop() static\n- inet6_connection_sock.c should #include \u003cnet/inet6_connection_sock.h\u003e\n  for getting the prototypes of it\u0027s global functions\n\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "0fa1a53e1f055a6c790f40e7728f42a825b29248",
      "tree": "524eb8c8cadf6053faad6c8799c0571dee92c2b1",
      "parents": [
        "b9750ce13c08aa8a71a9b138d741f3046aefd991"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@mandriva.com",
        "time": "Tue Dec 13 23:23:09 2005 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Tue Jan 03 13:10:47 2006 -0800"
      },
      "message": "[IPV6]: Introduce inet6_timewait_sock\n\nOut of tcp6_timewait_sock, that now is just an aggregation of\ninet_timewait_sock and inet6_timewait_sock, using tw_ipv6_offset in struct\ninet_timewait_sock, that is common to the IPv6 transport protocols that use\ntimewait sockets, like DCCP and TCP.\n\ntw_ipv6_offset plays the struct inet_sock pinfo6 role, i.e. for the generic\ncode to find the IPv6 area in a timewait sock.\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@mandriva.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "6732badee0dad467fcc9dd0168af8677b2b1bc2f",
      "tree": "43fd9fbb5759de0e4a182d473621699b1ff453bc",
      "parents": [
        "79cac2a221ce18642550a13bed0f0203514923ea"
      ],
      "author": {
        "name": "YOSHIFUJI Hideaki",
        "email": "yoshfuji@linux-ipv6.org",
        "time": "Tue Dec 27 13:35:15 2005 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Dec 27 13:35:15 2005 -0800"
      },
      "message": "[IPV6]: Fix addrconf dead lock.\n\nWe need to release idev-\u003elcok before we call addrconf_dad_stop().\nIt calls ipv6_addr_del(), which will hold idev-\u003elock.\n\nBug spotted by Yasuyuki KOZAKAI \u003cyasuyuki.kozakai@toshiba.co.jp\u003e.\n\nSigned-off-by: YOSHIFUJI Hideaki \u003cyoshfuji@linux-ipv6.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "291d809ba5c8d4d6d8812e3f185bdf57d539f594",
      "tree": "41fe805546ca4e90fa68cdc130938a48675d4182",
      "parents": [
        "3dd3bf83574e38578fc9741c0e23e4fa7f7ff96e"
      ],
      "author": {
        "name": "Hiroyuki YAMAMORI",
        "email": "h-yamamo@db3.so-net.ne.jp",
        "time": "Fri Dec 23 11:24:05 2005 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Dec 23 11:24:05 2005 -0800"
      },
      "message": "[IPV6]: Fix Temporary Address Generation\n\nFrom: Hiroyuki YAMAMORI \u003ch-yamamo@db3.so-net.ne.jp\u003e\n\nSince regen_count is stored in the public address, we need to reset it\nwhen we start renewing temporary address.\n\nSigned-off-by: YOSHIFUJI Hideaki \u003cyoshfuji@linux-ipv6.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n\n"
    },
    {
      "commit": "3dd3bf83574e38578fc9741c0e23e4fa7f7ff96e",
      "tree": "fb9ccc01f478161d20b45040f28419b13ba5c07c",
      "parents": [
        "c162eeaa21fde6c27112690f5bc0a461a9f1763e"
      ],
      "author": {
        "name": "YOSHIFUJI Hideaki",
        "email": "yoshfuji@linux-ipv6.org",
        "time": "Fri Dec 23 11:23:21 2005 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Dec 23 11:23:21 2005 -0800"
      },
      "message": "[IPV6]: Fix dead lock.\n\nWe need to relesae ifp-\u003elock before we call addrconf_dad_stop(),\nwhich will hold ifp-\u003elock.\n\nSigned-off-by: YOSHIFUJI Hideaki \u003cyoshfuji@linux-ipv6.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "e6469297d4eecfd9f46929fe1f56a01141cb0791",
      "tree": "9cdd368a9c5e02c177e54edcfd8bcc06155526a9",
      "parents": [
        "9b78a82c1cf19aa813bdaa184fa840a3ba811750",
        "6b3ae80a63e47f6e97d68a1ddd520e3509e62821"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Thu Dec 22 07:41:27 2005 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Thu Dec 22 07:41:27 2005 -0800"
      },
      "message": "Merge git://git.skbuff.net/gitroot/yoshfuji/linux-2.6.14+git+ipv6-fix-20051221a\n"
    },
    {
      "commit": "1d1428045c54ef3d172d480806e2066dde0b4b76",
      "tree": "64a2a1a16e02416b2f49b62faaa5c9f7b7307373",
      "parents": [
        "7eb1b3d372a53fe9220b9e3b579886db0fe2f897"
      ],
      "author": {
        "name": "Kristian Slavov",
        "email": "kristian.slavov@nomadiclab.com",
        "time": "Wed Dec 21 18:47:24 2005 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Dec 21 18:47:24 2005 -0800"
      },
      "message": "[IPV6]: Fix address deletion\n\nIf you add more than one IPv6 address belonging to the same prefix and \ndelete the address that was last added, routing table entry for that \nprefix is also deleted.\nTested on 2.6.14.4\n\nTo reproduce:\nip addr add 3ffe::1/64 dev eth0\nip addr add 3ffe::2/64 dev eth0\n/* wait DAD */\nsleep 1\nip addr del 3ffe::2/64 dev eth0\nip -6 route\n\n(route to 3ffe::/64 should be gone)\n\nIn ipv6_del_addr(), if ifa \u003d\u003d ifp, we set ifa-\u003eif_next to NULL, and later \nassign ifap \u003d \u0026ifa-\u003eif_next, effectively terminating the for-loop.\nThis prevents us from checking if there are other addresses using the same \nprefix that are valid, and thus resulting in deletion of the prefix.\nThis applies only if the first entry in idev-\u003eaddr_list is the address to \nbe deleted.\n\nSigned-off-by: Kristian Slavov \u003ckristian.slavov@nomadiclab.com\u003e\nAcked-by: YOSHIFUJI Hideaki \u003cyoshfuji@linux-ipv6.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "6b3ae80a63e47f6e97d68a1ddd520e3509e62821",
      "tree": "8f4f40abffc2702c8b05323c93b5f122360ea412",
      "parents": [
        "c5e33bddd3c798f681f8f3027270127be6b61a3b"
      ],
      "author": {
        "name": "YOSHIFUJI Hideaki",
        "email": "yoshfuji@linux-ipv6.org",
        "time": "Wed Dec 21 22:58:01 2005 +0900"
      },
      "committer": {
        "name": "YOSHIFUJI Hideaki",
        "email": "yoshfuji@linux-ipv6.org",
        "time": "Wed Dec 21 22:58:01 2005 +0900"
      },
      "message": "[IPV6]: Don\u0027t select a tentative address as a source address.\n\nA tentative address is not considered \"assigned to an interface\"\nin the traditional sense (RFC2462 Section 4).\nDon\u0027t try to select such an address for the source address.\n\nSigned-off-by: YOSHIFUJI Hideaki \u003cyoshfuji@linux-ipv6.org\u003e\n"
    },
    {
      "commit": "c5e33bddd3c798f681f8f3027270127be6b61a3b",
      "tree": "b8929b76a8e485becccf25a3385124fa88e5a17d",
      "parents": [
        "3c21edbd113788b110116141c8078623a0900b6a"
      ],
      "author": {
        "name": "YOSHIFUJI Hideaki",
        "email": "yoshfuji@linux-ipv6.org",
        "time": "Wed Dec 21 22:57:44 2005 +0900"
      },
      "committer": {
        "name": "YOSHIFUJI Hideaki",
        "email": "yoshfuji@linux-ipv6.org",
        "time": "Wed Dec 21 22:57:44 2005 +0900"
      },
      "message": "[IPV6]: Run DAD when the link becomes ready.\n\nIf the link was not available when the interface was created,\nrun DAD for pending tentative addresses when the link becomes ready.\n\nSigned-off-by: YOSHIFUJI Hideaki \u003cyoshfuji@linux-ipv6.org\u003e\n"
    },
    {
      "commit": "3c21edbd113788b110116141c8078623a0900b6a",
      "tree": "b6d7cc0655f0965725e6b3a025724ea018c53c4a",
      "parents": [
        "8de3351e6e0a1081fbf6864ae37839e327699a08"
      ],
      "author": {
        "name": "YOSHIFUJI Hideaki",
        "email": "yoshfuji@linux-ipv6.org",
        "time": "Wed Dec 21 22:57:24 2005 +0900"
      },
      "committer": {
        "name": "YOSHIFUJI Hideaki",
        "email": "yoshfuji@linux-ipv6.org",
        "time": "Wed Dec 21 22:57:24 2005 +0900"
      },
      "message": "[IPV6]: Defer IPv6 device initialization until the link becomes ready.\n\nNETDEV_UP might be sent even if the link attached to the interface was\nnot ready.  DAD does not make sense in such case, so we won\u0027t do so.\nAfter interface\n\nSigned-off-by: YOSHIFUJI Hideaki \u003cyoshfuji@linux-ipv6.org\u003e\n"
    },
    {
      "commit": "3dd4bc68fac5df16b6d3ed6ed3c29cf05f29a47e",
      "tree": "854f73bd7862354eac94b624d436b59fdd5ffecb",
      "parents": [
        "b03664869aa6f84c3c98a06ac9d6905b195909bc"
      ],
      "author": {
        "name": "YOSHIFUJI Hideaki",
        "email": "yoshfuji@linux-ipv6.org",
        "time": "Mon Dec 19 14:02:45 2005 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Dec 19 14:02:45 2005 -0800"
      },
      "message": "[IPV6]: Fix route lifetime.\n\nThe route expiration time is stored in rt6i_expires in jiffies.\nThe argument of rt6_route_add() for adding a route is not the\nexpiration time in jiffies nor in clock_t, but the lifetime\n(or time left before expiration) in clock_t.\n\nBecause of the confusion, we sometimes saw several strange errors\n(FAILs) in TAHI IPv6 Ready Logo Phase-2 Self Test.\nThe symptoms were analyzed by Mitsuru Chinen \u003cCHINEN@jp.ibm.com\u003e.\n\nSigned-off-by: YOSHIFUJI Hideaki \u003cyoshfuji@linux-ipv6.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "a1493d9cd1aaed06860d128a37df1bdfbc61f7c8",
      "tree": "c8101a9d1b3b41a2b39d4078458fa15d1dad3c04",
      "parents": [
        "cd6104572bca9e4afe0dcdb8ecd65ef90b01297b"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Dec 13 22:59:36 2005 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Dec 13 22:59:36 2005 -0800"
      },
      "message": "[IPV6] addrconf: Do not print device pointer in privacy log message.\n\nNoticed by Andi Kleen, it is pointless to emit the device\nstructure pointer in the kernel logs like this.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "220bbd748335f73aafb472a97716762a42cb0d58",
      "tree": "7bbcf26661ba53bb6c782dff0b8afee7bc417f27",
      "parents": [
        "624f54be206adf970cd8eece16446b027913e533"
      ],
      "author": {
        "name": "YOSHIFUJI Hideaki",
        "email": "yoshfuji@linux-ipv6.org",
        "time": "Mon Nov 28 22:27:11 2005 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Nov 28 22:27:11 2005 -0800"
      },
      "message": "[IPV6]: Implement appropriate dummy rule 4 in ipv6_dev_get_saddr().\n\nEnsure to update hiscore.rule in dummy rule 4 in ipv6_dev_get_saddr().\nPointed out by Yan Zheng \u003cyanzheng@21cn.com\u003e.\n\nSigned-off-by: YOSHIFUJI Hideaki \u003cyoshfuji@linux-ipv6.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "5d5780df23537ad0db72267fe11103d2c23d9b2a",
      "tree": "3a442b265c3494072d4cdf15c8d3a38ada33a734",
      "parents": [
        "4909724b5dee8fb7c52bbe90afa40c65b17be9eb"
      ],
      "author": {
        "name": "Yan Zheng",
        "email": "yanzheng@21cn.com",
        "time": "Sun Nov 20 13:42:20 2005 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Nov 20 13:42:20 2005 -0800"
      },
      "message": "[IPV6]: Acquire addrconf_hash_lock for read in addrconf_verify(...)\n\naddrconf_verify(...) only traverse address hash table when\naddrconf_hash_lock is held for writing, and it may hold\naddrconf_hash_lock for a long time. So I think it\u0027s better to acquire\naddrconf_hash_lock for reading instead of writing\n\nSigned-off-by: Yan Zheng \u003cyanzheng@21cn.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "12da2a435c1e8b9abb780d928ccbf04fc3d860a7",
      "tree": "bf04e2ac774febba938035f019f57ca4e81169ee",
      "parents": [
        "4060994c3e337b40e0f6fa8ce2cc178e021baf3d"
      ],
      "author": {
        "name": "Yan Zheng",
        "email": "yanzheng@21cn.com",
        "time": "Mon Nov 14 21:42:46 2005 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Nov 14 21:42:46 2005 -0800"
      },
      "message": "[IPV6]: small fix for ipv6_dev_get_saddr(...)\n\nThe \"score.rule++\" doesn\u0027t make any sense for me. \nAccording to codes above, I think it should be \"hiscore.rule++;\" .\n\nSigned-off-by: Yan Zheng\u003cyanzheng@21cn.com\u003e\nAcked-by: YOSHIFUJI Hideaki \u003cyoshfuji@linux-ipv6.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "44fd0261d3509b0b4303fd9ba792058d230186ab",
      "tree": "9a504fdbd1c2caa7d1a74c98a6ca86237b996d03",
      "parents": [
        "5fd52fe0989f8c84abd8d4a40ded79d4da911744"
      ],
      "author": {
        "name": "Peter Chubb",
        "email": "peterc@gelato.unsw.edu.au",
        "time": "Wed Nov 09 13:05:47 2005 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Nov 09 13:05:47 2005 -0800"
      },
      "message": "[IPV6]: Fix fallout from CONFIG_IPV6_PRIVACY\n\nTrying to build today\u0027s 2.6.14+git snapshot gives undefined references\nto use_tempaddr\n\nLooks like an ifdef got left out.\n\nSigned-off-by: Peter Chubb \u003cpeterc@gelato.unsw.edu.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "a51482bde22f99c63fbbb57d5d46cc666384e379",
      "tree": "5482ed1c0803edb2ffbd51035de921fb0f72d82b",
      "parents": [
        "ac7c98eca88a854755475fcfe1b2bf5f97f90d99"
      ],
      "author": {
        "name": "Jesper Juhl",
        "email": "jesper.juhl@gmail.com",
        "time": "Tue Nov 08 09:41:34 2005 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Nov 08 09:41:34 2005 -0800"
      },
      "message": "[NET]: kfree cleanup\n\nFrom: Jesper Juhl \u003cjesper.juhl@gmail.com\u003e\n\nThis is the net/ part of the big kfree cleanup patch.\n\nRemove pointless checks for NULL prior to calling kfree() in net/.\n\nSigned-off-by: Jesper Juhl \u003cjesper.juhl@gmail.com\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@conectiva.com.br\u003e\nAcked-by: Marcel Holtmann \u003cmarcel@holtmann.org\u003e\nAcked-by: YOSHIFUJI Hideaki \u003cyoshfuji@linux-ipv6.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\n"
    },
    {
      "commit": "072047e4de3800905e09d0f8ef0e1cc4e91a601e",
      "tree": "f4b7b8c74213bc0b075d252eab46db0b012323fc",
      "parents": [
        "b1cacb6820e0afc4aeeea67bcb5296a316862cad"
      ],
      "author": {
        "name": "YOSHIFUJI Hideaki",
        "email": "yoshfuji@linux-ipv6.org",
        "time": "Tue Nov 08 09:38:30 2005 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Nov 08 09:38:30 2005 -0800"
      },
      "message": "[IPV6]: RFC3484 compliant source address selection\n\nChoose more appropriate source address; e.g.\n - outgoing interface\n - non-deprecated\n - scope\n - matching label\n\nSigned-off-by: YOSHIFUJI Hideaki \u003cyoshfuji@linux-ipv6.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b1cacb6820e0afc4aeeea67bcb5296a316862cad",
      "tree": "e7a563d832dfb028b31492ec76054ca30c2c8878",
      "parents": [
        "971f359ddcb2e7a0d577479c7561bda407febe1b"
      ],
      "author": {
        "name": "YOSHIFUJI Hideaki",
        "email": "yoshfuji@linux-ipv6.org",
        "time": "Tue Nov 08 09:38:12 2005 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Nov 08 09:38:12 2005 -0800"
      },
      "message": "[IPV6]: Make ipv6_addr_type() more generic so that we can use it for source address selection.\n\nSigned-off-by: YOSHIFUJI Hideaki \u003cyoshfuji@linux-ipv6.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "979ad663125af4be120697263038bb06ddbb83b4",
      "tree": "096b4f7abd60bbaf71bef8b2c182cda3970bb888",
      "parents": [
        "c75d721c761ad0f2d8725c40af9e4f376efefd24"
      ],
      "author": {
        "name": "Yan Zheng",
        "email": "yanzheng@21cn.com",
        "time": "Fri Oct 14 18:31:15 2005 +0800"
      },
      "committer": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@mandriva.com",
        "time": "Thu Nov 03 01:03:05 2005 -0200"
      },
      "message": "[IPV6]: inet6_ifinfo_notify should use RTM_DELLINK in addrconf_ifdown\n\nSigned-off-by: Yan Zheng \u003cyanzheng@21cn.com\u003e\nAcked-by: YOSHIFUJI Hideaki \u003cyoshfuji@linux-ipv6.org\u003e\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@mandriva.com\u003e\n"
    },
    {
      "commit": "378f058cc49bcda7fa63d3cd86d2f9a0a5188b1c",
      "tree": "ed99548aa459054c7b046f0ac96af2cc50683e6e",
      "parents": [
        "d32311fed70d12f14e585feb4653571b1e2b0e6d"
      ],
      "author": {
        "name": "David Hardeman",
        "email": "david@2gen.com",
        "time": "Sat Sep 17 17:55:31 2005 +1000"
      },
      "committer": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Sun Oct 30 11:19:43 2005 +1100"
      },
      "message": "[PATCH] Use sg_set_buf/sg_init_one where applicable\n\nThis patch uses sg_set_buf/sg_init_one in some places where it was\nduplicated.\n\nSigned-off-by: David Hardeman \u003cdavid@2gen.com\u003e\nCc: James Bottomley \u003cJames.Bottomley@steeleye.com\u003e\nCc: Greg KH \u003cgreg@kroah.com\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nCc: Jeff Garzik \u003cjgarzik@pobox.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\n"
    },
    {
      "commit": "e5ed639913eea3e4783a550291775ab78dd84966",
      "tree": "e6e915aa686d2a7125181fc83a847e1955a8ba46",
      "parents": [
        "a5e7c210fefd2454c757a3542e41063407ca7108"
      ],
      "author": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Mon Oct 03 14:35:55 2005 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Oct 03 14:35:55 2005 -0700"
      },
      "message": "[IPV4]: Replace __in_dev_get with __in_dev_get_rcu/rtnl\n\nThe following patch renames __in_dev_get() to __in_dev_get_rtnl() and\nintroduces __in_dev_get_rcu() to cover the second case.\n\n1) RCU with refcnt should use in_dev_get().\n2) RCU without refcnt should use __in_dev_get_rcu().\n3) All others must hold RTNL and use __in_dev_get_rtnl().\n\nThere is one exception in net/ipv4/route.c which is in fact a pre-existing\nrace condition.  I\u0027ve marked it as such so that we remember to fix it.\n\nThis patch is based on suggestions and prior work by Suzanne Wood and\nPaul McKenney.\n\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "c62dba9011b93fd88fde929848582b2a98309878",
      "tree": "66273f4c7f4fa1867d777904a88cb9e3a7bd27e1",
      "parents": [
        "acd042bb2de50d4e6fb969281a00cc8b8b71e46d"
      ],
      "author": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Mon Sep 26 15:10:16 2005 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Sep 26 15:10:16 2005 -0700"
      },
      "message": "[IPV6]: Fix [Bug 5306] Oops on IPv6 route lookup\n\n\u003e Steps to reproduce:\n\u003e 1. Boot Linux, do NOT setup any IPv6 routes\n\u003e 2. ip route get 2001::1 (or any unroutable address)\n\nWell caught.  We never set rt6i_idev on ip6_null_entry.\nThis patch should make the problem go away.\n\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nAcked-by: YOSHIFUJI Hideaki \u003cyoshfuji@linux-ipv6.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "8d06afab73a75f40ae2864e6c296356bab1ab473",
      "tree": "1d9c8c24a1024a12a4e8df841fba5809fa914356",
      "parents": [
        "7c352bdf048811b8128019ffc1e886161e09c11c"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Sep 09 13:10:40 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Sep 09 14:03:48 2005 -0700"
      },
      "message": "[PATCH] timer initialization cleanup: DEFINE_TIMER\n\nClean up timer initialization by introducing DEFINE_TIMER a\u0027la\nDEFINE_SPINLOCK.  Build and boot-tested on x86.  A similar patch has been\nbeen in the -RT tree for some time.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "573dbd95964b01a942aa0c68e92b06f2c9536964",
      "tree": "4ada5dff2a15e1ad1edee7294d6f0d3c260987d1",
      "parents": [
        "5170dbebbb2e9159cdf6bbf35e5d79cd7009799a"
      ],
      "author": {
        "name": "Jesper Juhl",
        "email": "jesper.juhl@gmail.com",
        "time": "Thu Sep 01 17:44:29 2005 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Sep 01 17:44:29 2005 -0700"
      },
      "message": "[CRYPTO]: crypto_free_tfm() callers no longer need to check for NULL\n\nSince the patch to add a NULL short-circuit to crypto_free_tfm() went in,\nthere\u0027s no longer any need for callers of that function to check for NULL.\nThis patch removes the redundant NULL checks and also a few similar checks\nfor NULL before calls to kfree() that I ran into while doing the\ncrypto_free_tfm bits.\n\nI\u0027ve succesfuly compile tested this patch, and a kernel with the patch \napplied boots and runs just fine.\n\nWhen I posted the patch to LKML (and other lists/people on Cc) it drew the\nfollowing comments :\n\n J. Bruce Fields commented\n  \"I\u0027ve no problem with the auth_gss or nfsv4 bits.--b.\"\n\n Sridhar Samudrala said\n  \"sctp change looks fine.\"\n\n Herbert Xu signed off on the patch.\n\nSo, I guess this is ready to be dropped into -mm and eventually mainline.\n\nSigned-off-by: Jesper Juhl \u003cjesper.juhl@gmail.com\u003e\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "20380731bc2897f2952ae055420972ded4cd786e",
      "tree": "abd31e5ebfadcf4f9024634eec8b11855029e512",
      "parents": [
        "9deff7f2365958c5c5aa8cb5a0dd651c4dd83f8f"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@mandriva.com",
        "time": "Tue Aug 16 02:18:02 2005 -0300"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Mon Aug 29 16:01:32 2005 -0700"
      },
      "message": "[NET]: Fix sparse warnings\n\nOf this type, mostly:\n\nCHECK   net/ipv6/netfilter.c\nnet/ipv6/netfilter.c:96:12: warning: symbol \u0027ipv6_netfilter_init\u0027 was not declared. Should it be static?\nnet/ipv6/netfilter.c:101:6: warning: symbol \u0027ipv6_netfilter_fini\u0027 was not declared. Should it be static?\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@mandriva.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "ac6d439d2097b72ea0cbc2322ce1263a38bc1fd0",
      "tree": "19e638a226993dddede5a2da577e2572f7555a95",
      "parents": [
        "d629b836d151d43332492651dd841d32e57ebe3b"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Sun Aug 14 19:29:52 2005 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Mon Aug 29 16:00:54 2005 -0700"
      },
      "message": "[NETLINK]: Convert netlink users to use group numbers instead of bitmasks\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "463c84b97f24010a67cd871746d6a7e4c925a5f9",
      "tree": "48df67ede4ebb5d12b3c0ae55d72531574bd51a6",
      "parents": [
        "87d11ceb9deb7a3f13fdee6e89d9bb6be7d27a71"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@ghostprotocols.net",
        "time": "Tue Aug 09 20:10:42 2005 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Mon Aug 29 15:43:19 2005 -0700"
      },
      "message": "[NET]: Introduce inet_connection_sock\n\nThis creates struct inet_connection_sock, moving members out of struct\ntcp_sock that are shareable with other INET connection oriented\nprotocols, such as DCCP, that in my private tree already uses most of\nthese members.\n\nThe functions that operate on these members were renamed, using a\ninet_csk_ prefix while not being moved yet to a new file, so as to\nease the review of these changes.\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@ghostprotocols.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "8feaf0c0a5488b3d898a9c207eb6678f44ba3f26",
      "tree": "ddd004afe2f7c8295f6fdb94d34f78a42b5961cb",
      "parents": [
        "33b62231908c58ae04185e4f1063d1e35a7c8576"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@ghostprotocols.net",
        "time": "Tue Aug 09 20:09:30 2005 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Mon Aug 29 15:42:13 2005 -0700"
      },
      "message": "[INET]: Generalise tcp_tw_bucket, aka TIME_WAIT sockets\n\nThis paves the way to generalise the rest of the sock ID lookup\nroutines and saves some bytes in TCPv4 TIME_WAIT sockets on distro\nkernels (where IPv6 is always built as a module):\n\n[root@qemu ~]# grep tw_sock /proc/slabinfo\ntw_sock_TCPv6  0  0  128  31  1\ntw_sock_TCP    0  0   96  41  1\n[root@qemu ~]#\n\nNow if a protocol wants to use the TIME_WAIT generic infrastructure it\nonly has to set the sk_prot-\u003etwsk_obj_size field with the size of its\ninet_timewait_sock derived sock and proto_register will create\nsk_prot-\u003etwsk_slab, for now its only for INET sockets, but we can\nintroduce timewait_sock later if some non INET transport protocolo\nwants to use this stuff.\n\nNext changesets will take advantage of this new infrastructure to\ngeneralise even more TCP code.\n\n[acme@toy net-2.6.14]$ grep built-in /tmp/before.size /tmp/after.size\n/tmp/before.size: 188646   11764    5068  205478   322a6 net/ipv4/built-in.o\n/tmp/after.size:  188144   11764    5068  204976   320b0 net/ipv4/built-in.o\n[acme@toy net-2.6.14]$\n\nTested with both IPv4 \u0026 IPv6 (::1 (localhost) \u0026 ::ffff:172.20.0.1\n(qemu host)).\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@ghostprotocols.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "ae9cda5d65f3d8a495241cbdcc2d56f721c83cc3",
      "tree": "a2dad0af022411e53724bd965c535287975a05bc",
      "parents": [
        "8a47077a0b5aa2649751c46e7a27884e6686ccbf"
      ],
      "author": {
        "name": "YOSHIFUJI Hideaki",
        "email": "yoshfuji@linux-ipv6.org",
        "time": "Tue Jun 28 13:00:30 2005 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jun 28 13:00:30 2005 -0700"
      },
      "message": "[IPV6]: Don\u0027t dump temporary addresses twice\n\nEach IPv6 Temporary Address (w/ CONFIG_IPV6_PRIVACY) is dumped twice\nto netlink.\n\nBecause temporary addresses are listed in idev-\u003eaddr_list,\nthere\u0027s no need to dump idev-\u003etempaddr separately.\n\nSigned-off-by: YOSHIFUJI Hideaki \u003cyoshfuji@linux-ipv6.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n\n"
    },
    {
      "commit": "8a47077a0b5aa2649751c46e7a27884e6686ccbf",
      "tree": "60e7c40a375057a31b5340226cd446ffa199413c",
      "parents": [
        "9ef1d4c7c7aca1cd436612b6ca785b726ffb8ed8"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Tue Jun 28 12:56:45 2005 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jun 28 12:56:45 2005 -0700"
      },
      "message": "[NETLINK]: Missing padding fields in dumped structures\n\nPlug holes with padding fields and initialized them to zero.\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "9ef1d4c7c7aca1cd436612b6ca785b726ffb8ed8",
      "tree": "a2465b3bf0f4c3bdd1f759d8a90cf8f8db06900a",
      "parents": [
        "b3563c4fbff906991a1b4ef4609f99cca2a0de6a"
      ],
      "author": {
        "name": "Patrick McHardy",
        "email": "kaber@trash.net",
        "time": "Tue Jun 28 12:55:30 2005 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jun 28 12:55:30 2005 -0700"
      },
      "message": "[NETLINK]: Missing initializations in dumped data\n\nMostly missing initialization of padding fields of 1 or 2 bytes length,\ntwo instances of uninitialized nlmsgerr-\u003emsg of 16 bytes length.\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "543537bd922692bc978e2e356fcd8bfc9c2ee7d5",
      "tree": "0089e3907e7d6c17c01cffc6ea4a8962ed053079",
      "parents": [
        "991114c6fa6a21d1fa4d544abe78592352860c82"
      ],
      "author": {
        "name": "Paulo Marques",
        "email": "pmarques@grupopie.com",
        "time": "Thu Jun 23 00:09:02 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu Jun 23 09:45:18 2005 -0700"
      },
      "message": "[PATCH] create a kstrdup library function\n\nThis patch creates a new kstrdup library function and changes the \"local\"\nimplementations in several places to use this function.\n\nMost of the changes come from the sound and net subsystems.  The sound part\nhad already been acknowledged by Takashi Iwai and the net part by David S.\nMiller.\n\nI left UML alone for now because I would need more time to read the code\ncarefully before making changes there.\n\nSigned-off-by: Paulo Marques \u003cpmarques@grupopie.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "0d51aa80a9b1db43920c0770c3bb842dd823c005",
      "tree": "999b0c5afbbb1f32af07eb2e1cb9e2692f1aa791",
      "parents": [
        "19baf839ff4a8daa1f2a7400897094fc18e4f5e9"
      ],
      "author": {
        "name": "Jamal Hadi Salim",
        "email": "hadi@cyberus.ca",
        "time": "Tue Jun 21 13:51:04 2005 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jun 21 13:51:04 2005 -0700"
      },
      "message": "[IPV6]: V6 route events reported with wrong netlink PID and seq number\n\nEssentially netlink at the moment always reports a pid and sequence of 0\nalways for v6 route activities. \nTo understand the repurcassions of this look at:\nhttp://lists.quagga.net/pipermail/quagga-dev/2005-June/003507.html\n\nWhile fixing this, i took the liberty to resolve the outstanding issue\nof IPV6 routes inserted via ioctls to have the correct pids as well.\n\nThis patch tries to behave as close as possible to the v4 routes i.e\nmaintains whatever PID the socket issuing the command owns as opposed to\nthe process. That made the patch a little bulky.\n\nI have tested against both netlink derived utility to add/del routes as\nwell as ioctl derived one. The Quagga folks have tested against quagga.\nThis fixes the problem and so far hasnt been detected to introduce any\nnew issues.\n\nSigned-off-by: Jamal Hadi Salim \u003chadi@cyberus.ca\u003e\nAcked-by: YOSHIFUJI Hideaki \u003cyoshfuji@linux-ipv6.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "9ed19f339e12e731986de84134ac293cd15910a7",
      "tree": "6a39cb14e7b51dcc3d1f31b0cf30801f27da9618",
      "parents": [
        "e431b8c004af6be03783dddea31b6e514118051d"
      ],
      "author": {
        "name": "Jamal Hadi Salim",
        "email": "hadi@cyberus.ca",
        "time": "Sat Jun 18 22:55:51 2005 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Jun 18 22:55:51 2005 -0700"
      },
      "message": "[NETLINK]: Set correct pid for ioctl originating netlink events\n\nThis patch ensures that netlink events created as a result of programns\nusing ioctls (such as ifconfig, route etc) contains the correct PID of\nthose events.\n \nSigned-off-by: Jamal Hadi Salim \u003chadi@cyberus.ca\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "e431b8c004af6be03783dddea31b6e514118051d",
      "tree": "8868ed04de7026ddad6201a5c04d38c12e6a3509",
      "parents": [
        "58b82150da90681a4179db1bc94d412938e81b31"
      ],
      "author": {
        "name": "Jamal Hadi Salim",
        "email": "hadi@cyberus.ca",
        "time": "Sat Jun 18 22:55:31 2005 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Jun 18 22:55:31 2005 -0700"
      },
      "message": "[NETLINK]: Explicit typing\n\nThis patch converts \"unsigned flags\" to use more explict types like u16\ninstead and incrementally introduces NLMSG_NEW().\n \nSigned-off-by: Jamal Hadi Salim \u003chadi@cyberus.ca\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b6544c0b4cf2bd96195f3cdb7cebfb35090fc557",
      "tree": "717f69a0c204b12eeedb8035fb66c8e9bb2d5a09",
      "parents": [
        "1797754ea7ee5e0d859b0a32506ff999f8d5fb71"
      ],
      "author": {
        "name": "Jamal Hadi Salim",
        "email": "hadi@cyberus.ca",
        "time": "Sat Jun 18 22:54:12 2005 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Jun 18 22:54:12 2005 -0700"
      },
      "message": "[NETLINK]: Correctly set NLM_F_MULTI without checking the pid\n\nThis patch rectifies some rtnetlink message builders that derive the\nflags from the pid. It is now explicit like the other cases\nwhich get it right. Also fixes half a dozen dumpers which did not\nset NLM_F_MULTI at all.\n\nSigned-off-by: Jamal Hadi Salim \u003chadi@cyberus.ca\u003e\nSigned-off-by: Thomas Graf \u003ctgraf@suug.ch\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "77bd91967a97e5b94ae36113efe1d9e4f68a716e",
      "tree": "269b466f7b8d6d3821ae6fedd8bf802c865b324b",
      "parents": [
        "84427d533076a08137779b3182a71c37bf000b27"
      ],
      "author": {
        "name": "Rémi Denis-Courmont",
        "email": "rdenis@simphalempin.com",
        "time": "Mon Jun 13 15:01:34 2005 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jun 13 15:01:34 2005 -0700"
      },
      "message": "[IPv6] Don\u0027t generate temporary for TUN devices\n\nUserland layer-2 tunneling devices allocated through the TUNTAP driver \n(drivers/net/tun.c) have a type of ARPHRD_NONE, and have no link-layer \naddress. The kernel complains at regular interval when IPv6 Privacy \nextension are enabled because it can\u0027t find an hardware address :\n\nDec 29 11:02:04 auguste kernel: __ipv6_regen_rndid(idev\u003dcb3e0c00): \ncannot get EUI64 identifier; use random bytes.\n\nIPv6 Privacy extensions should probably be disabled on that sort of \ndevice. They won\u0027t work anyway. If userland wants a more usual \nEthernet-ish interface with usual IPv6 autoconfiguration, it will use a \nTAP device with an emulated link-layer  and a random hardware address \nrather than a TUN device.\n\nAs far as I could fine, TUN virtual device from TUNTAP is the very only \nsort of device using ARPHRD_NONE as kernel device type.\n\nSigned-off-by: Rémi Denis-Courmont \u003crdenis@simphalempin.com\u003e\nAcked-by: YOSHIFUJI Hideaki \u003cyoshfuji@linux-ipv6.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "db46edc6d3b66bf708a8f23a9aa89f63a49ebe33",
      "tree": "7b3d9568a5561b5344e98dc8d881481420b8e581",
      "parents": [
        "f90a0a74b864fdc46737614f03b8868f4f31e3bf"
      ],
      "author": {
        "name": "Thomas Graf",
        "email": "tgraf@suug.ch",
        "time": "Tue May 03 14:29:39 2005 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue May 03 14:29:39 2005 -0700"
      },
      "message": "[RTNETLINK] Cleanup rtnetlink_link tables\n\nConverts remaining rtnetlink_link tables to use c99 designated\ninitializers to make greping a little bit easier.\n\nSigned-off-by: Thomas Graf \u003ctgraf@suug.ch\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "fd92833a52b972aafacced959f4a3f7541936a9b",
      "tree": "78d8e11eca4d84b91f5be4a28ad81ba523f9dc65",
      "parents": [
        "c4d541106bc5d0a2134aaf9e8735eee3c70b0db2"
      ],
      "author": {
        "name": "YOSHIFUJI Hideaki",
        "email": "yoshfuji@linux-ipv6.org",
        "time": "Tue Apr 19 22:27:09 2005 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Apr 19 22:27:09 2005 -0700"
      },
      "message": "[IPV6]: Fix a branch prediction\n\nFrom: Tushar Gohad \u003ctgohad@mvista.com\u003e\n\nSigned-off-by: Hideaki YOSHIFUJI \u003cyoshfuji@linux-ipv6.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
      "tree": "0bba044c4ce775e45a88a51686b5d9f90697ea9d",
      "parents": [],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sat Apr 16 15:20:36 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sat Apr 16 15:20:36 2005 -0700"
      },
      "message": "Linux-2.6.12-rc2\n\nInitial git repository build. I\u0027m not bothering with the full history,\neven though we have it. We can create a separate \"historical\" git\narchive of that later if we want to, and in the meantime it\u0027s about\n3.2GB when imported into git - space that would just make the early\ngit days unnecessarily complicated, when we don\u0027t have a lot of good\ninfrastructure for it.\n\nLet it rip!\n"
    }
  ]
}
