Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 263089
b: refs/heads/master
c: 01fa4ba
h: refs/heads/master
i:
  263087: c23d13c
v: v3
  • Loading branch information
Linus Torvalds committed Aug 18, 2011
1 parent 140484f commit df35456
Show file tree
Hide file tree
Showing 43 changed files with 551 additions and 219 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 04c05b4a68c0ab0d6bb41c710a646e56f62a70a3
refs/heads/master: 01fa4ba52c36224783107a40126f1c6354d4e965
1 change: 0 additions & 1 deletion trunk/arch/ia64/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -162,7 +162,6 @@ config IA64_GENERIC
select ACPI_NUMA
select SWIOTLB
select PCI_MSI
select DMAR
help
This selects the system type of your hardware. A "generic" kernel
will run on any supported IA-64 system. However, if you configure
Expand Down
1 change: 1 addition & 0 deletions trunk/arch/ia64/configs/generic_defconfig
Original file line number Diff line number Diff line change
Expand Up @@ -234,3 +234,4 @@ CONFIG_CRYPTO_MD5=y
# CONFIG_CRYPTO_ANSI_CPRNG is not set
CONFIG_CRC_T10DIF=y
CONFIG_MISC_DEVICES=y
CONFIG_DMAR=y
3 changes: 3 additions & 0 deletions trunk/arch/x86/kvm/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,8 @@ config KVM
depends on HAVE_KVM
# for device assignment:
depends on PCI
# for TASKSTATS/TASK_DELAY_ACCT:
depends on NET
select PREEMPT_NOTIFIERS
select MMU_NOTIFIER
select ANON_INODES
Expand All @@ -31,6 +33,7 @@ config KVM
select KVM_ASYNC_PF
select USER_RETURN_NOTIFIER
select KVM_MMIO
select TASKSTATS
select TASK_DELAY_ACCT
---help---
Support hosting fully virtualized guest machines using hardware
Expand Down
30 changes: 15 additions & 15 deletions trunk/drivers/base/power/domain.c
Original file line number Diff line number Diff line change
Expand Up @@ -460,6 +460,21 @@ static int pm_genpd_runtime_resume(struct device *dev)
return 0;
}

/**
* pm_genpd_poweroff_unused - Power off all PM domains with no devices in use.
*/
void pm_genpd_poweroff_unused(void)
{
struct generic_pm_domain *genpd;

mutex_lock(&gpd_list_lock);

list_for_each_entry(genpd, &gpd_list, gpd_list_node)
genpd_queue_power_off_work(genpd);

mutex_unlock(&gpd_list_lock);
}

#else

static inline void genpd_power_off_work_fn(struct work_struct *work) {}
Expand Down Expand Up @@ -1255,18 +1270,3 @@ void pm_genpd_init(struct generic_pm_domain *genpd,
list_add(&genpd->gpd_list_node, &gpd_list);
mutex_unlock(&gpd_list_lock);
}

