<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux-stable.git/drivers/gpu/drm/drm_fops.c, branch v3.3.4</title>
<subtitle>Linux kernel stable tree</subtitle>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/'/>
<entry>
<title>drm: Fix authentication kernel crash</title>
<updated>2012-01-25T09:27:45+00:00</updated>
<author>
<name>Thomas Hellstrom</name>
<email>thellstrom@vmware.com</email>
</author>
<published>2012-01-24T17:54:21+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=598781d71119827b454fd75d46f84755bca6f0c6'/>
<id>598781d71119827b454fd75d46f84755bca6f0c6</id>
<content type='text'>
If the master tries to authenticate a client using drm_authmagic and
that client has already closed its drm file descriptor,
either wilfully or because it was terminated, the
call to drm_authmagic will dereference a stale pointer into kmalloc'ed memory
and corrupt it.

Typically this results in a hard system hang.

This patch fixes that problem by removing any authentication tokens
(struct drm_magic_entry) open for a file descriptor when that file
descriptor is closed.

Signed-off-by: Thomas Hellstrom &lt;thellstrom@vmware.com&gt;
Reviewed-by: Daniel Vetter &lt;daniel.vetter@ffwll.ch&gt;
Cc: stable@vger.kernel.org
Signed-off-by: Dave Airlie &lt;airlied@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
If the master tries to authenticate a client using drm_authmagic and
that client has already closed its drm file descriptor,
either wilfully or because it was terminated, the
call to drm_authmagic will dereference a stale pointer into kmalloc'ed memory
and corrupt it.

Typically this results in a hard system hang.

This patch fixes that problem by removing any authentication tokens
(struct drm_magic_entry) open for a file descriptor when that file
descriptor is closed.

Signed-off-by: Thomas Hellstrom &lt;thellstrom@vmware.com&gt;
Reviewed-by: Daniel Vetter &lt;daniel.vetter@ffwll.ch&gt;
Cc: stable@vger.kernel.org
Signed-off-by: Dave Airlie &lt;airlied@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>drm: Make the per-driver file_operations struct const</title>
<updated>2011-11-11T11:14:47+00:00</updated>
<author>
<name>Arjan van de Ven</name>
<email>arjan@infradead.org</email>
</author>
<published>2011-10-31T14:28:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=e08e96de986ceb2c6b683df0bd0c4ddd4f91dcfd'/>
<id>e08e96de986ceb2c6b683df0bd0c4ddd4f91dcfd</id>
<content type='text'>
From fdf1fdebaa00f81de18c227f32f8074c8b352d50 Mon Sep 17 00:00:00 2001
From: Arjan van de Ven &lt;arjan@linux.intel.com&gt;
Date: Sun, 30 Oct 2011 19:06:07 -0700
Subject: [PATCH] drm: Make the per-driver file_operations struct const

The DRM layer keeps a copy of struct file_operations inside its
big driver struct... which prevents it from being consistent and static.
For consistency (and the general security objective of having such things
static), it's desirable to get this fixed.

This patch splits out the file_operations field to its own struct,
which is then "static const", and just stick a pointer to this into
the driver struct, making it more consistent with how the rest of the
kernel does this.

Signed-off-by: Arjan van de Ven &lt;arjan@linux.intel.com&gt;
Signed-off-by: Dave Airlie &lt;airlied@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
From fdf1fdebaa00f81de18c227f32f8074c8b352d50 Mon Sep 17 00:00:00 2001
From: Arjan van de Ven &lt;arjan@linux.intel.com&gt;
Date: Sun, 30 Oct 2011 19:06:07 -0700
Subject: [PATCH] drm: Make the per-driver file_operations struct const

The DRM layer keeps a copy of struct file_operations inside its
big driver struct... which prevents it from being consistent and static.
For consistency (and the general security objective of having such things
static), it's desirable to get this fixed.

