Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
50 commits
Select commit Hold shift + click to select a range
0b15841
intel_idle: additional Haswell CPU-id
lenb Mar 15, 2013
149c231
tools/power turbostat: additional Haswell CPU-id
lenb Mar 15, 2013
3a7b21e
netfilter: nf_ct_sip: don't drop packets with offsets pointing outsid…
kaber Apr 5, 2013
02f815c
netfilter: ipset: list:set: fix reference counter update
Apr 9, 2013
6eb4c7e
netfilter: ipset: hash:*net*: nomatch flag not excluded on set resize
Apr 9, 2013
d66954a
tcp: incoming connections might use wrong route under synflood
Apr 11, 2013
6101391
bonding: fix netdev event NULL pointer dereference
Apr 11, 2013
b6a5a7b
bonding: IFF_BONDING is not stripped on enslave failure
Apr 11, 2013
7078b98
stmmac: prevent interrupt loop with MMC RX IPC Counter
Apr 9, 2013
50bceae
tcp: Reallocate headroom if it would overflow csum_start
tgraf Apr 11, 2013
c2d421e
netfilter: nf_nat: fix race when unloading protocol modules
Apr 11, 2013
db388d6
can: mcp251x: add missing IRQF_ONESHOT to request_threaded_irq
marckleinebudde Apr 11, 2013
0443de5
can: sja1000: fix handling on dt properties on little endian systems
ch-f Apr 11, 2013
8b5b8c2
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/gi…
davem330 Apr 12, 2013
d900d12
Merge branch 'fixes-for-3.9' of git://gitorious.org/linux-can/linux-can
davem330 Apr 12, 2013
f11a869
be2net: take care of __vlan_put_tag return value
ivecera Apr 12, 2013
3be8fba
tuntap: fix error return code in tun_set_iff()
Apr 12, 2013
fb745e9
net/802/mrp: fix possible race condition when calling mrp_pdu_queue()
dpward Apr 11, 2013
2e0cbf2
net: mvmdio: add select PHYLIB
tpetazzoni Apr 13, 2013
f88c91d
ipv6: statically link register_inet6addr_notifier()
Apr 14, 2013
8f3359b
bridge: make user modified path cost sticky
shemminger Apr 13, 2013
06848c1
esp4: fix error return code in esp_output()
Apr 13, 2013
ee40a11
net: mvneta: fix improper tx queue usage in mvneta_tx()
wtarreau Apr 11, 2013
91c4166
drivers: net: ethernet: cpsw: get slave VLAN id from slave node inste…
mugunthanvnm Apr 15, 2013
32b161a
net: cdc_mbim: remove bogus sizeof()
bmork Apr 16, 2013
8d7ed0f
net: fec: fix regression in link change accounting
lynxeye-dev Apr 16, 2013
97599dc
net: drop dst before queueing fragments
edumazet Apr 16, 2013
361cd29
qlcnic: fix beaconing test for 82xx adapter
Apr 16, 2013
4f2e290
s390: move dummy io_remap_pfn_range() to asm/pgtable.h
torvalds Apr 17, 2013
fca8316
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
torvalds Apr 17, 2013
46faeed
rbd: do a safe list traversal in rbd_img_request_submit()
Apr 10, 2013
15bbc1b
ARM: KVM: fix unbalanced get_cpu() in access_dcsw
Apr 17, 2013
96d8683
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel…
torvalds Apr 17, 2013
355f1ec
thinkpad-acpi: kill hotkey_thread_mutex
oleg-nesterov Apr 17, 2013
d875cf0
drivers/video/mmp/core.c: fix use-after-free bug
andreiepure Apr 17, 2013
e942e2c
checkpatch: fix stringification macro defect
JoePerches Apr 17, 2013
a2fce91
hugetlbfs: stop setting VM_DONTDUMP in initializing vma(VM_HUGETLB)
Apr 17, 2013
23d9e48
fs/binfmt_elf.c: fix hugetlb memory check in vma_dump_size()
Apr 17, 2013
9cc3a5b
hugetlbfs: add swap entry check in follow_hugetlb_page()
Apr 17, 2013
472d326
avr32: fix build error in atstk1006_defconfig
JoshWu Apr 17, 2013
12f267a
hfsplus: fix potential overflow in hfsplus_file_truncate()
dubeyko Apr 17, 2013
d72515b
mm/vmscan: fix error return in kswapd_run()
Apr 17, 2013
b9e146d
kernel/signal.c: stop info leak via the tkill and the tgkill syscalls
ephox-gcc-plugins Apr 17, 2013
1ce6ec9
Merge branch 'akpm' (fixes from Andrew)
torvalds Apr 17, 2013
ebe8054
Merge branch 'release' of git://git.kernel.org/pub/scm/linux/kernel/g…
torvalds Apr 17, 2013
d202f05
dmaengine: at_hdmac: fix race condition in atc_advance_work()
ldesroches Apr 18, 2013
5c51543
kprobes: Fix a double lock bug of kprobe_mutex
mhiramathitachi Apr 18, 2013
0a82a8d
Revert "block: add missing block_bio_complete() tracepoint"
torvalds Apr 18, 2013
c857b7f
Revert "hp-wmi: Add support for SMBus hotkeys"
Apr 18, 2013
a86d526
Merge branch 'for_linus' of git://cavan.codon.org.uk/platform-drivers…
torvalds Apr 18, 2013
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions arch/arm/kvm/coproc.c
Original file line number Diff line number Diff line change
Expand Up @@ -79,11 +79,11 @@ static bool access_dcsw(struct kvm_vcpu *vcpu,
u32 val;
int cpu;

cpu = get_cpu();

if (!p->is_write)
return read_from_write_only(vcpu, p);

cpu = get_cpu();

cpumask_setall(&vcpu->arch.require_dcache_flush);
cpumask_clear_cpu(cpu, &vcpu->arch.require_dcache_flush);

Expand Down
4 changes: 4 additions & 0 deletions arch/avr32/include/asm/io.h
Original file line number Diff line number Diff line change
Expand Up @@ -165,6 +165,10 @@ BUILDIO_IOPORT(l, u32)
#define readw_be __raw_readw
#define readl_be __raw_readl

#define writeb_relaxed writeb
#define writew_relaxed writew
#define writel_relaxed writel

#define writeb_be __raw_writeb
#define writew_be __raw_writew
#define writel_be __raw_writel
Expand Down
4 changes: 0 additions & 4 deletions arch/s390/include/asm/io.h
Original file line number Diff line number Diff line change
Expand Up @@ -50,10 +50,6 @@ void unxlate_dev_mem_ptr(unsigned long phys, void *addr);
#define ioremap_nocache(addr, size) ioremap(addr, size)
#define ioremap_wc ioremap_nocache

/* TODO: s390 cannot support io_remap_pfn_range... */
#define io_remap_pfn_range(vma, vaddr, pfn, size, prot) \
remap_pfn_range(vma, vaddr, pfn, size, prot)

static inline void __iomem *ioremap(unsigned long offset, unsigned long size)
{
return (void __iomem *) offset;
Expand Down
4 changes: 4 additions & 0 deletions arch/s390/include/asm/pgtable.h
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,10 @@ extern unsigned long zero_page_mask;
(((unsigned long)(vaddr)) &zero_page_mask))))
#define __HAVE_COLOR_ZERO_PAGE

