<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>120448</bug_id>
          
          <creation_ts>2013-08-28 17:40:51 -0700</creation_ts>
          <short_desc>[Windows] Video inside a web page always falls back to non-hardware accelerated</short_desc>
          <delta_ts>2013-08-30 15:50:42 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Media</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Windows 7</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Major</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Brent Fulgham">bfulgham</reporter>
          <assigned_to name="Brent Fulgham">bfulgham</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>glenn</cc>
    
    <cc>jer.noble</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>922275</commentid>
    <comment_count>0</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2013-08-28 17:40:51 -0700</bug_when>
    <thetext>If you render a web page that embeds a video element, WebKit is turning off compositing mode forcing the system to render through the non-hardware accelerated path.

This is happening because RenderLayerCompositor::computeCompositingRequirements initially decides to turn compositing off (since the media element is usually represented as a static image before playing).

Once the user interacts with the media element (to scrub video or play the movie), RenderLayerCompositor::computeCompositingRequirements recognizes that it needs to begin compositing and switches to the correct mode.  However, the media player element has already been constructed in &quot;non-hardware accelerated mode&quot;, and continues its lifetime without using hardware acceleration.

We need to do one of the following:
1. When the render tree switches to compositing mode, destroy/recreate the player
-or-
2. Somehow attache the D3D device to the player after construction?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>922276</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2013-08-28 17:41:25 -0700</bug_when>
    <thetext>&lt;rdar://problem/14863525&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>922994</commentid>
    <comment_count>2</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2013-08-30 09:19:33 -0700</bug_when>
    <thetext>*** Bug 120447 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>922996</commentid>
    <comment_count>3</comment_count>
      <attachid>210119</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2013-08-30 09:21:26 -0700</bug_when>
    <thetext>Created attachment 210119
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>922998</commentid>
    <comment_count>4</comment_count>
      <attachid>210119</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2013-08-30 09:27:27 -0700</bug_when>
    <thetext>Comment on attachment 210119
Patch

Nice simple fix!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>923009</commentid>
    <comment_count>5</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2013-08-30 09:39:21 -0700</bug_when>
    <thetext>Unscientific numbers:

Before patch:
Video playback consumed ~5% CPU on test page.

After patch:
Video playback consumed ~1% CPU on test page.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>923014</commentid>
    <comment_count>6</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2013-08-30 09:42:55 -0700</bug_when>
    <thetext>Committed r154890: &lt;http://trac.webkit.org/changeset/154890&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>923068</commentid>
    <comment_count>7</comment_count>
      <attachid>210119</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2013-08-30 10:49:27 -0700</bug_when>
    <thetext>Comment on attachment 210119
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=210119&amp;action=review

&gt; Source/WebCore/platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:415
&gt; +        player()-&gt;frameView()-&gt;enterCompositingMode();

