Revision 2cff98b99c469880ce830cbcde015b53b67e0a7b authored by Dean Nelson on 29 April 2015, 15:09:18 UTC, committed by Will Deacon on 29 April 2015, 16:39:39 UTC
__dma_alloc() does a PAGE_ALIGN() on the passed in size argument before
doing anything else. __dma_free() does not. And because it doesn't, it is
possible to leak memory should size not be an integer multiple of PAGE_SIZE.

The solution is to add a PAGE_ALIGN() to __dma_free() like is done in
__dma_alloc().

Additionally, this patch removes a redundant PAGE_ALIGN() from
__dma_alloc_coherent(), since __dma_alloc_coherent() can only be called
from __dma_alloc(), which already does a PAGE_ALIGN() before the call.

Cc: stable@vger.kernel.org
Acked-by: Catalin Marinas <catalin.marinas@arm.com>
Signed-off-by: Dean Nelson <dnelson@redhat.com>
Signed-off-by: Will Deacon <will.deacon@arm.com>
1 parent 6829e27
Raw File
NCR_D700.h
/* -*- mode: c; c-basic-offset: 8 -*- */

/* NCR Dual 700 MCA SCSI Driver
 *
 * Copyright (C) 2001 by James.Bottomley@HansenPartnership.com
 */

#ifndef _NCR_D700_H
#define _NCR_D700_H

/* Don't turn on debugging messages */
#undef NCR_D700_DEBUG

/* The MCA identifier */
#define NCR_D700_MCA_ID		0x0092

/* Defines for the Board registers */
#define	BOARD_RESET		0x80	/* board level reset */
#define ADD_PARENB		0x04	/* Address Parity Enabled */
#define DAT_PARENB		0x01	/* Data Parity Enabled */
#define SFBK_ENB		0x10	/* SFDBK Interrupt Enabled */
#define LED0GREEN		0x20	/* Led 0 (red 0; green 1) */
#define LED1GREEN		0x40	/* Led 1 (red 0; green 1) */
#define LED0RED			0xDF	/* Led 0 (red 0; green 1) */
#define LED1RED			0xBF	/* Led 1 (red 0; green 1) */

#define NCR_D700_CLOCK_MHZ	50

#endif
back to top