Revision de5604231ce4bc8db1bc1dcd27d8540cbedf1518 authored by Nick Piggin on 01 February 2010, 11:24:18 UTC, committed by Linus Torvalds on 02 February 2010, 20:50:47 UTC
RCU list walking of the per-cpu vmap cache was broken. It did not use RCU primitives, and also the union of free_list and rcu_head is obviously wrong (because free_list is indeed the list we are RCU walking). While we are there, remove a couple of unused fields from an earlier iteration. These APIs aren't actually used anywhere, because of problems with the XFS conversion. Christoph has now verified that the problems are solved with these patches. Also it is an exported interface, so I think it will be good to be merged now (and Christoph wants to get the XFS changes into their local tree). Cc: stable@kernel.org Cc: linux-mm@kvack.org Tested-by: Christoph Hellwig <hch@infradead.org> Signed-off-by: Nick Piggin <npiggin@suse.de> -- Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
1 parent 489b24f
bcm63xx_pcmcia.h
#ifndef BCM63XX_PCMCIA_H_
#define BCM63XX_PCMCIA_H_
#include <linux/types.h>
#include <linux/timer.h>
#include <pcmcia/ss.h>
#include <bcm63xx_dev_pcmcia.h>
/* socket polling rate in ms */
#define BCM63XX_PCMCIA_POLL_RATE 500
enum {
CARD_CARDBUS = (1 << 0),
CARD_PCCARD = (1 << 1),
CARD_5V = (1 << 2),
CARD_3V = (1 << 3),
CARD_XV = (1 << 4),
CARD_YV = (1 << 5),
};
struct bcm63xx_pcmcia_socket {
struct pcmcia_socket socket;
/* platform specific data */
struct bcm63xx_pcmcia_platform_data *pd;
/* all regs access are protected by this spinlock */
spinlock_t lock;
/* pcmcia registers resource */
struct resource *reg_res;
/* base remapped address of registers */
void __iomem *base;
/* whether a card is detected at the moment */
int card_detected;
/* type of detected card (mask of above enum) */
u8 card_type;
/* keep last socket status to implement event reporting */
unsigned int old_status;
/* backup of requested socket state */
socket_state_t requested_state;
/* timer used for socket status polling */
struct timer_list timer;
/* attribute/common memory resources */
struct resource *attr_res;
struct resource *common_res;
struct resource *io_res;
/* base address of io memory */
void __iomem *io_base;
};
#endif /* BCM63XX_PCMCIA_H_ */
![swh spinner](/static/img/swh-spinner.gif)
Computing file changes ...