/* TODO: s390 cannot support io_remap_pfn_range... */
#define io_remap_pfn_range(vma, vaddr, pfn, size, prot) \
remap_pfn_range(vma, vaddr, pfn, size, prot)

#endif /* !__ASSEMBLY__ */

/*
Expand Down
1 change: 1 addition & 0 deletions block/blk-core.c
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@

EXPORT_TRACEPOINT_SYMBOL_GPL(block_bio_remap);
EXPORT_TRACEPOINT_SYMBOL_GPL(block_rq_remap);
EXPORT_TRACEPOINT_SYMBOL_GPL(block_bio_complete);
EXPORT_TRACEPOINT_SYMBOL_GPL(block_unplug);

DEFINE_IDA(blk_queue_ida);
Expand Down
3 changes: 2 additions & 1 deletion drivers/block/rbd.c
Original file line number Diff line number Diff line change
Expand Up @@ -1742,9 +1742,10 @@ static int rbd_img_request_submit(struct rbd_img_request *img_request)
struct rbd_device *rbd_dev = img_request->rbd_dev;
struct ceph_osd_client *osdc = &rbd_dev->rbd_client->client->osdc;
struct rbd_obj_request *obj_request;
struct rbd_obj_request *next_obj_request;

dout("%s: img %p\n", __func__, img_request);
for_each_obj_request(img_request, obj_request) {
for_each_obj_request_safe(img_request, obj_request, next_obj_request) {
int ret;

obj_request->callback = rbd_img_obj_callback;
Expand Down
9 changes: 4 additions & 5 deletions drivers/dma/at_hdmac.c
Original file line number Diff line number Diff line change
Expand Up @@ -310,8 +310,6 @@ static void atc_complete_all(struct at_dma_chan *atchan)

dev_vdbg(chan2dev(&atchan->chan_common), "complete all\n");

BUG_ON(atc_chan_is_enabled(atchan));

/*
* Submit queued descriptors ASAP, i.e. before we go through
* the completed ones.
Expand Down Expand Up @@ -368,6 +366,9 @@ static void atc_advance_work(struct at_dma_chan *atchan)
{
dev_vdbg(chan2dev(&atchan->chan_common), "advance_work\n");

if (atc_chan_is_enabled(atchan))
return;

if (list_empty(&atchan->active_list) ||
list_is_singular(&atchan->active_list)) {
atc_complete_all(atchan);
Expand Down Expand Up @@ -1078,9 +1079,7 @@ static void atc_issue_pending(struct dma_chan *chan)
return;

spin_lock_irqsave(&atchan->lock, flags);
if (!atc_chan_is_enabled(atchan)) {
atc_advance_work(atchan);
}
atc_advance_work(atchan);
spin_unlock_irqrestore(&atchan->lock, flags);
}

Expand Down
1 change: 1 addition & 0 deletions drivers/idle/intel_idle.c
Original file line number Diff line number Diff line change
Expand Up @@ -465,6 +465,7 @@ static const struct x86_cpu_id intel_idle_ids[] = {
ICPU(0x3c, idle_cpu_hsw),
ICPU(0x3f, idle_cpu_hsw),
ICPU(0x45, idle_cpu_hsw),
ICPU(0x46, idle_cpu_hsw),
{}
};
MODULE_DEVICE_TABLE(x86cpu, intel_idle_ids);
Expand Down
1 change: 1 addition & 0 deletions drivers/md/dm.c
Original file line number Diff line number Diff line change
Expand Up @@ -611,6 +611,7 @@ static void dec_pending(struct dm_io *io, int error)
queue_io(md, bio);
} else {
/* done with normal IO or empty flush */
trace_block_bio_complete(md->queue, bio, io_error);
bio_endio(bio, io_error);
}
}
Expand Down
11 changes: 10 additions & 1 deletion drivers/md/raid5.c
Original file line number Diff line number Diff line change
Expand Up @@ -184,6 +184,8 @@ static void return_io(struct bio *return_bi)
return_bi = bi->bi_next;
bi->bi_next = NULL;
bi->bi_size = 0;
trace_block_bio_complete(bdev_get_queue(bi->bi_bdev),
bi, 0);
bio_endio(bi, 0);
bi = return_bi;
}
Expand Down Expand Up @@ -3914,6 +3916,8 @@ static void raid5_align_endio(struct bio *bi, int error)
rdev_dec_pending(rdev, conf->mddev);