This patch splits out the file_operations field to its own struct,
which is then "static const", and just stick a pointer to this into
the driver struct, making it more consistent with how the rest of the
kernel does this.

Signed-off-by: Arjan van de Ven &lt;arjan@linux.intel.com&gt;
Signed-off-by: Dave Airlie &lt;airlied@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>gpu: add module.h to drivers/gpu files as required.</title>
<updated>2011-10-31T23:32:03+00:00</updated>
<author>
<name>Paul Gortmaker</name>
<email>paul.gortmaker@windriver.com</email>
</author>
<published>2011-08-30T15:04:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=e0cd3608135b2ed8eddbe3fdf048d22e0593d836'/>
<id>e0cd3608135b2ed8eddbe3fdf048d22e0593d836</id>
<content type='text'>
So that we don't get build failures once the implicit module.h
presence is removed.

Signed-off-by: Paul Gortmaker &lt;paul.gortmaker@windriver.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
So that we don't get build failures once the implicit module.h
presence is removed.

Signed-off-by: Paul Gortmaker &lt;paul.gortmaker@windriver.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>drm/switcheroo: track state of switch in drivers.</title>
<updated>2011-01-05T03:45:30+00:00</updated>
<author>
<name>Dave Airlie</name>
<email>airlied@redhat.com</email>
</author>
<published>2010-12-06T23:20:40+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=5bcf719b7db0f9366cedaf102b081f99b1c325ae'/>
<id>5bcf719b7db0f9366cedaf102b081f99b1c325ae</id>
<content type='text'>
We need to track the state of the switch in drivers, so that after s/r
we don't resume the card we've explicitly switched off before. Also
don't allow a userspace open to occur if we've switched the gpu off.

Signed-off-by: Dave Airlie &lt;airlied@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
We need to track the state of the switch in drivers, so that after s/r
we don't resume the card we've explicitly switched off before. Also
don't allow a userspace open to occur if we've switched the gpu off.

Signed-off-by: Dave Airlie &lt;airlied@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>BKL: remove extraneous #include &lt;smp_lock.h&gt;</title>
<updated>2010-11-17T16:59:32+00:00</updated>
<author>
<name>Arnd Bergmann</name>
<email>arnd@arndb.de</email>
</author>
<published>2010-11-17T15:26:55+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=451a3c24b0135bce54542009b5fde43846c7cf67'/>
<id>451a3c24b0135bce54542009b5fde43846c7cf67</id>
<content type='text'>
The big kernel lock has been removed from all these files at some point,
leaving only the #include.

Remove this too as a cleanup.

Signed-off-by: Arnd Bergmann &lt;arnd@arndb.de&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The big kernel lock has been removed from all these files at some point,
leaving only the #include.

Remove this too as a cleanup.

Signed-off-by: Arnd Bergmann &lt;arnd@arndb.de&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge remote branch 'nouveau/for-airlied' of /ssd/git/drm-nouveau-next into drm-fixes</title>
<updated>2010-08-26T23:09:46+00:00</updated>
<author>
<name>Dave Airlie</name>
<email>airlied@redhat.com</email>
</author>
<published>2010-08-26T23:09:46+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=5afda9e9a4625d771795a5f540fb202eec08a49c'/>
<id>5afda9e9a4625d771795a5f540fb202eec08a49c</id>
<content type='text'>
* 'nouveau/for-airlied' of /ssd/git/drm-nouveau-next:
  drm/nouveau: drop drm_global_mutex before sleeping in submission path
  drm: export drm_global_mutex for drivers to use
  drm/nv20: Don't use pushbuf calls on the original nv20.
  drm/nouveau: Fix TMDS on some DCB1.5 boards.
  drm/nouveau: Fix backlight control on PPC machines with an internal TMDS panel.
  drm/nv30: Apply modesetting to the correct slave encoder
  drm/nouveau: Use a helper function to match PCI device/subsystem IDs.
  drm/nv50: add dcb type 14 to enum to prevent compiler complaint
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* 'nouveau/for-airlied' of /ssd/git/drm-nouveau-next:
  drm/nouveau: drop drm_global_mutex before sleeping in submission path
  drm: export drm_global_mutex for drivers to use
  drm/nv20: Don't use pushbuf calls on the original nv20.
  drm/nouveau: Fix TMDS on some DCB1.5 boards.
  drm/nouveau: Fix backlight control on PPC machines with an internal TMDS panel.
  drm/nv30: Apply modesetting to the correct slave encoder
  drm/nouveau: Use a helper function to match PCI device/subsystem IDs.
  drm/nv50: add dcb type 14 to enum to prevent compiler complaint