/**
* pm_genpd_poweroff_unused - Power off all PM domains with no devices in use.
*/
void pm_genpd_poweroff_unused(void)
{
struct generic_pm_domain *genpd;

mutex_lock(&gpd_list_lock);

list_for_each_entry(genpd, &gpd_list, gpd_list_node)
genpd_queue_power_off_work(genpd);

mutex_unlock(&gpd_list_lock);
}
2 changes: 1 addition & 1 deletion trunk/drivers/edac/i7core_edac.c
Original file line number Diff line number Diff line change
Expand Up @@ -1670,7 +1670,7 @@ static void i7core_mce_output_error(struct mem_ctl_info *mci,
char *type, *optype, *err, *msg;
unsigned long error = m->status & 0x1ff0000l;
u32 optypenum = (m->status >> 4) & 0x07;
u32 core_err_cnt = (m->status >> 38) && 0x7fff;
u32 core_err_cnt = (m->status >> 38) & 0x7fff;
u32 dimm = (m->misc >> 16) & 0x3;
u32 channel = (m->misc >> 18) & 0x3;
u32 syndrome = m->misc >> 32;
Expand Down
8 changes: 5 additions & 3 deletions trunk/drivers/infiniband/ulp/ipoib/ipoib_main.c
Original file line number Diff line number Diff line change
Expand Up @@ -717,11 +717,13 @@ static int ipoib_start_xmit(struct sk_buff *skb, struct net_device *dev)
{
struct ipoib_dev_priv *priv = netdev_priv(dev);
struct ipoib_neigh *neigh;
struct neighbour *n;
struct neighbour *n = NULL;
unsigned long flags;

n = dst_get_neighbour(skb_dst(skb));
if (likely(skb_dst(skb) && n)) {
if (likely(skb_dst(skb)))
n = dst_get_neighbour(skb_dst(skb));

if (likely(n)) {
if (unlikely(!*to_ipoib_neigh(n))) {
ipoib_path_lookup(skb, dev);
return NETDEV_TX_OK;
Expand Down
10 changes: 7 additions & 3 deletions trunk/drivers/infiniband/ulp/iser/iscsi_iser.c
Original file line number Diff line number Diff line change
Expand Up @@ -101,13 +101,17 @@ iscsi_iser_recv(struct iscsi_conn *conn,

/* verify PDU length */
datalen = ntoh24(hdr->dlength);
if (datalen != rx_data_len) {
printk(KERN_ERR "iscsi_iser: datalen %d (hdr) != %d (IB) \n",
datalen, rx_data_len);
if (datalen > rx_data_len || (datalen + 4) < rx_data_len) {
iser_err("wrong datalen %d (hdr), %d (IB)\n",
datalen, rx_data_len);
rc = ISCSI_ERR_DATALEN;
goto error;
}

if (datalen != rx_data_len)
iser_dbg("aligned datalen (%d) hdr, %d (IB)\n",
datalen, rx_data_len);

/* read AHS */
ahslen = hdr->hlength * 4;

Expand Down
2 changes: 1 addition & 1 deletion trunk/drivers/infiniband/ulp/iser/iscsi_iser.h
Original file line number Diff line number Diff line change
Expand Up @@ -89,7 +89,7 @@
} while (0)

#define SHIFT_4K 12
#define SIZE_4K (1UL << SHIFT_4K)
#define SIZE_4K (1ULL << SHIFT_4K)
#define MASK_4K (~(SIZE_4K-1))

/* support up to 512KB in one RDMA */
Expand Down
2 changes: 1 addition & 1 deletion trunk/drivers/infiniband/ulp/iser/iser_initiator.c
Original file line number Diff line number Diff line change
Expand Up @@ -412,7 +412,7 @@ int iser_send_control(struct iscsi_conn *conn,
memcpy(iser_conn->ib_conn->login_buf, task->data,
task->data_count);
tx_dsg->addr = iser_conn->ib_conn->login_dma;
tx_dsg->length = data_seg_len;
tx_dsg->length = task->data_count;
tx_dsg->lkey = device->mr->lkey;
mdesc->num_sge = 2;
}
Expand Down
4 changes: 2 additions & 2 deletions trunk/drivers/rtc/interface.c
Original file line number Diff line number Diff line change
Expand Up @@ -639,7 +639,7 @@ EXPORT_SYMBOL_GPL(rtc_irq_unregister);
static int rtc_update_hrtimer(struct rtc_device *rtc, int enabled)
{
/*
* We unconditionally cancel the timer here, because otherwise
* We always cancel the timer here first, because otherwise
* we could run into BUG_ON(timer->state != HRTIMER_STATE_CALLBACK);
* when we manage to start the timer before the callback
* returns HRTIMER_RESTART.
Expand Down Expand Up @@ -708,7 +708,7 @@ int rtc_irq_set_freq(struct rtc_device *rtc, struct rtc_task *task, int freq)
int err = 0;
unsigned long flags;

if (freq <= 0 || freq > 5000)
if (freq <= 0 || freq > RTC_MAX_FREQ)
return -EINVAL;
retry:
spin_lock_irqsave(&rtc->irq_task_lock, flags);
Expand Down
3 changes: 2 additions & 1 deletion trunk/drivers/staging/gma500/mdfld_dsi_dbi.c
Original file line number Diff line number Diff line change
Expand Up @@ -711,10 +711,11 @@ struct mdfld_dsi_encoder *mdfld_dsi_dbi_init(struct drm_device *dev,
/* Create drm encoder object */
connector = &dsi_connector->base.base;
encoder = &dbi_output->base.base;
/* Review this if we ever get MIPI-HDMI bridges or similar */
drm_encoder_init(dev,
encoder,
p_funcs->encoder_funcs,
DRM_MODE_ENCODER_MIPI);
DRM_MODE_ENCODER_LVDS);
drm_encoder_helper_add(encoder, p_funcs->encoder_helper_funcs);

/* Attach to given connector */
Expand Down
3 changes: 0 additions & 3 deletions trunk/drivers/staging/gma500/mdfld_dsi_dbi.h
Original file line number Diff line number Diff line change
Expand Up @@ -42,9 +42,6 @@
#include "mdfld_dsi_output.h"
#include "mdfld_output.h"

#define DRM_MODE_ENCODER_MIPI 5


/*
* DBI encoder which inherits from mdfld_dsi_encoder
*/
Expand Down
7 changes: 6 additions & 1 deletion trunk/drivers/staging/gma500/mdfld_dsi_dpi.c
Original file line number Diff line number Diff line change
Expand Up @@ -777,10 +777,15 @@ struct mdfld_dsi_encoder *mdfld_dsi_dpi_init(struct drm_device *dev,
/* Create drm encoder object */
connector = &dsi_connector->base.base;
encoder = &dpi_output->base.base;
/*
* On existing hardware this will be a panel of some form,
* if future devices also have HDMI bridges this will need
* revisiting
*/
drm_encoder_init(dev,
encoder,
p_funcs->encoder_funcs,
DRM_MODE_ENCODER_MIPI);
DRM_MODE_ENCODER_LVDS);
drm_encoder_helper_add(encoder,
p_funcs->encoder_helper_funcs);

Expand Down
4 changes: 3 additions & 1 deletion trunk/drivers/staging/gma500/mdfld_dsi_output.c
Original file line number Diff line number Diff line change
Expand Up @@ -955,7 +955,9 @@ void mdfld_dsi_output_init(struct drm_device *dev,
psb_output->type = (pipe == 0) ? INTEL_OUTPUT_MIPI : INTEL_OUTPUT_MIPI2;

connector = &psb_output->base;
drm_connector_init(dev, connector, &mdfld_dsi_connector_funcs, DRM_MODE_CONNECTOR_MIPI);
/* Revisit type if MIPI/HDMI bridges ever appear on Medfield */
drm_connector_init(dev, connector, &mdfld_dsi_connector_funcs,
DRM_MODE_CONNECTOR_LVDS);
drm_connector_helper_add(connector, &mdfld_dsi_connector_helper_funcs);

connector->display_info.subpixel_order = SubPixelHorizontalRGB;
Expand Down
2 changes: 0 additions & 2 deletions trunk/drivers/staging/gma500/medfield.h
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,6 @@
* DEALINGS IN THE SOFTWARE.
*/

#define DRM_MODE_ENCODER_MIPI 5

/* Medfield DSI controller registers */

#define MIPIA_DEVICE_READY_REG 0xb000
Expand Down
1 change: 0 additions & 1 deletion trunk/drivers/staging/gma500/psb_drv.h
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,6 @@

/* Append new drm mode definition here, align with libdrm definition */
#define DRM_MODE_SCALE_NO_SCALE 2
#define DRM_MODE_CONNECTOR_MIPI 15

enum {
CHIP_PSB_8108 = 0, /* Poulsbo */
Expand Down
1 change: 1 addition & 0 deletions trunk/drivers/xen/xen-selfballoon.c
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,7 @@
#include <linux/kernel.h>
#include <linux/mm.h>
#include <linux/mman.h>
#include <linux/module.h>
#include <linux/workqueue.h>
#include <xen/balloon.h>
#include <xen/tmem.h>
Expand Down
23 changes: 14 additions & 9 deletions trunk/fs/befs/linuxvfs.c
Original file line number Diff line number Diff line change
Expand Up @@ -474,17 +474,22 @@ befs_follow_link(struct dentry *dentry, struct nameidata *nd)
befs_data_stream *data = &befs_ino->i_data.ds;
befs_off_t len = data->size;

befs_debug(sb, "Follow long symlink");

link = kmalloc(len, GFP_NOFS);
if (!link) {
link = ERR_PTR(-ENOMEM);
} else if (befs_read_lsymlink(sb, data, link, len) != len) {
kfree(link);
befs_error(sb, "Failed to read entire long symlink");
if (len == 0) {
befs_error(sb, "Long symlink with illegal length");
link = ERR_PTR(-EIO);
} else {
link[len - 1] = '\0';
befs_debug(sb, "Follow long symlink");

link = kmalloc(len, GFP_NOFS);
if (!link) {
link = ERR_PTR(-ENOMEM);
} else if (befs_read_lsymlink(sb, data, link, len) != len) {
kfree(link);
befs_error(sb, "Failed to read entire long symlink");
link = ERR_PTR(-EIO);
} else {
link[len - 1] = '\0';
}
}
} else {
link = befs_ino->i_data.symlink;
Expand Down
2 changes: 1 addition & 1 deletion trunk/fs/fat/dir.c
Original file line number Diff line number Diff line change
Expand Up @@ -1231,7 +1231,7 @@ int fat_add_entries(struct inode *dir, void *slots, int nr_slots,
struct super_block *sb = dir->i_sb;
struct msdos_sb_info *sbi = MSDOS_SB(sb);
struct buffer_head *bh, *prev, *bhs[3]; /* 32*slots (672bytes) */
struct msdos_dir_entry *de;
struct msdos_dir_entry *uninitialized_var(de);
int err, free_slots, i, nr_bhs;
loff_t pos, i_pos;

Expand Down
7 changes: 3 additions & 4 deletions trunk/fs/fat/inode.c
Original file line number Diff line number Diff line change
Expand Up @@ -1188,9 +1188,9 @@ static int parse_options(struct super_block *sb, char *options, int is_vfat,
out:
/* UTF-8 doesn't provide FAT semantics */
if (!strcmp(opts->iocharset, "utf8")) {
fat_msg(sb, KERN_ERR, "utf8 is not a recommended IO charset"
fat_msg(sb, KERN_WARNING, "utf8 is not a recommended IO charset"
" for FAT filesystems, filesystem will be "
"case sensitive!\n");
"case sensitive!");
}

/* If user doesn't specify allow_utime, it's initialized from dmask. */
Expand Down Expand Up @@ -1367,6 +1367,7 @@ int fat_fill_super(struct super_block *sb, void *data, int silent, int isvfat,
sbi->free_clusters = -1; /* Don't know yet */
sbi->free_clus_valid = 0;
sbi->prev_free = FAT_START_ENT;
sb->s_maxbytes = 0xffffffff;

if (!sbi->fat_length && b->fat32_length) {
struct fat_boot_fsinfo *fsinfo;
Expand All @@ -1377,8 +1378,6 @@ int fat_fill_super(struct super_block *sb, void *data, int silent, int isvfat,
sbi->fat_length = le32_to_cpu(b->fat32_length);
sbi->root_cluster = le32_to_cpu(b->root_cluster);

sb->s_maxbytes = 0xffffffff;

/* MC - if info_sector is 0, don't multiply by 0 */
sbi->fsinfo_sector = le16_to_cpu(b->info_sector);
if (sbi->fsinfo_sector == 0)
Expand Down
4 changes: 2 additions & 2 deletions trunk/include/asm-generic/memory_model.h
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@
})

#define __page_to_pfn(pg) \
({ struct page *__pg = (pg); \
({ const struct page *__pg = (pg); \
struct pglist_data *__pgdat = NODE_DATA(page_to_nid(__pg)); \
(unsigned long)(__pg - __pgdat->node_mem_map) + \
__pgdat->node_start_pfn; \
Expand All @@ -57,7 +57,7 @@
* section[i].section_mem_map == mem_map's address - start_pfn;
*/
#define __page_to_pfn(pg) \
({ struct page *__pg = (pg); \
({ const struct page *__pg = (pg); \
int __sec = page_to_section(__pg); \
(unsigned long)(__pg - __section_mem_map_addr(__nr_to_section(__sec))); \
})
Expand Down
2 changes: 1 addition & 1 deletion trunk/include/linux/hash.h
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ static inline u32 hash_32(u32 val, unsigned int bits)
return hash >> (32 - bits);
}

static inline unsigned long hash_ptr(void *ptr, unsigned int bits)
static inline unsigned long hash_ptr(const void *ptr, unsigned int bits)
{
return hash_long((unsigned long)ptr, bits);
}
Expand Down
11 changes: 10 additions & 1 deletion trunk/include/linux/irq.h
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@
#include <linux/errno.h>
#include <linux/topology.h>
#include <linux/wait.h>
#include <linux/module.h>

#include <asm/irq.h>
#include <asm/ptrace.h>
Expand Down Expand Up @@ -547,7 +548,15 @@ static inline struct msi_desc *irq_data_get_msi(struct irq_data *d)
return d->msi_desc;
}

int irq_alloc_descs(int irq, unsigned int from, unsigned int cnt, int node);
int __irq_alloc_descs(int irq, unsigned int from, unsigned int cnt, int node,
struct module *owner);

static inline int irq_alloc_descs(int irq, unsigned int from, unsigned int cnt,
int node)
{
return __irq_alloc_descs(irq, from, cnt, node, THIS_MODULE);
}

void irq_free_descs(unsigned int irq, unsigned int cnt);
int irq_reserve_irqs(unsigned int from, unsigned int cnt);

Expand Down
1 change: 1 addition & 0 deletions trunk/include/linux/irqdesc.h
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,7 @@ struct irq_desc {
#ifdef CONFIG_PROC_FS
struct proc_dir_entry *dir;
#endif
struct module *owner;
const char *name;
} ____cacheline_internodealigned_in_smp;

Expand Down
6 changes: 3 additions & 3 deletions trunk/include/linux/mm.h
Original file line number Diff line number Diff line change
Expand Up @@ -685,7 +685,7 @@ static inline void set_page_section(struct page *page, unsigned long section)
page->flags |= (section & SECTIONS_MASK) << SECTIONS_PGSHIFT;
}

static inline unsigned long page_to_section(struct page *page)
static inline unsigned long page_to_section(const struct page *page)
{
return (page->flags >> SECTIONS_PGSHIFT) & SECTIONS_MASK;
}
Expand Down Expand Up @@ -720,7 +720,7 @@ static inline void set_page_links(struct page *page, enum zone_type zone,

static __always_inline void *lowmem_page_address(const struct page *page)
{
return __va(PFN_PHYS(page_to_pfn((struct page *)page)));
return __va(PFN_PHYS(page_to_pfn(page)));
}

#if defined(CONFIG_HIGHMEM) && !defined(WANT_PAGE_VIRTUAL)
Expand All @@ -737,7 +737,7 @@ static __always_inline void *lowmem_page_address(const struct page *page)
#endif

#if defined(HASHED_PAGE_VIRTUAL)
void *page_address(struct page *page);
void *page_address(const struct page *page);
void set_page_address(struct page *page, void *virtual);
void page_address_init(void);
#endif
Expand Down
Loading

0 comments on commit df35456

Please sign in to comment.