Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1396513 > unrolled thread
| Started by | Heinrich Schuchardt <xypron.glpk@gmx.de> |
|---|---|
| First post | 2016-05-09 00:50 +0200 |
| Last post | 2016-05-09 21:00 +0200 |
| Articles | 2 — 2 participants |
Back to article view | Back to linux.kernel
[PATCH 1/1] net: thunderx: avoid exposing kernel stack Heinrich Schuchardt <xypron.glpk@gmx.de> - 2016-05-09 00:50 +0200
Re: [PATCH 1/1] net: thunderx: avoid exposing kernel stack Sunil Kovvuri <sunil.kovvuri@gmail.com> - 2016-05-09 21:00 +0200
| From | Heinrich Schuchardt <xypron.glpk@gmx.de> |
|---|---|
| Date | 2016-05-09 00:50 +0200 |
| Subject | [PATCH 1/1] net: thunderx: avoid exposing kernel stack |
| Message-ID | <rwFGp-7qe-1@gated-at.bofh.it> |
Reserved fields should be set to zero to avoid exposing bits from the kernel stack. Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de> --- drivers/net/ethernet/cavium/thunder/nicvf_queues.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/drivers/net/ethernet/cavium/thunder/nicvf_queues.c b/drivers/net/ethernet/cavium/thunder/nicvf_queues.c index 8acd7c0..0ff8e60 100644 --- a/drivers/net/ethernet/cavium/thunder/nicvf_queues.c +++ b/drivers/net/ethernet/cavium/thunder/nicvf_queues.c @@ -533,6 +533,7 @@ static void nicvf_rcv_queue_config(struct nicvf *nic, struct queue_set *qs, nicvf_config_vlan_stripping(nic, nic->netdev->features); /* Enable Receive queue */ + memset(&rq_cfg, 0, sizeof(struct rq_cfg)); rq_cfg.ena = 1; rq_cfg.tcp_ena = 0; nicvf_queue_reg_write(nic, NIC_QSET_RQ_0_7_CFG, qidx, *(u64 *)&rq_cfg); @@ -565,6 +566,7 @@ void nicvf_cmp_queue_config(struct nicvf *nic, struct queue_set *qs, qidx, (u64)(cq->dmem.phys_base)); /* Enable Completion queue */ + memset(&cq_cfg, 0, sizeof(struct cq_cfg)); cq_cfg.ena = 1; cq_cfg.reset = 0; cq_cfg.caching = 0; @@ -613,6 +615,7 @@ static void nicvf_snd_queue_config(struct nicvf *nic, struct queue_set *qs, qidx, (u64)(sq->dmem.phys_base)); /* Enable send queue & set queue size */ + memset(&sq_cfg, 0, sizeof(struct sq_cfg)); sq_cfg.ena = 1; sq_cfg.reset = 0; sq_cfg.ldwb = 0; @@ -649,6 +652,7 @@ static void nicvf_rbdr_config(struct nicvf *nic, struct queue_set *qs, /* Enable RBDR & set queue size */ /* Buffer size should be in multiples of 128 bytes */ + memset(&rbdr_cfg, 0, sizeof(struct rbdr_cfg)); rbdr_cfg.ena = 1; rbdr_cfg.reset = 0; rbdr_cfg.ldwb = 0; -- 2.1.4
[toc] | [next] | [standalone]
| From | Sunil Kovvuri <sunil.kovvuri@gmail.com> |
|---|---|
| Date | 2016-05-09 21:00 +0200 |
| Message-ID | <rwYzo-2MP-3@gated-at.bofh.it> |
| In reply to | #1396513 |
Thanks for fixing, changes look okay. Sunil. On Sun, May 8, 2016 at 3:46 PM, Heinrich Schuchardt <xypron.glpk@gmx.de> wrote: > Reserved fields should be set to zero to avoid exposing > bits from the kernel stack. > > Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de> > --- > drivers/net/ethernet/cavium/thunder/nicvf_queues.c | 4 ++++ > 1 file changed, 4 insertions(+) > > diff --git a/drivers/net/ethernet/cavium/thunder/nicvf_queues.c b/drivers/net/ethernet/cavium/thunder/nicvf_queues.c > index 8acd7c0..0ff8e60 100644 > --- a/drivers/net/ethernet/cavium/thunder/nicvf_queues.c > +++ b/drivers/net/ethernet/cavium/thunder/nicvf_queues.c > @@ -533,6 +533,7 @@ static void nicvf_rcv_queue_config(struct nicvf *nic, struct queue_set *qs, > nicvf_config_vlan_stripping(nic, nic->netdev->features); > > /* Enable Receive queue */ > + memset(&rq_cfg, 0, sizeof(struct rq_cfg)); > rq_cfg.ena = 1; > rq_cfg.tcp_ena = 0; > nicvf_queue_reg_write(nic, NIC_QSET_RQ_0_7_CFG, qidx, *(u64 *)&rq_cfg); > @@ -565,6 +566,7 @@ void nicvf_cmp_queue_config(struct nicvf *nic, struct queue_set *qs, > qidx, (u64)(cq->dmem.phys_base)); > > /* Enable Completion queue */ > + memset(&cq_cfg, 0, sizeof(struct cq_cfg)); > cq_cfg.ena = 1; > cq_cfg.reset = 0; > cq_cfg.caching = 0; > @@ -613,6 +615,7 @@ static void nicvf_snd_queue_config(struct nicvf *nic, struct queue_set *qs, > qidx, (u64)(sq->dmem.phys_base)); > > /* Enable send queue & set queue size */ > + memset(&sq_cfg, 0, sizeof(struct sq_cfg)); > sq_cfg.ena = 1; > sq_cfg.reset = 0; > sq_cfg.ldwb = 0; > @@ -649,6 +652,7 @@ static void nicvf_rbdr_config(struct nicvf *nic, struct queue_set *qs, > > /* Enable RBDR & set queue size */ > /* Buffer size should be in multiples of 128 bytes */ > + memset(&rbdr_cfg, 0, sizeof(struct rbdr_cfg)); > rbdr_cfg.ena = 1; > rbdr_cfg.reset = 0; > rbdr_cfg.ldwb = 0; > -- > 2.1.4 >
[toc] | [prev] | [standalone]
Back to top | Article view | linux.kernel
csiph-web