| From foo@baz Mon Apr 9 17:09:24 CEST 2018 |
| From: Ram Amrani <Ram.Amrani@cavium.com> |
| Date: Tue, 9 May 2017 15:07:50 +0300 |
| Subject: qed: Correct doorbell configuration for !4Kb pages |
| |
| From: Ram Amrani <Ram.Amrani@cavium.com> |
| |
| |
| [ Upstream commit a82dadbce47395747824971db08a128130786fdc ] |
| |
| When configuring the doorbell DPI address, driver aligns the start |
| address to 4KB [HW-pages] instead of host PAGE_SIZE. |
| As a result, RoCE applications might receive addresses which are |
| unaligned to pages [when PAGE_SIZE > 4KB], which is a security risk. |
| |
| Fixes: 51ff17251c9c ("qed: Add support for RoCE hw init") |
| Signed-off-by: Ram Amrani <Ram.Amrani@cavium.com> |
| Signed-off-by: Yuval Mintz <Yuval.Mintz@cavium.com> |
| Signed-off-by: David S. Miller <davem@davemloft.net> |
| Signed-off-by: Sasha Levin <alexander.levin@microsoft.com> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| --- |
| drivers/net/ethernet/qlogic/qed/qed_dev.c | 2 +- |
| 1 file changed, 1 insertion(+), 1 deletion(-) |
| |
| --- a/drivers/net/ethernet/qlogic/qed/qed_dev.c |
| +++ b/drivers/net/ethernet/qlogic/qed/qed_dev.c |
| @@ -850,7 +850,7 @@ qed_hw_init_pf_doorbell_bar(struct qed_h |
| NULL) + |
| qed_cxt_get_proto_cid_count(p_hwfn, PROTOCOLID_ETH, |
| NULL); |
| - norm_regsize = roundup(QED_PF_DEMS_SIZE * non_pwm_conn, 4096); |
| + norm_regsize = roundup(QED_PF_DEMS_SIZE * non_pwm_conn, PAGE_SIZE); |
| min_addr_reg1 = norm_regsize / 4096; |
| pwm_regsize = db_bar_size - norm_regsize; |
| |