if (!error && uptodate) {
trace_block_bio_complete(bdev_get_queue(raid_bi->bi_bdev),
raid_bi, 0);
bio_endio(raid_bi, 0);
if (atomic_dec_and_test(&conf->active_aligned_reads))
wake_up(&conf->wait_for_stripe);
Expand Down Expand Up @@ -4382,6 +4386,8 @@ static void make_request(struct mddev *mddev, struct bio * bi)
if ( rw == WRITE )
md_write_end(mddev);

trace_block_bio_complete(bdev_get_queue(bi->bi_bdev),
bi, 0);
bio_endio(bi, 0);
}
}
Expand Down Expand Up @@ -4758,8 +4764,11 @@ static int retry_aligned_read(struct r5conf *conf, struct bio *raid_bio)
handled++;
}
remaining = raid5_dec_bi_active_stripes(raid_bio);
if (remaining == 0)
if (remaining == 0) {
trace_block_bio_complete(bdev_get_queue(raid_bio->bi_bdev),
raid_bio, 0);
bio_endio(raid_bio, 0);
}
if (atomic_dec_and_test(&conf->active_aligned_reads))
wake_up(&conf->wait_for_stripe);
return handled;
Expand Down
14 changes: 12 additions & 2 deletions drivers/net/bonding/bond_main.c
Original file line number Diff line number Diff line change
Expand Up @@ -1906,6 +1906,7 @@ int bond_enslave(struct net_device *bond_dev, struct net_device *slave_dev)
write_unlock_bh(&bond->lock);