</pre>
</div>
</content>
</entry>
<entry>
<title>drm: export drm_global_mutex for drivers to use</title>
<updated>2010-08-26T22:39:22+00:00</updated>
<author>
<name>Ben Skeggs</name>
<email>bskeggs@redhat.com</email>
</author>
<published>2010-08-26T04:58:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=e3461a2bc0d67ce60a915e0f26e2a6eb4a4d4b99'/>
<id>e3461a2bc0d67ce60a915e0f26e2a6eb4a4d4b99</id>
<content type='text'>
Nouveau needs to be able to drop the mutex before sleeping to prevent a
deadlock from occuring.

Signed-off-by: Ben Skeggs &lt;bskeggs@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Nouveau needs to be able to drop the mutex before sleeping to prevent a
deadlock from occuring.

Signed-off-by: Ben Skeggs &lt;bskeggs@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>drm: Remove count_lock for calling lastclose() after 58474713 (v2)</title>
<updated>2010-08-11T23:22:19+00:00</updated>
<author>
<name>Chris Wilson</name>
<email>chris@chris-wilson.co.uk</email>
</author>
<published>2010-08-11T13:41:16+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=1a72d65d6291ec248cbc5f05df2487edd714aba6'/>
<id>1a72d65d6291ec248cbc5f05df2487edd714aba6</id>
<content type='text'>
When removing of the BKL the locking around lastclose() was rearranged
and resulted in the holding of the open_count spinlock over the call
into drm_lastclose(). The drivers were not ready for this path to be
atomic - it may indeed involve long waits to release old objects and
cleanup the GPU - and so we ended up scheduling whilst atomic.

