Merge branch 'master' into next
Conflicts: fs/nfsd/nfs4recover.c Manually fixed above to use new creds API functions, e.g. nfs4_save_creds(). Signed-off-by: James Morris <jmorris@namei.org>
This commit is contained in:
@@ -1973,13 +1973,7 @@ static void pktgen_setup_inject(struct pktgen_dev *pkt_dev)
|
||||
|
||||
/* make sure that we don't pick a non-existing transmit queue */
|
||||
ntxq = pkt_dev->odev->real_num_tx_queues;
|
||||
if (ntxq > num_online_cpus() && (pkt_dev->flags & F_QUEUE_MAP_CPU)) {
|
||||
printk(KERN_WARNING "pktgen: WARNING: QUEUE_MAP_CPU "
|
||||
"disabled because CPU count (%d) exceeds number "
|
||||
"of tx queues (%d) on %s\n", num_online_cpus(), ntxq,
|
||||
pkt_dev->odev->name);
|
||||
pkt_dev->flags &= ~F_QUEUE_MAP_CPU;
|
||||
}
|
||||
|
||||
if (ntxq <= pkt_dev->queue_map_min) {
|
||||
printk(KERN_WARNING "pktgen: WARNING: Requested "
|
||||
"queue_map_min (zero-based) (%d) exceeds valid range "
|
||||
@@ -2202,6 +2196,7 @@ static void set_cur_queue_map(struct pktgen_dev *pkt_dev)
|
||||
}
|
||||
pkt_dev->cur_queue_map = t;
|
||||
}
|
||||
pkt_dev->cur_queue_map = pkt_dev->cur_queue_map % pkt_dev->odev->real_num_tx_queues;
|
||||
}
|
||||
|
||||
/* Increment/randomize headers according to flags and current values
|
||||
|
@@ -149,7 +149,7 @@ void skb_under_panic(struct sk_buff *skb, int sz, void *here)
|
||||
|
||||
void skb_truesize_bug(struct sk_buff *skb)
|
||||
{
|
||||
printk(KERN_ERR "SKB BUG: Invalid truesize (%u) "
|
||||
WARN(net_ratelimit(), KERN_ERR "SKB BUG: Invalid truesize (%u) "
|
||||
"len=%u, sizeof(sk_buff)=%Zd\n",
|
||||
skb->truesize, skb->len, sizeof(struct sk_buff));
|
||||
}
|
||||
|
@@ -2035,9 +2035,6 @@ static inline void release_proto_idx(struct proto *prot)
|
||||
|
||||
int proto_register(struct proto *prot, int alloc_slab)
|
||||
{
|
||||
char *request_sock_slab_name = NULL;
|
||||
char *timewait_sock_slab_name;
|
||||
|
||||
if (alloc_slab) {
|
||||
prot->slab = kmem_cache_create(prot->name, prot->obj_size, 0,
|
||||
SLAB_HWCACHE_ALIGN, NULL);
|
||||
@@ -2051,12 +2048,12 @@ int proto_register(struct proto *prot, int alloc_slab)
|
||||
if (prot->rsk_prot != NULL) {
|
||||
static const char mask[] = "request_sock_%s";
|
||||
|
||||
request_sock_slab_name = kmalloc(strlen(prot->name) + sizeof(mask) - 1, GFP_KERNEL);
|
||||
if (request_sock_slab_name == NULL)
|
||||
prot->rsk_prot->slab_name = kmalloc(strlen(prot->name) + sizeof(mask) - 1, GFP_KERNEL);
|
||||
if (prot->rsk_prot->slab_name == NULL)
|
||||
goto out_free_sock_slab;
|
||||
|
||||
sprintf(request_sock_slab_name, mask, prot->name);
|
||||
prot->rsk_prot->slab = kmem_cache_create(request_sock_slab_name,
|
||||
sprintf(prot->rsk_prot->slab_name, mask, prot->name);
|
||||
prot->rsk_prot->slab = kmem_cache_create(prot->rsk_prot->slab_name,
|
||||
prot->rsk_prot->obj_size, 0,
|
||||
SLAB_HWCACHE_ALIGN, NULL);
|
||||
|
||||
@@ -2070,14 +2067,14 @@ int proto_register(struct proto *prot, int alloc_slab)
|
||||
if (prot->twsk_prot != NULL) {
|
||||
static const char mask[] = "tw_sock_%s";
|
||||
|
||||
timewait_sock_slab_name = kmalloc(strlen(prot->name) + sizeof(mask) - 1, GFP_KERNEL);
|
||||
prot->twsk_prot->twsk_slab_name = kmalloc(strlen(prot->name) + sizeof(mask) - 1, GFP_KERNEL);
|
||||
|
||||
if (timewait_sock_slab_name == NULL)
|
||||
if (prot->twsk_prot->twsk_slab_name == NULL)
|
||||
goto out_free_request_sock_slab;
|
||||
|
||||
sprintf(timewait_sock_slab_name, mask, prot->name);
|
||||
sprintf(prot->twsk_prot->twsk_slab_name, mask, prot->name);
|
||||
prot->twsk_prot->twsk_slab =
|
||||
kmem_cache_create(timewait_sock_slab_name,
|
||||
kmem_cache_create(prot->twsk_prot->twsk_slab_name,
|
||||
prot->twsk_prot->twsk_obj_size,
|
||||
0, SLAB_HWCACHE_ALIGN,
|
||||
NULL);
|
||||
@@ -2093,14 +2090,14 @@ int proto_register(struct proto *prot, int alloc_slab)
|
||||
return 0;
|
||||
|
||||
out_free_timewait_sock_slab_name:
|
||||
kfree(timewait_sock_slab_name);
|
||||
kfree(prot->twsk_prot->twsk_slab_name);
|
||||
out_free_request_sock_slab:
|
||||
if (prot->rsk_prot && prot->rsk_prot->slab) {
|
||||
kmem_cache_destroy(prot->rsk_prot->slab);
|
||||
prot->rsk_prot->slab = NULL;
|
||||
}
|
||||
out_free_request_sock_slab_name:
|
||||
kfree(request_sock_slab_name);
|
||||
kfree(prot->rsk_prot->slab_name);
|
||||
out_free_sock_slab:
|
||||
kmem_cache_destroy(prot->slab);
|
||||
prot->slab = NULL;
|
||||
@@ -2123,18 +2120,14 @@ void proto_unregister(struct proto *prot)
|
||||
}
|
||||
|
||||
if (prot->rsk_prot != NULL && prot->rsk_prot->slab != NULL) {
|
||||
const char *name = kmem_cache_name(prot->rsk_prot->slab);
|
||||
|
||||
kmem_cache_destroy(prot->rsk_prot->slab);
|
||||
kfree(name);
|
||||
kfree(prot->rsk_prot->slab_name);
|
||||
prot->rsk_prot->slab = NULL;
|
||||
}
|
||||
|
||||
if (prot->twsk_prot != NULL && prot->twsk_prot->twsk_slab != NULL) {
|
||||
const char *name = kmem_cache_name(prot->twsk_prot->twsk_slab);
|
||||
|
||||
kmem_cache_destroy(prot->twsk_prot->twsk_slab);
|
||||
kfree(name);
|
||||
kfree(prot->twsk_prot->twsk_slab_name);
|
||||
prot->twsk_prot->twsk_slab = NULL;
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user