err_close:
slave_dev->priv_flags &= ~IFF_BONDING;
dev_close(slave_dev);

err_unset_master:
Expand Down Expand Up @@ -3168,11 +3169,20 @@ static int bond_slave_netdev_event(unsigned long event,
struct net_device *slave_dev)
{
struct slave *slave = bond_slave_get_rtnl(slave_dev);
struct bonding *bond = slave->bond;
struct net_device *bond_dev = slave->bond->dev;
struct bonding *bond;
struct net_device *bond_dev;
u32 old_speed;
u8 old_duplex;

/* A netdev event can be generated while enslaving a device
* before netdev_rx_handler_register is called in which case
* slave will be NULL
*/
if (!slave)
return NOTIFY_DONE;
bond_dev = slave->bond->dev;
bond = slave->bond;

switch (event) {
case NETDEV_UNREGISTER:
if (bond->setup_by_slave)
Expand Down
10 changes: 8 additions & 2 deletions drivers/net/can/mcp251x.c
Original file line number Diff line number Diff line change
Expand Up @@ -929,6 +929,7 @@ static int mcp251x_open(struct net_device *net)
struct mcp251x_priv *priv = netdev_priv(net);
struct spi_device *spi = priv->spi;
struct mcp251x_platform_data *pdata = spi->dev.platform_data;
unsigned long flags;
int ret;

ret = open_candev(net);
Expand All @@ -945,9 +946,14 @@ static int mcp251x_open(struct net_device *net)
priv->tx_skb = NULL;
priv->tx_len = 0;

flags = IRQF_ONESHOT;
if (pdata->irq_flags)
flags |= pdata->irq_flags;
else
flags |= IRQF_TRIGGER_FALLING;

ret = request_threaded_irq(spi->irq, NULL, mcp251x_can_ist,
pdata->irq_flags ? pdata->irq_flags : IRQF_TRIGGER_FALLING,
DEVICE_NAME, priv);
flags, DEVICE_NAME, priv);
if (ret) {
dev_err(&spi->dev, "failed to acquire irq %d\n", spi->irq);
if (pdata->transceiver_enable)
Expand Down
31 changes: 15 additions & 16 deletions drivers/net/can/sja1000/sja1000_of_platform.c
Original file line number Diff line number Diff line change
Expand Up @@ -96,8 +96,8 @@ static int sja1000_ofp_probe(struct platform_device *ofdev)
struct net_device *dev;
struct sja1000_priv *priv;
struct resource res;
const u32 *prop;
int err, irq, res_size, prop_size;
u32 prop;
int err, irq, res_size;
void __iomem *base;

err = of_address_to_resource(np, 0, &res);
Expand Down Expand Up @@ -138,27 +138,27 @@ static int sja1000_ofp_probe(struct platform_device *ofdev)
priv->read_reg = sja1000_ofp_read_reg;
priv->write_reg = sja1000_ofp_write_reg;

prop = of_get_property(np, "nxp,external-clock-frequency", &prop_size);
if (prop && (prop_size == sizeof(u32)))
priv->can.clock.freq = *prop / 2;
err = of_property_read_u32(np, "nxp,external-clock-frequency", &prop);
if (!err)
priv->can.clock.freq = prop / 2;
else
priv->can.clock.freq = SJA1000_OFP_CAN_CLOCK; /* default */

prop = of_get_property(np, "nxp,tx-output-mode", &prop_size);
if (prop && (prop_size == sizeof(u32)))
priv->ocr |= *prop & OCR_MODE_MASK;
err = of_property_read_u32(np, "nxp,tx-output-mode", &prop);
if (!err)
priv->ocr |= prop & OCR_MODE_MASK;
else
priv->ocr |= OCR_MODE_NORMAL; /* default */

prop = of_get_property(np, "nxp,tx-output-config", &prop_size);
if (prop && (prop_size == sizeof(u32)))
priv->ocr |= (*prop << OCR_TX_SHIFT) & OCR_TX_MASK;
err = of_property_read_u32(np, "nxp,tx-output-config", &prop);
if (!err)
priv->ocr |= (prop << OCR_TX_SHIFT) & OCR_TX_MASK;
else
priv->ocr |= OCR_TX0_PULLDOWN; /* default */

prop = of_get_property(np, "nxp,clock-out-frequency", &prop_size);
if (prop && (prop_size == sizeof(u32)) && *prop) {
u32 divider = priv->can.clock.freq * 2 / *prop;
err = of_property_read_u32(np, "nxp,clock-out-frequency", &prop);
if (!err && prop) {
u32 divider = priv->can.clock.freq * 2 / prop;

if (divider > 1)
priv->cdr |= divider / 2 - 1;
Expand All @@ -168,8 +168,7 @@ static int sja1000_ofp_probe(struct platform_device *ofdev)
priv->cdr |= CDR_CLK_OFF; /* default */
}

prop = of_get_property(np, "nxp,no-comparator-bypass", NULL);
if (!prop)
if (!of_property_read_bool(np, "nxp,no-comparator-bypass"))
priv->cdr |= CDR_CBP; /* default */

priv->irq_flags = IRQF_SHARED;
Expand Down
5 changes: 3 additions & 2 deletions drivers/net/ethernet/emulex/benet/be_main.c
Original file line number Diff line number Diff line change
Expand Up @@ -759,8 +759,9 @@ static struct sk_buff *be_insert_vlan_in_pkt(struct be_adapter *adapter,

if (vlan_tx_tag_present(skb)) {
vlan_tag = be_get_tx_vlan_tag(adapter, skb);
__vlan_put_tag(skb, vlan_tag);
skb->vlan_tci = 0;
skb = __vlan_put_tag(skb, vlan_tag);
if (skb)
skb->vlan_tci = 0;
}

return skb;
Expand Down
1 change: 1 addition & 0 deletions drivers/net/ethernet/freescale/fec.c
Original file line number Diff line number Diff line change
Expand Up @@ -1002,6 +1002,7 @@ static void fec_enet_adjust_link(struct net_device *ndev)
} else {
if (fep->link) {
fec_stop(ndev);
fep->link = phy_dev->link;
status_change = 1;
}
}
Expand Down
2 changes: 1 addition & 1 deletion drivers/net/ethernet/marvell/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@ config MV643XX_ETH

config MVMDIO
tristate "Marvell MDIO interface support"
select PHYLIB
---help---
This driver supports the MDIO interface found in the network
interface units of the Marvell EBU SoCs (Kirkwood, Orion5x,
Expand All @@ -45,7 +46,6 @@ config MVMDIO
config MVNETA
tristate "Marvell Armada 370/XP network interface support"
depends on MACH_ARMADA_370_XP
select PHYLIB
select MVMDIO
---help---
This driver supports the network interface units in the
Expand Down
9 changes: 4 additions & 5 deletions drivers/net/ethernet/marvell/mvneta.c
Original file line number Diff line number Diff line change
Expand Up @@ -374,7 +374,6 @@ static int rxq_number = 8;
static int txq_number = 8;

static int rxq_def;
static int txq_def;

#define MVNETA_DRIVER_NAME "mvneta"
#define MVNETA_DRIVER_VERSION "1.0"
Expand Down Expand Up @@ -1475,7 +1474,8 @@ static int mvneta_tx_frag_process(struct mvneta_port *pp, struct sk_buff *skb,
static int mvneta_tx(struct sk_buff *skb, struct net_device *dev)
{
struct mvneta_port *pp = netdev_priv(dev);
struct mvneta_tx_queue *txq = &pp->txqs[txq_def];
u16 txq_id = skb_get_queue_mapping(skb);
struct mvneta_tx_queue *txq = &pp->txqs[txq_id];
struct mvneta_tx_desc *tx_desc;
struct netdev_queue *nq;
int frags = 0;
Expand All @@ -1485,7 +1485,7 @@ static int mvneta_tx(struct sk_buff *skb, struct net_device *dev)
goto out;

frags = skb_shinfo(skb)->nr_frags + 1;
nq = netdev_get_tx_queue(dev, txq_def);
nq = netdev_get_tx_queue(dev, txq_id);

/* Get a descriptor for the first part of the packet */
tx_desc = mvneta_txq_next_desc_get(txq);
Expand Down Expand Up @@ -2689,7 +2689,7 @@ static int mvneta_probe(struct platform_device *pdev)
return -EINVAL;
}

dev = alloc_etherdev_mq(sizeof(struct mvneta_port), 8);
dev = alloc_etherdev_mqs(sizeof(struct mvneta_port), txq_number, rxq_number);
if (!dev)
return -ENOMEM;

Expand Down Expand Up @@ -2844,4 +2844,3 @@ module_param(rxq_number, int, S_IRUGO);
module_param(txq_number, int, S_IRUGO);

module_param(rxq_def, int, S_IRUGO);
module_param(txq_def, int, S_IRUGO);
4 changes: 2 additions & 2 deletions drivers/net/ethernet/qlogic/qlcnic/qlcnic_sysfs.c
Original file line number Diff line number Diff line change
Expand Up @@ -200,10 +200,10 @@ static ssize_t qlcnic_store_beacon(struct device *dev,
}

err = qlcnic_config_led(adapter, b_state, b_rate);
if (!err)
if (!err) {
err = len;
else
ahw->beacon_state = b_state;
}

if (test_and_clear_bit(__QLCNIC_DIAG_RES_ALLOC, &adapter->state))
qlcnic_diag_free_res(adapter->netdev, max_sds_rings);
Expand Down
1 change: 1 addition & 0 deletions drivers/net/ethernet/stmicro/stmmac/mmc_core.c
Original file line number Diff line number Diff line change
Expand Up @@ -149,6 +149,7 @@ void dwmac_mmc_intr_all_mask(void __iomem *ioaddr)
{
writel(MMC_DEFAULT_MASK, ioaddr + MMC_RX_INTR_MASK);
writel(MMC_DEFAULT_MASK, ioaddr + MMC_TX_INTR_MASK);
writel(MMC_DEFAULT_MASK, ioaddr + MMC_RX_IPC_INTR_MASK);
}

/* This reads the MAC core counters (if actaully supported).
Expand Down
2 changes: 1 addition & 1 deletion drivers/net/ethernet/ti/cpsw.c
Original file line number Diff line number Diff line change
Expand Up @@ -1380,7 +1380,7 @@ static int cpsw_probe_dt(struct cpsw_platform_data *data,
memcpy(slave_data->mac_addr, mac_addr, ETH_ALEN);

if (data->dual_emac) {
if (of_property_read_u32(node, "dual_emac_res_vlan",
if (of_property_read_u32(slave_node, "dual_emac_res_vlan",
&prop)) {
pr_err("Missing dual_emac_res_vlan in DT.\n");
slave_data->dual_emac_res_vlan = i+1;
Expand Down
2 changes: 1 addition & 1 deletion drivers/net/tun.c
Original file line number Diff line number Diff line change
Expand Up @@ -1594,7 +1594,7 @@ static int tun_set_iff(struct net *net, struct file *file, struct ifreq *ifr)

if (tun->flags & TUN_TAP_MQ &&
(tun->numqueues + tun->numdisabled > 1))
return err;
return -EBUSY;
}
else {
char *name;
Expand Down
2 changes: 1 addition & 1 deletion drivers/net/usb/cdc_mbim.c
Original file line number Diff line number Diff line change
Expand Up @@ -134,7 +134,7 @@ static struct sk_buff *cdc_mbim_tx_fixup(struct usbnet *dev, struct sk_buff *skb
goto error;

if (skb) {
if (skb->len <= sizeof(ETH_HLEN))
if (skb->len <= ETH_HLEN)
goto error;

/* mapping VLANs to MBIM sessions:
Expand Down
Loading