[   54.625598] BUG: scheduling while atomic: X/3546/0x00000002
[   54.625600] Modules linked in: sco bridge stp llc input_polldev rfcomm bnep l2cap crc16 sch_sfq ipv6 md_mod acpi_cpufreq mperf cryptd aes_x86_64 aes_generic xts gf128mul dm_crypt dm_mod btusb bluetooth usbhid hid zaurus cdc_ether usbnet mii cdc_wdm cdc_acm uvcvideo videodev v4l1_compat v4l2_compat_ioctl32 snd_hda_codec_conexant arc4 pcmcia ecb snd_hda_intel joydev sdhci_pci sdhci snd_hda_codec tpm_tis firewire_ohci mmc_core e1000e uhci_hcd thinkpad_acpi nvram yenta_socket pcmcia_rsrc pcmcia_core tpm wmi sr_mod firewire_core iwlagn ehci_hcd snd_hwdep snd_pcm usbcore tpm_bios thermal led_class snd_timer iwlcore snd soundcore ac snd_page_alloc pcspkr psmouse serio_raw battery sg mac80211 evdev cfg80211 i2c_i801 iTCO_wdt iTCO_vendor_support cdrom processor crc_itu_t rfkill xfs exportfs sd_mod crc_t10dif ahci libahci libata scsi_mod [last unloaded: scsi_wait_scan]
[   54.625663] Pid: 3546, comm: X Not tainted 2.6.35-04771-g1787985 #301
[   54.625665] Call Trace:
[   54.625671]  [&lt;ffffffff8102d599&gt;] __schedule_bug+0x57/0x5c
[   54.625675]  [&lt;ffffffff81384141&gt;] schedule+0xe5/0x832
[   54.625679]  [&lt;ffffffff81163e77&gt;] ? put_dec+0x20/0x3c
[   54.625682]  [&lt;ffffffff81384dd4&gt;] schedule_timeout+0x275/0x29f
[   54.625686]  [&lt;ffffffff810455e1&gt;] ? process_timeout+0x0/0xb
[   54.625688]  [&lt;ffffffff81384e17&gt;] schedule_timeout_uninterruptible+0x19/0x1b
[   54.625691]  [&lt;ffffffff81045893&gt;] msleep+0x16/0x1d
[   54.625695]  [&lt;ffffffff812a2e53&gt;] i9xx_crtc_dpms+0x273/0x2ae
[   54.625698]  [&lt;ffffffff812a18be&gt;] intel_crtc_dpms+0x28/0xe7
[   54.625702]  [&lt;ffffffff811ec0fa&gt;] drm_helper_disable_unused_functions+0xf0/0x118
[   54.625705]  [&lt;ffffffff811ecde3&gt;] drm_crtc_helper_set_config+0x644/0x7c8
[   54.625708]  [&lt;ffffffff811f12dd&gt;] ? drm_copy_field+0x40/0x50
[   54.625711]  [&lt;ffffffff811ebca2&gt;] drm_fb_helper_force_kernel_mode+0x3e/0x85
[   54.625713]  [&lt;ffffffff811ebcf2&gt;] drm_fb_helper_restore+0x9/0x24
[   54.625717]  [&lt;ffffffff81290a41&gt;] i915_driver_lastclose+0x2b/0x5c
[   54.625720]  [&lt;ffffffff811f14a7&gt;] drm_lastclose+0x44/0x2ad
[   54.625722]  [&lt;ffffffff811f1ed2&gt;] drm_release+0x5c6/0x609
[   54.625726]  [&lt;ffffffff810d1275&gt;] fput+0x109/0x1c7
[   54.625728]  [&lt;ffffffff810ce5e4&gt;] filp_close+0x61/0x6b
[   54.625731]  [&lt;ffffffff810ce680&gt;] sys_close+0x92/0xd4
[   54.625734]  [&lt;ffffffff81002a2b&gt;] system_call_fastpath+0x16/0x1b

v2: The spinlock is actually superfluous as access to open_count is
entirely serialised by drm_global_mutex and so can be dropped. The
count_lock spinlock instead appears to be used to protect access to
dev-&gt;buf_alloc and dev-&gt;buf_use.

Signed-off-by: Chris Wilson &lt;chris@chris-wilson.co.uk&gt;
Signed-off-by: Dave Airlie &lt;airlied@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
When removing of the BKL the locking around lastclose() was rearranged
and resulted in the holding of the open_count spinlock over the call
into drm_lastclose(). The drivers were not ready for this path to be
atomic - it may indeed involve long waits to release old objects and
cleanup the GPU - and so we ended up scheduling whilst atomic.