Layering violation :(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>923073</commentid>
    <comment_count>8</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2013-08-30 10:56:05 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; (From update of attachment 210119 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=210119&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:415
&gt; &gt; +        player()-&gt;frameView()-&gt;enterCompositingMode();
&gt; 
&gt; Layering violation :(

Jer and I were discussing this, too.

We could add a mediaPlayerClient method to handle this logic to avoid this happening.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>923122</commentid>
    <comment_count>9</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2013-08-30 11:59:34 -0700</bug_when>
    <thetext>This has triggered a regression.  The contents around the video are not being repainted properly after flipping into compositing mode.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>923123</commentid>
    <comment_count>10</comment_count>
      <attachid>210143</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2013-08-30 12:05:46 -0700</bug_when>
    <thetext>Created attachment 210143
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>923161</commentid>
    <comment_count>11</comment_count>
      <attachid>210155</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2013-08-30 13:24:25 -0700</bug_when>
    <thetext>Created attachment 210155
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>923163</commentid>
    <comment_count>12</comment_count>
      <attachid>210155</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2013-08-30 13:29:12 -0700</bug_when>
    <thetext>Comment on attachment 210155
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=210155&amp;action=review

&gt; Source/WebCore/rendering/RenderLayerCompositor.cpp:2076
&gt; +        return video-&gt;requiresImmediateCompositing() || (video-&gt;shouldDisplayVideo() &amp;&amp; canAccelerateVideoRendering(video));

Parens would make this clearer: 

return (video-&gt;requiresImmediateCompositing() || (video-&gt;shouldDisplayVideo()) &amp;&amp; canAccelerateVideoRendering(video));

&gt; Source/WebCore/rendering/RenderVideo.cpp:287
&gt; +    MediaPlayer* p = mediaElement()-&gt;player();
&gt; +    if (p)

This can be done on a single line.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>923175</commentid>
    <comment_count>13</comment_count>
      <attachid>210155</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2013-08-30 14:00:18 -0700</bug_when>
    <thetext>Comment on attachment 210155
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=210155&amp;action=review

Is this testable?

&gt;&gt; Source/WebCore/rendering/RenderLayerCompositor.cpp:2076
&gt;&gt; +        return video-&gt;requiresImmediateCompositing() || (video-&gt;shouldDisplayVideo() &amp;&amp; canAccelerateVideoRendering(video));
&gt; 
&gt; Parens would make this clearer: 
&gt; 
&gt; return (video-&gt;requiresImmediateCompositing() || (video-&gt;shouldDisplayVideo()) &amp;&amp; canAccelerateVideoRendering(video));

WebKit style is to not add the outer parens.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>923203</commentid>
    <comment_count>14</comment_count>
      <attachid>210165</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2013-08-30 14:59:31 -0700</bug_when>
    <thetext>Created attachment 210165
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>923217</commentid>
    <comment_count>15</comment_count>
      <attachid>210165</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2013-08-30 15:33:49 -0700</bug_when>
    <thetext>Comment on attachment 210165
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=210165&amp;action=review

&gt; Source/WebCore/platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.h:88
&gt; +    virtual bool requiresImmediateCompositing() const { return true; }

I’d like you to use OVERRIDE.

I’d like to see a comment explaining why this player requires this; the comment in the change log is good, but I think it should be in the code too. To have a good place for the comment, I suggest not inlining this, since virtual calls won’t be inlined anyway.

&gt; Source/WebCore/rendering/RenderVideo.cpp:287
&gt; +    MediaPlayer* p = mediaElement()-&gt;player();
&gt; +    return p ? p-&gt;requiresImmediateCompositing() : false;

I would write it like this:

    MediaPlayer* player = mediaElement()-&gt;player();
    return player &amp;&amp; player-&gt;requiresImmediateCompositing();</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>923220</commentid>
    <comment_count>16</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2013-08-30 15:41:52 -0700</bug_when>
    <thetext>Did you see my comments? Looks like you landed this as-is and decided not to do the things I mentioned in the comments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>923221</commentid>
    <comment_count>17</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2013-08-30 15:44:17 -0700</bug_when>
    <thetext>(In reply to comment #16)
&gt; Did you see my comments? Looks like you landed this as-is and decided not to do the things I mentioned in the comments.

I&apos;m making the changes now.  I had set &quot;webkit-patch land&quot; to go after simon reviewed it, and didn&apos;t see your review until I had hit &lt;enter&gt;.  Whoops!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>923224</commentid>
    <comment_count>18</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2013-08-30 15:50:42 -0700</bug_when>
    <thetext>Landed in two steps:
http://trac.webkit.org/changeset/154914
http://trac.webkit.org/changeset/154915</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>210119</attachid>
            <date>2013-08-30 09:21:26 -0700</date>
            <delta_ts>2013-08-30 12:05:43 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-120448-20130830092136.patch</filename>
            <type>text/plain</type>
            <size>1837</size>
            <attacher name="Brent Fulgham">bfulgham</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE1NDg4NykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBACisyMDEzLTA4LTMwICBCcmVudCBG
dWxnaGFtICA8YmZ1bGdoYW1AYXBwbGUuY29tPgorCisgICAgICAgIFtXaW5kb3dzXSBWaWRlbyBp
bnNpZGUgcGFnZSBhbHdheXMgdXNlcyBub24taGFyZHdhcmUgYWNjZWxlcmF0ZWQgcGxheWJhY2sK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyMDQ0OAor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL2NmL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlv
bkNGLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlv
bkNGOjpjcmVhdGVBVlBsYXllcik6IENoZWNrIGZvcgorICAgICAgICBEM0QgZGV2aWNlLiBJZiBp
dCBkb2Vzbid0IGV4aXN0LCBzd2l0Y2ggdG8gY29tcG9zaXRpbmcgbW9kZSBhbmQgdHJ5IGFnYWlu
LgorCiAyMDEzLTA4LTMwICBBbmRyZWFzIEtsaW5nICA8YWtsaW5nQGFwcGxlLmNvbT4KIAogICAg
ICAgICBTdHlsZVJlc29sdmVyICYgZnJpZW5kcyBzaG91bGQgdXNlIERvY3VtZW50Ji4KSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9jZi9NZWRpYVBs
YXllclByaXZhdGVBVkZvdW5kYXRpb25DRi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL2NmL01lZGlhUGxheWVyUHJpdmF0ZUFW
Rm91bmRhdGlvbkNGLmNwcAkocmV2aXNpb24gMTU0ODg1KQorKysgU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL2NmL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRh
dGlvbkNGLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDA5LDcgKzQwOSwxNSBAQCB2b2lkIE1lZGlh
UGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGOjpjCiAgICAgQVNTRVJUKG1fYXZmV3JhcHBlcik7
CiAgICAgCiAgICAgc2V0RGVsYXlDYWxsYmFja3ModHJ1ZSk7Ci0gICAgbV9hdmZXcmFwcGVyLT5j
cmVhdGVQbGF5ZXIocmVpbnRlcnByZXRfY2FzdDxJRGlyZWN0M0REZXZpY2U5Kj4ocGxheWVyKCkt
PmdyYXBoaWNzRGV2aWNlQWRhcHRlcigpKSk7CisKKyAgICBJRGlyZWN0M0REZXZpY2U5KiBkZXZp
Y2UgPSByZWludGVycHJldF9jYXN0PElEaXJlY3QzRERldmljZTkqPihwbGF5ZXIoKS0+Z3JhcGhp
Y3NEZXZpY2VBZGFwdGVyKCkpOworICAgIGlmICghZGV2aWNlKSB7CisgICAgICAgIHBsYXllcigp
LT5mcmFtZVZpZXcoKS0+ZW50ZXJDb21wb3NpdGluZ01vZGUoKTsKKyAgICAgICAgcGxheWVyKCkt
Pm1lZGlhUGxheWVyQ2xpZW50KCktPm1lZGlhUGxheWVyUmVuZGVyaW5nTW9kZUNoYW5nZWQocGxh
eWVyKCkpOworICAgICAgICBkZXZpY2UgPSByZWludGVycHJldF9jYXN0PElEaXJlY3QzRERldmlj
ZTkqPihwbGF5ZXIoKS0+Z3JhcGhpY3NEZXZpY2VBZGFwdGVyKCkpOworICAgIH0KKworICAgIG1f
YXZmV3JhcHBlci0+Y3JlYXRlUGxheWVyKGRldmljZSk7CiAgICAgc2V0RGVsYXlDYWxsYmFja3Mo
ZmFsc2UpOwogfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>210143</attachid>
            <date>2013-08-30 12:05:46 -0700</date>
            <delta_ts>2013-08-30 13:24:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-120448-20130830120556.patch</filename>
            <type>text/plain</type>
            <size>2748</size>
            <attacher name="Brent Fulgham">bfulgham</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE1NDkwNCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE2IEBACisyMDEzLTA4LTMwICBCcmVudCBG
dWxnaGFtICA8YmZ1bGdoYW1AYXBwbGUuY29tPgorCisgICAgICAgIFtXaW5kb3dzXSBDb3JyZWN0
IHBhaW50aW5nIGVycm9yIGludHJvZHVjZWQgYnkgaHcgYWNjZWxlcmF0aW9uIG9uIFdpbmRvd3Mg
Zml4LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTIw
NDQ4LgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL2NmL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91
bmRhdGlvbkNGLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91
bmRhdGlvbkNGOjpjcmVhdGVBVlBsYXllcik6IFJldmVydCB0byBvcmlnaW5hbCBiZWhhdmlvci4K
KyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlckxheWVyQ29tcG9zaXRvcjo6cmVxdWlyZXNDb21wb3NpdGluZ0ZvclZp
ZGVvKTogRm9yY2UgY29tcG9zaXRpbmcgbW9kZQorICAgICAgICBvbiB3aGVuIHJlbmRlcmluZyB2
aWRlbyBvbiBXaW5kb3dzLgorCiAyMDEzLTA4LTMwICBIYW5zIE11bGxlciAgPGhtdWxsZXJAYWRv
YmUuY29tPgogCiAgICAgICAgIFtDU1MgU2hhcGVzXSBSZWRlZmluZSB0aGUgU2hhcGVJbnRlcnZh
bHMgY2xhc3MgYXMgYSB0ZW1wbGF0ZQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL2NmL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vY2YvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0YuY3BwCShyZXZpc2lvbiAx
NTQ4OTApCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
Y2YvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0YuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC00MDksMTUgKzQwOSw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0Y6
OmMKICAgICBBU1NFUlQobV9hdmZXcmFwcGVyKTsKICAgICAKICAgICBzZXREZWxheUNhbGxiYWNr
cyh0cnVlKTsKLQotICAgIElEaXJlY3QzRERldmljZTkqIGRldmljZSA9IHJlaW50ZXJwcmV0X2Nh
c3Q8SURpcmVjdDNERGV2aWNlOSo+KHBsYXllcigpLT5ncmFwaGljc0RldmljZUFkYXB0ZXIoKSk7
Ci0gICAgaWYgKCFkZXZpY2UpIHsKLSAgICAgICAgcGxheWVyKCktPmZyYW1lVmlldygpLT5lbnRl
ckNvbXBvc2l0aW5nTW9kZSgpOwotICAgICAgICBwbGF5ZXIoKS0+bWVkaWFQbGF5ZXJDbGllbnQo
KS0+bWVkaWFQbGF5ZXJSZW5kZXJpbmdNb2RlQ2hhbmdlZChwbGF5ZXIoKSk7Ci0gICAgICAgIGRl
dmljZSA9IHJlaW50ZXJwcmV0X2Nhc3Q8SURpcmVjdDNERGV2aWNlOSo+KHBsYXllcigpLT5ncmFw
aGljc0RldmljZUFkYXB0ZXIoKSk7Ci0gICAgfQotCi0gICAgbV9hdmZXcmFwcGVyLT5jcmVhdGVQ
bGF5ZXIoZGV2aWNlKTsKKyAgICBtX2F2ZldyYXBwZXItPmNyZWF0ZVBsYXllcihyZWludGVycHJl
dF9jYXN0PElEaXJlY3QzRERldmljZTkqPihwbGF5ZXIoKS0+Z3JhcGhpY3NEZXZpY2VBZGFwdGVy
KCkpKTsKICAgICBzZXREZWxheUNhbGxiYWNrcyhmYWxzZSk7CiB9CiAKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCShyZXZp
c2lvbiAxNTQ4ODkpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21w
b3NpdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjA3Myw3ICsyMDczLDEzIEBAIGJvb2wgUmVu
ZGVyTGF5ZXJDb21wb3NpdG9yOjpyZXF1aXJlc0NvbXAKICNpZiBFTkFCTEUoVklERU8pCiAgICAg
aWYgKHJlbmRlcmVyLT5pc1ZpZGVvKCkpIHsKICAgICAgICAgUmVuZGVyVmlkZW8qIHZpZGVvID0g
dG9SZW5kZXJWaWRlbyhyZW5kZXJlcik7Ci0gICAgICAgIHJldHVybiB2aWRlby0+c2hvdWxkRGlz
cGxheVZpZGVvKCkgJiYgY2FuQWNjZWxlcmF0ZVZpZGVvUmVuZGVyaW5nKHZpZGVvKTsKKyAgICAg
ICAgcmV0dXJuCisjaWYgUExBVEZPUk0oV0lOKQorICAgICAgICAgICAgdHJ1ZQorI2Vsc2UKKyAg
ICAgICAgICAgIHZpZGVvLT5zaG91bGREaXNwbGF5VmlkZW8oKQorI2VuZGlmCisgICAgICAgICAg
ICAmJiBjYW5BY2NlbGVyYXRlVmlkZW9SZW5kZXJpbmcodmlkZW8pOwogICAgIH0KICNpZiBFTkFC
TEUoUExVR0lOX1BST1hZX0ZPUl9WSURFTykKICAgICBlbHNlIGlmIChyZW5kZXJlci0+aXNSZW5k
ZXJQYXJ0KCkpIHsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>210155</attachid>
            <date>2013-08-30 13:24:25 -0700</date>
            <delta_ts>2013-08-30 14:59:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-120448-20130830132435.patch</filename>
            <type>text/plain</type>
            <size>7273</size>
            <attacher name="Brent Fulgham">bfulgham</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE1NDkwOCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM0IEBACisyMDEzLTA4LTMwICBCcmVudCBG
dWxnaGFtICA8YmZ1bGdoYW1AYXBwbGUuY29tPgorCisgICAgICAgIFtXaW5kb3dzXSBWaWRlIGVs
ZW1lbnQgaW4gcGFnZSBhbHdheXMgdXNlcyBub24taHcgYWNjZWxlcmF0ZWQgbW9kZS4KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyMDQ0OAorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2ggaXMg
dW5mb3J0dW5hdGVseSBsYXJnZXIgdGhhbiBteSBvcmlnaW5hbCBpZGVhLCBidXQgc2VlbXMgdG8g
bWFrZSB0aGUKKyAgICAgICAgbGF5b3V0IHN5c3RlbSBoYXBwaWVyLiBJbnN0ZWFkIG9mIHN3aXRj
aGluZyBpbnRvIGNvbXBvc2l0ZWQgbW9kZSB3aGVuIGJ1aWxkaW5nCisgICAgICAgIHRoZSBtZWRp
YSBwbGF5ZXIsIHdlIG5vdyBidWlsZCB0aGUgb3JpZ2luYWwgbGF5b3V0IHRyZWUgd2l0aCBjb21w
b3NpdGluZyBhY3RpdmUKKyAgICAgICAgaWYgdGhlIHVuZGVybHlpbmcgbWVkaWEgZWxlbWVudCBy
ZXF1aXJlcyBpdC4gVGhlIEFWRm91bmRhdGlvbkNGIHBsYXllciBuZWVkcyB0bworICAgICAgICBo
YXZlIHRoZSBjb21wb3NpdG9yIGF2YWlsYWJsZSBhdCBjb25zdHJ1Y3Rpb24gdGltZSBzbyBpdCBj
YW4gYXR0YWNoIHRvIHRoZQorICAgICAgICByZW5kZXJpbmcgZGV2aWNlLiBPdGhlcndpc2UgaXQg
ZmFsbHMgYmFjayB0byBDUFUtb25seSBtb2RlLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvTWVkaWFQbGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXI6OnJlcXVp
cmVzSW1tZWRpYXRlQ29tcG9zaXRpbmcpOiBBZGRlZAorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL01lZGlhUGxheWVyLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5
ZXJQcml2YXRlLmg6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVJbnRlcmZh
Y2U6OnJlcXVpcmVzSW1tZWRpYXRlQ29tcG9zaXRpbmcpOiBBZGRlZAorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9jZi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRp
b25DRi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRp
b25DRjo6Y3JlYXRlQVZQbGF5ZXIpOiBBZGRlZAorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9jZi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25DRi5oOgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0Y6OnJlcXVpcmVz
SW1tZWRpYXRlQ29tcG9zaXRpbmcpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllckNv
bXBvc2l0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpy
ZXF1aXJlc0NvbXBvc2l0aW5nRm9yVmlkZW8pOiBVc2VzIG5ldworICAgICAgICAncmVxdWlyZXNJ
bW1lZGlhdGVDb21wb3NpdGluZycgdG8gc2hvcnQtY2lyY3VpdCBjaGVjayBmb3Igd2hldGhlciBh
CisgICAgICAgIGNvbXBvc2l0b3IgaXMgcmVxdWlyZWQuCisgICAgICAgICogcmVuZGVyaW5nL1Jl
bmRlclZpZGVvLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclZpZGVvOjpyZXF1aXJlc0lt
bWVkaWF0ZUNvbXBvc2l0aW5nKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVmlkZW8uaDoK
KwogMjAxMy0wOC0zMCAgQnJlbmRhbiBMb25nICA8Yi5sb25nQGNhYmxlbGFicy5jb20+CiAKICAg
ICAgICAgW0dTdHJlYW1lcl0gc3VwcG9ydCBpbi1iYW5kIHRleHQgdHJhY2tzCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwCShyZXZp
c2lvbiAxNTQ4ODkpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBs
YXllci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU2Miw2ICs1NjIsMTEgQEAgYm9vbCBNZWRpYVBs
YXllcjo6c3VwcG9ydHNTY2FubmluZygpIGNvbgogICAgIHJldHVybiBtX3ByaXZhdGUtPnN1cHBv
cnRzU2Nhbm5pbmcoKTsKIH0KIAorYm9vbCBNZWRpYVBsYXllcjo6cmVxdWlyZXNJbW1lZGlhdGVD
b21wb3NpdGluZygpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcHJpdmF0ZS0+cmVxdWlyZXNJbW1l
ZGlhdGVDb21wb3NpdGluZygpOworfQorCiBJbnRTaXplIE1lZGlhUGxheWVyOjpuYXR1cmFsU2l6
ZSgpCiB7CiAgICAgcmV0dXJuIG1fcHJpdmF0ZS0+bmF0dXJhbFNpemUoKTsKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaAkocmV2aXNpb24g
MTU0ODg5KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIu
aAkod29ya2luZyBjb3B5KQpAQCAtMjYyLDYgKzI2Miw3IEBAIHB1YmxpYzoKICAgICBib29sIHN1
cHBvcnRzRnVsbHNjcmVlbigpIGNvbnN0OwogICAgIGJvb2wgc3VwcG9ydHNTYXZlKCkgY29uc3Q7
CiAgICAgYm9vbCBzdXBwb3J0c1NjYW5uaW5nKCkgY29uc3Q7CisgICAgYm9vbCByZXF1aXJlc0lt
bWVkaWF0ZUNvbXBvc2l0aW5nKCkgY29uc3Q7CiAgICAgUGxhdGZvcm1NZWRpYSBwbGF0Zm9ybU1l
ZGlhKCkgY29uc3Q7CiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIFBsYXRm
b3JtTGF5ZXIqIHBsYXRmb3JtTGF5ZXIoKSBjb25zdDsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyUHJpdmF0ZS5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyUHJpdmF0ZS5oCShyZXZpc2lv
biAxNTQ4ODkpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXll
clByaXZhdGUuaAkod29ya2luZyBjb3B5KQpAQCAtNjIsNiArNjIsNyBAQCBwdWJsaWM6CiAgICAg
dmlydHVhbCBib29sIHN1cHBvcnRzRnVsbHNjcmVlbigpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9
CiAgICAgdmlydHVhbCBib29sIHN1cHBvcnRzU2F2ZSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9
CiAgICAgdmlydHVhbCBib29sIHN1cHBvcnRzU2Nhbm5pbmcoKSBjb25zdCB7IHJldHVybiBmYWxz
ZTsgfQorICAgIHZpcnR1YWwgYm9vbCByZXF1aXJlc0ltbWVkaWF0ZUNvbXBvc2l0aW5nKCkgY29u
c3QgeyByZXR1cm4gZmFsc2U7IH0KIAogICAgIHZpcnR1YWwgSW50U2l6ZSBuYXR1cmFsU2l6ZSgp
IGNvbnN0ID0gMDsKIApJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL2NmL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vY2Yv
TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0YuY3BwCShyZXZpc2lvbiAxNTQ4OTApCisr
KyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vY2YvTWVkaWFQ
bGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0YuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00MDksMTUg
KzQwOSw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0Y6OmMKICAgICBB
U1NFUlQobV9hdmZXcmFwcGVyKTsKICAgICAKICAgICBzZXREZWxheUNhbGxiYWNrcyh0cnVlKTsK
LQotICAgIElEaXJlY3QzRERldmljZTkqIGRldmljZSA9IHJlaW50ZXJwcmV0X2Nhc3Q8SURpcmVj
dDNERGV2aWNlOSo+KHBsYXllcigpLT5ncmFwaGljc0RldmljZUFkYXB0ZXIoKSk7Ci0gICAgaWYg
KCFkZXZpY2UpIHsKLSAgICAgICAgcGxheWVyKCktPmZyYW1lVmlldygpLT5lbnRlckNvbXBvc2l0
aW5nTW9kZSgpOwotICAgICAgICBwbGF5ZXIoKS0+bWVkaWFQbGF5ZXJDbGllbnQoKS0+bWVkaWFQ
bGF5ZXJSZW5kZXJpbmdNb2RlQ2hhbmdlZChwbGF5ZXIoKSk7Ci0gICAgICAgIGRldmljZSA9IHJl
aW50ZXJwcmV0X2Nhc3Q8SURpcmVjdDNERGV2aWNlOSo+KHBsYXllcigpLT5ncmFwaGljc0Rldmlj
ZUFkYXB0ZXIoKSk7Ci0gICAgfQotCi0gICAgbV9hdmZXcmFwcGVyLT5jcmVhdGVQbGF5ZXIoZGV2
aWNlKTsKKyAgICBtX2F2ZldyYXBwZXItPmNyZWF0ZVBsYXllcihyZWludGVycHJldF9jYXN0PElE
aXJlY3QzRERldmljZTkqPihwbGF5ZXIoKS0+Z3JhcGhpY3NEZXZpY2VBZGFwdGVyKCkpKTsKICAg
ICBzZXREZWxheUNhbGxiYWNrcyhmYWxzZSk7CiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9jZi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5k
YXRpb25DRi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9jZi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25DRi5oCShyZXZp
c2lvbiAxNTQ4ODkpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vY2YvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0YuaAkod29ya2luZyBjb3B5
KQpAQCAtODUsNiArODUsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgZmxvYXQgcGxhdGZvcm1N
YXhUaW1lTG9hZGVkKCkgY29uc3Q7CiAgICAgdmlydHVhbCB2b2lkIGJlZ2luTG9hZGluZ01ldGFk
YXRhKCk7CiAgICAgdmlydHVhbCB2b2lkIHNpemVDaGFuZ2VkKCk7CisgICAgdmlydHVhbCBib29s
IHJlcXVpcmVzSW1tZWRpYXRlQ29tcG9zaXRpbmcoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiAK
ICAgICB2aXJ0dWFsIGJvb2wgaGFzQXZhaWxhYmxlVmlkZW9GcmFtZSgpIGNvbnN0OwogCkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9y
LmNwcAkocmV2aXNpb24gMTU0ODg5KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckxheWVyQ29tcG9zaXRvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIwNzMsNyArMjA3Myw3IEBA
IGJvb2wgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpyZXF1aXJlc0NvbXAKICNpZiBFTkFCTEUoVklE
RU8pCiAgICAgaWYgKHJlbmRlcmVyLT5pc1ZpZGVvKCkpIHsKICAgICAgICAgUmVuZGVyVmlkZW8q
IHZpZGVvID0gdG9SZW5kZXJWaWRlbyhyZW5kZXJlcik7Ci0gICAgICAgIHJldHVybiB2aWRlby0+
c2hvdWxkRGlzcGxheVZpZGVvKCkgJiYgY2FuQWNjZWxlcmF0ZVZpZGVvUmVuZGVyaW5nKHZpZGVv
KTsKKyAgICAgICAgcmV0dXJuIHZpZGVvLT5yZXF1aXJlc0ltbWVkaWF0ZUNvbXBvc2l0aW5nKCkg
fHwgKHZpZGVvLT5zaG91bGREaXNwbGF5VmlkZW8oKSAmJiBjYW5BY2NlbGVyYXRlVmlkZW9SZW5k
ZXJpbmcodmlkZW8pKTsKICAgICB9CiAjaWYgRU5BQkxFKFBMVUdJTl9QUk9YWV9GT1JfVklERU8p
CiAgICAgZWxzZSBpZiAocmVuZGVyZXItPmlzUmVuZGVyUGFydCgpKSB7CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlkZW8uY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWRlby5jcHAJKHJldmlzaW9uIDE1NDg4OSkKKysrIFNv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWRlby5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTI4MSw2ICsyODEsMTUgQEAgdm9pZCBSZW5kZXJWaWRlbzo6YWNjZWxlcmF0ZWRSZW5kZXJpbmdT
dAogfQogI2VuZGlmICAvLyBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAKK2Jvb2wgUmVu
ZGVyVmlkZW86OnJlcXVpcmVzSW1tZWRpYXRlQ29tcG9zaXRpbmcoKSBjb25zdAoreworICAgIE1l
ZGlhUGxheWVyKiBwID0gbWVkaWFFbGVtZW50KCktPnBsYXllcigpOworICAgIGlmIChwKQorICAg
ICAgICByZXR1cm4gcC0+cmVxdWlyZXNJbW1lZGlhdGVDb21wb3NpdGluZygpOworCisgICAgcmV0
dXJuIGZhbHNlOworfQorCiAjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQogc3RhdGljIGNvbnN0
IFJlbmRlckJsb2NrKiByZW5kZXJlclBsYWNlaG9sZGVyKGNvbnN0IFJlbmRlck9iamVjdCogcmVu
ZGVyZXIpCiB7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlkZW8uaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlkZW8uaAkocmV2
aXNpb24gMTU0ODg5KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZGVvLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTQ5LDYgKzQ5LDggQEAgcHVibGljOgogICAgIHZvaWQgYWNjZWxl
cmF0ZWRSZW5kZXJpbmdTdGF0ZUNoYW5nZWQoKTsKICNlbmRpZgogCisgICAgYm9vbCByZXF1aXJl
c0ltbWVkaWF0ZUNvbXBvc2l0aW5nKCkgY29uc3Q7CisKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxk
RGlzcGxheVZpZGVvKCkgY29uc3Q7CiAKIHByaXZhdGU6Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>210165</attachid>
            <date>2013-08-30 14:59:31 -0700</date>
            <delta_ts>2013-08-30 15:33:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-120448-20130830145940.patch</filename>
            <type>text/plain</type>
            <size>7276</size>
            <attacher name="Brent Fulgham">bfulgham</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE1NDkxMSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM0IEBACisyMDEzLTA4LTMwICBCcmVudCBG
dWxnaGFtICA8YmZ1bGdoYW1AYXBwbGUuY29tPgorCisgICAgICAgIFtXaW5kb3dzXSBWaWRlIGVs
ZW1lbnQgaW4gcGFnZSBhbHdheXMgdXNlcyBub24taHcgYWNjZWxlcmF0ZWQgbW9kZS4KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyMDQ0OAorCisgICAg
ICAgIFJldmlld2VkIGJ5IFNpbW9uIEZyYXNlci4KKworICAgICAgICBUaGlzIHBhdGNoIGlzIHVu
Zm9ydHVuYXRlbHkgbGFyZ2VyIHRoYW4gbXkgb3JpZ2luYWwgaWRlYSwgYnV0IHNlZW1zIHRvIG1h
a2UgdGhlCisgICAgICAgIGxheW91dCBzeXN0ZW0gaGFwcGllci4gSW5zdGVhZCBvZiBzd2l0Y2hp
bmcgaW50byBjb21wb3NpdGVkIG1vZGUgd2hlbiBidWlsZGluZworICAgICAgICB0aGUgbWVkaWEg
cGxheWVyLCB3ZSBub3cgYnVpbGQgdGhlIG9yaWdpbmFsIGxheW91dCB0cmVlIHdpdGggY29tcG9z
aXRpbmcgYWN0aXZlCisgICAgICAgIGlmIHRoZSB1bmRlcmx5aW5nIG1lZGlhIGVsZW1lbnQgcmVx
dWlyZXMgaXQuIFRoZSBBVkZvdW5kYXRpb25DRiBwbGF5ZXIgbmVlZHMgdG8KKyAgICAgICAgaGF2
ZSB0aGUgY29tcG9zaXRvciBhdmFpbGFibGUgYXQgY29uc3RydWN0aW9uIHRpbWUgc28gaXQgY2Fu
IGF0dGFjaCB0byB0aGUKKyAgICAgICAgcmVuZGVyaW5nIGRldmljZS4gT3RoZXJ3aXNlIGl0IGZh
bGxzIGJhY2sgdG8gQ1BVLW9ubHkgbW9kZS4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L01lZGlhUGxheWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyOjpyZXF1aXJl
c0ltbWVkaWF0ZUNvbXBvc2l0aW5nKTogQWRkZWQKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9NZWRpYVBsYXllci5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVy
UHJpdmF0ZS5oOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNl
OjpyZXF1aXJlc0ltbWVkaWF0ZUNvbXBvc2l0aW5nKTogQWRkZWQKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vY2YvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9u
Q0YuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9u
Q0Y6OmNyZWF0ZUFWUGxheWVyKTogQWRkZWQKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vY2YvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0YuaDoKKyAgICAg
ICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGOjpyZXF1aXJlc0lt
bWVkaWF0ZUNvbXBvc2l0aW5nKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21w
b3NpdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQ29tcG9zaXRvcjo6cmVx
dWlyZXNDb21wb3NpdGluZ0ZvclZpZGVvKTogVXNlcyBuZXcKKyAgICAgICAgJ3JlcXVpcmVzSW1t
ZWRpYXRlQ29tcG9zaXRpbmcnIHRvIHNob3J0LWNpcmN1aXQgY2hlY2sgZm9yIHdoZXRoZXIgYQor
ICAgICAgICBjb21wb3NpdG9yIGlzIHJlcXVpcmVkLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5k
ZXJWaWRlby5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJWaWRlbzo6cmVxdWlyZXNJbW1l
ZGlhdGVDb21wb3NpdGluZyk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclZpZGVvLmg6CisK
IDIwMTMtMDgtMzAgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KIAogICAg
ICAgICBXZWIgSW5zcGVjdG9yOiBCcmVha3BvaW50cyBzaG91bGQgaGF2ZSBBdXRvbWF0aWNhbGx5
IENvbnRpbnVlIE9wdGlvbgpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
TWVkaWFQbGF5ZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL01lZGlhUGxheWVyLmNwcAkocmV2aXNpb24gMTU0OTExKQorKysgU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01
NjIsNiArNTYyLDExIEBAIGJvb2wgTWVkaWFQbGF5ZXI6OnN1cHBvcnRzU2Nhbm5pbmcoKSBjb24K
ICAgICByZXR1cm4gbV9wcml2YXRlLT5zdXBwb3J0c1NjYW5uaW5nKCk7CiB9CiAKK2Jvb2wgTWVk
aWFQbGF5ZXI6OnJlcXVpcmVzSW1tZWRpYXRlQ29tcG9zaXRpbmcoKSBjb25zdAoreworICAgIHJl
dHVybiBtX3ByaXZhdGUtPnJlcXVpcmVzSW1tZWRpYXRlQ29tcG9zaXRpbmcoKTsKK30KKwogSW50
U2l6ZSBNZWRpYVBsYXllcjo6bmF0dXJhbFNpemUoKQogewogICAgIHJldHVybiBtX3ByaXZhdGUt
Pm5hdHVyYWxTaXplKCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9N
ZWRpYVBsYXllci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL01lZGlhUGxheWVyLmgJKHJldmlzaW9uIDE1NDkxMSkKKysrIFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTI2Miw2ICsy
NjIsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBzdXBwb3J0c0Z1bGxzY3JlZW4oKSBjb25zdDsKICAg
ICBib29sIHN1cHBvcnRzU2F2ZSgpIGNvbnN0OwogICAgIGJvb2wgc3VwcG9ydHNTY2FubmluZygp
IGNvbnN0OworICAgIGJvb2wgcmVxdWlyZXNJbW1lZGlhdGVDb21wb3NpdGluZygpIGNvbnN0Owog
ICAgIFBsYXRmb3JtTWVkaWEgcGxhdGZvcm1NZWRpYSgpIGNvbnN0OwogI2lmIFVTRShBQ0NFTEVS
QVRFRF9DT01QT1NJVElORykKICAgICBQbGF0Zm9ybUxheWVyKiBwbGF0Zm9ybUxheWVyKCkgY29u
c3Q7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllclBy
aXZhdGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9N
ZWRpYVBsYXllclByaXZhdGUuaAkocmV2aXNpb24gMTU0OTExKQorKysgU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRlLmgJKHdvcmtpbmcgY29weSkKQEAg
LTYyLDYgKzYyLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c0Z1bGxzY3Jl
ZW4oKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c1Nh
dmUoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c1Nj
YW5uaW5nKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIGJvb2wgcmVxdWly
ZXNJbW1lZGlhdGVDb21wb3NpdGluZygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAKICAgICB2
aXJ0dWFsIEludFNpemUgbmF0dXJhbFNpemUoKSBjb25zdCA9IDA7CiAKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9jZi9NZWRpYVBsYXllclByaXZh
dGVBVkZvdW5kYXRpb25DRi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL2NmL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlv
bkNGLmNwcAkocmV2aXNpb24gMTU0OTExKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL2NmL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtNDA5LDE1ICs0MDksNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJp
dmF0ZUFWRm91bmRhdGlvbkNGOjpjCiAgICAgQVNTRVJUKG1fYXZmV3JhcHBlcik7CiAgICAgCiAg
ICAgc2V0RGVsYXlDYWxsYmFja3ModHJ1ZSk7Ci0KLSAgICBJRGlyZWN0M0REZXZpY2U5KiBkZXZp
Y2UgPSByZWludGVycHJldF9jYXN0PElEaXJlY3QzRERldmljZTkqPihwbGF5ZXIoKS0+Z3JhcGhp
Y3NEZXZpY2VBZGFwdGVyKCkpOwotICAgIGlmICghZGV2aWNlKSB7Ci0gICAgICAgIHBsYXllcigp
LT5mcmFtZVZpZXcoKS0+ZW50ZXJDb21wb3NpdGluZ01vZGUoKTsKLSAgICAgICAgcGxheWVyKCkt
Pm1lZGlhUGxheWVyQ2xpZW50KCktPm1lZGlhUGxheWVyUmVuZGVyaW5nTW9kZUNoYW5nZWQocGxh
eWVyKCkpOwotICAgICAgICBkZXZpY2UgPSByZWludGVycHJldF9jYXN0PElEaXJlY3QzRERldmlj
ZTkqPihwbGF5ZXIoKS0+Z3JhcGhpY3NEZXZpY2VBZGFwdGVyKCkpOwotICAgIH0KLQotICAgIG1f
YXZmV3JhcHBlci0+Y3JlYXRlUGxheWVyKGRldmljZSk7CisgICAgbV9hdmZXcmFwcGVyLT5jcmVh
dGVQbGF5ZXIocmVpbnRlcnByZXRfY2FzdDxJRGlyZWN0M0REZXZpY2U5Kj4ocGxheWVyKCktPmdy
YXBoaWNzRGV2aWNlQWRhcHRlcigpKSk7CiAgICAgc2V0RGVsYXlDYWxsYmFja3MoZmFsc2UpOwog
fQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
Y2YvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0YuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vY2YvTWVkaWFQbGF5ZXJQ
cml2YXRlQVZGb3VuZGF0aW9uQ0YuaAkocmV2aXNpb24gMTU0OTExKQorKysgU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL2NmL01lZGlhUGxheWVyUHJpdmF0ZUFW
Rm91bmRhdGlvbkNGLmgJKHdvcmtpbmcgY29weSkKQEAgLTg1LDYgKzg1LDcgQEAgcHJpdmF0ZToK
ICAgICB2aXJ0dWFsIGZsb2F0IHBsYXRmb3JtTWF4VGltZUxvYWRlZCgpIGNvbnN0OwogICAgIHZp
cnR1YWwgdm9pZCBiZWdpbkxvYWRpbmdNZXRhZGF0YSgpOwogICAgIHZpcnR1YWwgdm9pZCBzaXpl
Q2hhbmdlZCgpOworICAgIHZpcnR1YWwgYm9vbCByZXF1aXJlc0ltbWVkaWF0ZUNvbXBvc2l0aW5n
KCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQogCiAgICAgdmlydHVhbCBib29sIGhhc0F2YWlsYWJs
ZVZpZGVvRnJhbWUoKSBjb25zdDsKIApJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckxheWVyQ29tcG9zaXRvci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAJKHJldmlzaW9uIDE1NDkxMSkKKysrIFNv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0yMDczLDcgKzIwNzMsNyBAQCBib29sIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6
cmVxdWlyZXNDb21wCiAjaWYgRU5BQkxFKFZJREVPKQogICAgIGlmIChyZW5kZXJlci0+aXNWaWRl
bygpKSB7CiAgICAgICAgIFJlbmRlclZpZGVvKiB2aWRlbyA9IHRvUmVuZGVyVmlkZW8ocmVuZGVy
ZXIpOwotICAgICAgICByZXR1cm4gdmlkZW8tPnNob3VsZERpc3BsYXlWaWRlbygpICYmIGNhbkFj
Y2VsZXJhdGVWaWRlb1JlbmRlcmluZyh2aWRlbyk7CisgICAgICAgIHJldHVybiAodmlkZW8tPnJl
cXVpcmVzSW1tZWRpYXRlQ29tcG9zaXRpbmcoKSB8fCB2aWRlby0+c2hvdWxkRGlzcGxheVZpZGVv
KCkpICYmIGNhbkFjY2VsZXJhdGVWaWRlb1JlbmRlcmluZyh2aWRlbyk7CiAgICAgfQogI2lmIEVO
QUJMRShQTFVHSU5fUFJPWFlfRk9SX1ZJREVPKQogICAgIGVsc2UgaWYgKHJlbmRlcmVyLT5pc1Jl
bmRlclBhcnQoKSkgewpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZGVv
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlkZW8u
Y3BwCShyZXZpc2lvbiAxNTQ5MTEpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
VmlkZW8uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yODEsNiArMjgxLDEyIEBAIHZvaWQgUmVuZGVy
VmlkZW86OmFjY2VsZXJhdGVkUmVuZGVyaW5nU3QKIH0KICNlbmRpZiAgLy8gVVNFKEFDQ0VMRVJB
VEVEX0NPTVBPU0lUSU5HKQogCitib29sIFJlbmRlclZpZGVvOjpyZXF1aXJlc0ltbWVkaWF0ZUNv
bXBvc2l0aW5nKCkgY29uc3QKK3sKKyAgICBNZWRpYVBsYXllciogcCA9IG1lZGlhRWxlbWVudCgp
LT5wbGF5ZXIoKTsKKyAgICByZXR1cm4gcCA/IHAtPnJlcXVpcmVzSW1tZWRpYXRlQ29tcG9zaXRp
bmcoKSA6IGZhbHNlOworfQorCiAjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQogc3RhdGljIGNv
bnN0IFJlbmRlckJsb2NrKiByZW5kZXJlclBsYWNlaG9sZGVyKGNvbnN0IFJlbmRlck9iamVjdCog
cmVuZGVyZXIpCiB7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlkZW8u
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlkZW8uaAko
cmV2aXNpb24gMTU0OTExKQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZGVv
LmgJKHdvcmtpbmcgY29weSkKQEAgLTQ5LDYgKzQ5LDggQEAgcHVibGljOgogICAgIHZvaWQgYWNj
ZWxlcmF0ZWRSZW5kZXJpbmdTdGF0ZUNoYW5nZWQoKTsKICNlbmRpZgogCisgICAgYm9vbCByZXF1
aXJlc0ltbWVkaWF0ZUNvbXBvc2l0aW5nKCkgY29uc3Q7CisKICAgICB2aXJ0dWFsIGJvb2wgc2hv
dWxkRGlzcGxheVZpZGVvKCkgY29uc3Q7CiAKIHByaXZhdGU6Cg==
</data>
<flag name="review"
          id="232262"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>