Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 0bf9b0e0 authored by Francisco Jerez's avatar Francisco Jerez Committed by Ben Skeggs
Browse files

drm/nouveau: Don't pass misaligned offsets to io_mapping_map_atomic_wc().

parent a0d069ea
Loading
Loading
Loading
Loading
+6 −4
Original line number Diff line number Diff line
@@ -2083,9 +2083,10 @@ peek_fb(struct drm_device *dev, struct io_mapping *fb,
	uint32_t val = 0;

	if (off < pci_resource_len(dev->pdev, 1)) {
		uint32_t __iomem *p = io_mapping_map_atomic_wc(fb, off, KM_USER0);
		uint32_t __iomem *p =
			io_mapping_map_atomic_wc(fb, off & PAGE_MASK, KM_USER0);

		val = ioread32(p);
		val = ioread32(p + (off & ~PAGE_MASK));

		io_mapping_unmap_atomic(p, KM_USER0);
	}
@@ -2098,9 +2099,10 @@ poke_fb(struct drm_device *dev, struct io_mapping *fb,
	uint32_t off, uint32_t val)
{
	if (off < pci_resource_len(dev->pdev, 1)) {
		uint32_t __iomem *p = io_mapping_map_atomic_wc(fb, off, KM_USER0);
		uint32_t __iomem *p =
			io_mapping_map_atomic_wc(fb, off & PAGE_MASK, KM_USER0);

		iowrite32(val, p);
		iowrite32(val, p + (off & ~PAGE_MASK));
		wmb();

		io_mapping_unmap_atomic(p, KM_USER0);