[   54.625598] BUG: scheduling while atomic: X/3546/0x00000002
[   54.625600] Modules linked in: sco bridge stp llc input_polldev rfcomm bnep l2cap crc16 sch_sfq ipv6 md_mod acpi_cpufreq mperf cryptd aes_x86_64 aes_generic xts gf128mul dm_crypt dm_mod btusb bluetooth usbhid hid zaurus cdc_ether usbnet mii cdc_wdm cdc_acm uvcvideo videodev v4l1_compat v4l2_compat_ioctl32 snd_hda_codec_conexant arc4 pcmcia ecb snd_hda_intel joydev sdhci_pci sdhci snd_hda_codec tpm_tis firewire_ohci mmc_core e1000e uhci_hcd thinkpad_acpi nvram yenta_socket pcmcia_rsrc pcmcia_core tpm wmi sr_mod firewire_core iwlagn ehci_hcd snd_hwdep snd_pcm usbcore tpm_bios thermal led_class snd_timer iwlcore snd soundcore ac snd_page_alloc pcspkr psmouse serio_raw battery sg mac80211 evdev cfg80211 i2c_i801 iTCO_wdt iTCO_vendor_support cdrom processor crc_itu_t rfkill xfs exportfs sd_mod crc_t10dif ahci libahci libata scsi_mod [last unloaded: scsi_wait_scan]
[   54.625663] Pid: 3546, comm: X Not tainted 2.6.35-04771-g1787985 #301
[   54.625665] Call Trace:
[   54.625671]  [&lt;ffffffff8102d599&gt;] __schedule_bug+0x57/0x5c
[   54.625675]  [&lt;ffffffff81384141&gt;] schedule+0xe5/0x832
[   54.625679]  [&lt;ffffffff81163e77&gt;] ? put_dec+0x20/0x3c
[   54.625682]  [&lt;ffffffff81384dd4&gt;] schedule_timeout+0x275/0x29f
[   54.625686]  [&lt;ffffffff810455e1&gt;] ? process_timeout+0x0/0xb
[   54.625688]  [&lt;ffffffff81384e17&gt;] schedule_timeout_uninterruptible+0x19/0x1b
[   54.625691]  [&lt;ffffffff81045893&gt;] msleep+0x16/0x1d
[   54.625695]  [&lt;ffffffff812a2e53&gt;] i9xx_crtc_dpms+0x273/0x2ae
[   54.625698]  [&lt;ffffffff812a18be&gt;] intel_crtc_dpms+0x28/0xe7
[   54.625702]  [&lt;ffffffff811ec0fa&gt;] drm_helper_disable_unused_functions+0xf0/0x118
[   54.625705]  [&lt;ffffffff811ecde3&gt;] drm_crtc_helper_set_config+0x644/0x7c8
[   54.625708]  [&lt;ffffffff811f12dd&gt;] ? drm_copy_field+0x40/0x50
[   54.625711]  [&lt;ffffffff811ebca2&gt;] drm_fb_helper_force_kernel_mode+0x3e/0x85
[   54.625713]  [&lt;ffffffff811ebcf2&gt;] drm_fb_helper_restore+0x9/0x24
[   54.625717]  [&lt;ffffffff81290a41&gt;] i915_driver_lastclose+0x2b/0x5c
[   54.625720]  [&lt;ffffffff811f14a7&gt;] drm_lastclose+0x44/0x2ad
[   54.625722]  [&lt;ffffffff811f1ed2&gt;] drm_release+0x5c6/0x609
[   54.625726]  [&lt;ffffffff810d1275&gt;] fput+0x109/0x1c7
[   54.625728]  [&lt;ffffffff810ce5e4&gt;] filp_close+0x61/0x6b
[   54.625731]  [&lt;ffffffff810ce680&gt;] sys_close+0x92/0xd4
[   54.625734]  [&lt;ffffffff81002a2b&gt;] system_call_fastpath+0x16/0x1b

v2: The spinlock is actually superfluous as access to open_count is
entirely serialised by drm_global_mutex and so can be dropped. The
count_lock spinlock instead appears to be used to protect access to
dev-&gt;buf_alloc and dev-&gt;buf_use.

Signed-off-by: Chris Wilson &lt;chris@chris-wilson.co.uk&gt;
Signed-off-by: Dave Airlie &lt;airlied@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>drm: kill BKL from common code</title>
<updated>2010-08-05T01:54:40+00:00</updated>
<author>
<name>Arnd Bergmann</name>
<email>arnd@arndb.de</email>
</author>
<published>2010-07-10T21:51:39+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=58374713c9dfb4d231f8c56cac089f6fbdedc2ec'/>
<id>58374713c9dfb4d231f8c56cac089f6fbdedc2ec</id>
<content type='text'>
This restricts the use of the big kernel lock to the i830 and i810
device drivers. The three remaining users in common code (open, ioctl
and release) get converted to a new mutex, the drm_global_mutex,
making the locking stricter than the big kernel lock.

