|
@@ -586,8 +586,8 @@ int ehea_sense_port_attr(struct ehea_port *port)
|
|
|
u64 hret;
|
|
|
struct hcp_ehea_port_cb0 *cb0;
|
|
|
|
|
|
- cb0 = kzalloc(H_CB_ALIGNMENT, GFP_KERNEL);
|
|
|
- if (!cb0) {
|
|
|
+ cb0 = kzalloc(H_CB_ALIGNMENT, GFP_ATOMIC); /* May be called via */
|
|
|
+ if (!cb0) { /* ehea_neq_tasklet() */
|
|
|
ehea_error("no mem for cb0");
|
|
|
ret = -ENOMEM;
|
|
|
goto out;
|
|
@@ -765,8 +765,7 @@ static void ehea_parse_eqe(struct ehea_adapter *adapter, u64 eqe)
|
|
|
|
|
|
if (EHEA_BMASK_GET(NEQE_PORT_UP, eqe)) {
|
|
|
if (!netif_carrier_ok(port->netdev)) {
|
|
|
- ret = ehea_sense_port_attr(
|
|
|
- port);
|
|
|
+ ret = ehea_sense_port_attr(port);
|
|
|
if (ret) {
|
|
|
ehea_error("failed resensing port "
|
|
|
"attributes");
|
|
@@ -1502,7 +1501,7 @@ static void ehea_promiscuous(struct net_device *dev, int enable)
|
|
|
if ((enable && port->promisc) || (!enable && !port->promisc))
|
|
|
return;
|
|
|
|
|
|
- cb7 = kzalloc(H_CB_ALIGNMENT, GFP_KERNEL);
|
|
|
+ cb7 = kzalloc(H_CB_ALIGNMENT, GFP_ATOMIC);
|
|
|
if (!cb7) {
|
|
|
ehea_error("no mem for cb7");
|
|
|
goto out;
|
|
@@ -1606,7 +1605,7 @@ static void ehea_add_multicast_entry(struct ehea_port* port, u8* mc_mac_addr)
|
|
|
struct ehea_mc_list *ehea_mcl_entry;
|
|
|
u64 hret;
|
|
|
|
|
|
- ehea_mcl_entry = kzalloc(sizeof(*ehea_mcl_entry), GFP_KERNEL);
|
|
|
+ ehea_mcl_entry = kzalloc(sizeof(*ehea_mcl_entry), GFP_ATOMIC);
|
|
|
if (!ehea_mcl_entry) {
|
|
|
ehea_error("no mem for mcl_entry");
|
|
|
return;
|