This may have a performance impact, but only in those cases that
currently don't use DRM_UNLOCKED flag in the ioctl list and would
benefit from that anyway.

The reason why i810 and i830 cannot use drm_global_mutex in their
mmap functions is a lock-order inversion problem between the current
use of the BKL and mmap_sem in these drivers. Since the BKL has
release-on-sleep semantics, it's harmless but it would cause trouble
if we replace the BKL with a mutex.

Instead, these drivers get their own ioctl wrappers that take the
BKL around every ioctl call and then set their own handlers as
DRM_UNLOCKED.

Signed-off-by: Arnd Bergmann &lt;arnd@arndb.de&gt;
Cc: David Airlie &lt;airlied@linux.ie&gt;
Cc: dri-devel@lists.freedesktop.org
Signed-off-by: Dave Airlie &lt;airlied@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This restricts the use of the big kernel lock to the i830 and i810
device drivers. The three remaining users in common code (open, ioctl
and release) get converted to a new mutex, the drm_global_mutex,
making the locking stricter than the big kernel lock.

This may have a performance impact, but only in those cases that
currently don't use DRM_UNLOCKED flag in the ioctl list and would
benefit from that anyway.

The reason why i810 and i830 cannot use drm_global_mutex in their
mmap functions is a lock-order inversion problem between the current
use of the BKL and mmap_sem in these drivers. Since the BKL has
release-on-sleep semantics, it's harmless but it would cause trouble
if we replace the BKL with a mutex.

Instead, these drivers get their own ioctl wrappers that take the
BKL around every ioctl call and then set their own handlers as
DRM_UNLOCKED.

Signed-off-by: Arnd Bergmann &lt;arnd@arndb.de&gt;
Cc: David Airlie &lt;airlied@linux.ie&gt;
Cc: dri-devel@lists.freedesktop.org
Signed-off-by: Dave Airlie &lt;airlied@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>drivers/gpu/drm: Use kzalloc</title>
<updated>2010-05-18T05:57:05+00:00</updated>
<author>
<name>Julia Lawall</name>
<email>julia@diku.dk</email>
</author>
<published>2010-05-13T19:58:56+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=6ebc22e6d06760466859b79d7b3b3edad264a230'/>
<id>6ebc22e6d06760466859b79d7b3b3edad264a230</id>
<content type='text'>
Use kzalloc rather than the combination of kmalloc and memset.

The semantic patch that makes this change is as follows:
(http://coccinelle.lip6.fr/)

// &lt;smpl&gt;
@@
expression x,size,flags;
statement S;
@@

-x = kmalloc(size,flags);
+x = kzalloc(size,flags);
 if (x == NULL) S
-memset(x, 0, size);
// &lt;/smpl&gt;

Signed-off-by: Julia Lawall &lt;julia@diku.dk&gt;
Reviewed-by: Corbin Simpson &lt;MostAwesomeDude@gmail.com&gt;
Reviewed-by: Matt Turner &lt;mattst88@gmail.com&gt;
Signed-off-by: Dave Airlie &lt;airlied@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Use kzalloc rather than the combination of kmalloc and memset.

The semantic patch that makes this change is as follows:
(http://coccinelle.lip6.fr/)

// &lt;smpl&gt;
@@
expression x,size,flags;
statement S;
@@

-x = kmalloc(size,flags);
+x = kzalloc(size,flags);
 if (x == NULL) S
-memset(x, 0, size);
// &lt;/smpl&gt;

Signed-off-by: Julia Lawall &lt;julia@diku.dk&gt;
Reviewed-by: Corbin Simpson &lt;MostAwesomeDude@gmail.com&gt;
Reviewed-by: Matt Turner &lt;mattst88@gmail.com&gt;
Signed-off-by: Dave Airlie &lt;airlied@redhat.com&gt;
</pre>
</div>
</content>
</entry>
</feed>
