Skip to contentSkip to conversation

ehea: code cleanup

PATCH In review Jan-Bernd Themann 1 participant 1 message Mar 22, 2007

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

PATCH 2/2 ehea: code cleanup

This patch includes:

- code cleanup related to resource management
- extended error data gathering for resource management
- removing trailing whitespaces

---

This patch applies on top of the netdev upstream branch for 2.6.22

 drivers/net/ehea/ehea.h      |    3
 drivers/net/ehea/ehea_main.c |   95 ++++++++--------------
 drivers/net/ehea/ehea_phyp.c |    6 -
 drivers/net/ehea/ehea_phyp.h |    6 +
 drivers/net/ehea/ehea_qmr.c  |  184 +++++++++++++++++++++++++++++++------------
 drivers/net/ehea/ehea_qmr.h  |    7 +
 6 files changed, 187 insertions(+), 114 deletions(-)
drivers/net/ehea/ehea.h +2 -1
diff -Nurp netdev-2.6/drivers/net/ehea/ehea.h netdev_backup/drivers/net/ehea/ehea.h
@@ -39,7 +39,7 @@
 #include <asm/io.h>
 
 #define DRV_NAME	"ehea"
-#define DRV_VERSION	"EHEA_0053"
+#define DRV_VERSION	"EHEA_0054"
 
 #define EHEA_MSG_DEFAULT (NETIF_MSG_LINK | NETIF_MSG_TIMER \
 	| NETIF_MSG_RX_ERR | NETIF_MSG_TX_ERR)
@@ -309,6 +309,7 @@ struct ehea_cq {
  * Memory Region
  */
 struct ehea_mr {
+	struct ehea_adapter *adapter;
 	u64 handle;
 	u64 vaddr;
 	u32 lkey;
drivers/net/ehea/ehea_main.c +36 -59

219 lines not on this page · raw message

drivers/net/ehea/ehea_phyp.c +4 -2
diff -Nurp netdev-2.6/drivers/net/ehea/ehea_phyp.c netdev_backup/drivers/net/ehea/ehea_phyp.c
@@ -478,12 +478,14 @@ u64 ehea_h_disable_and_get_hea(const u64
 				 0, 0, 0, 0, 0, 0);             /* R7-R12 */
 }
 
-u64 ehea_h_free_resource(const u64 adapter_handle, const u64 res_handle)
+u64 ehea_h_free_resource(const u64 adapter_handle, const u64 res_handle,
+			 u64 force_bit)
 {
 	return ehea_plpar_hcall_norets(H_FREE_RESOURCE,
 				       adapter_handle,	   /* R4 */
 				       res_handle,         /* R5 */
-				       0, 0, 0, 0, 0);     /* R6-R10 */
+				       force_bit,
+				       0, 0, 0, 0);        /* R7-R10 */
 }
 
 u64 ehea_h_alloc_resource_mr(const u64 adapter_handle, const u64 vaddr,
drivers/net/ehea/ehea_phyp.h +5 -1
diff -Nurp netdev-2.6/drivers/net/ehea/ehea_phyp.h netdev_backup/drivers/net/ehea/ehea_phyp.h
@@ -414,7 +414,11 @@ u64 ehea_h_register_rpage(const u64 adap
 
 u64 ehea_h_disable_and_get_hea(const u64 adapter_handle, const u64 qp_handle);
 
-u64 ehea_h_free_resource(const u64 adapter_handle, const u64 res_handle);
+#define FORCE_FREE 1
+#define NORMAL_FREE 0
+
+u64 ehea_h_free_resource(const u64 adapter_handle, const u64 res_handle,
+			 u64 force_bit);
 
 u64 ehea_h_alloc_resource_mr(const u64 adapter_handle, const u64 vaddr,
 			     const u64 length, const u32 access_ctrl,
drivers/net/ehea/ehea_qmr.c +134 -50

302 lines not on this page · raw message

drivers/net/ehea/ehea_qmr.h +6 -1
diff -Nurp netdev-2.6/drivers/net/ehea/ehea_qmr.h netdev_backup/drivers/net/ehea/ehea_qmr.h
@@ -361,7 +361,12 @@ struct ehea_qp *ehea_create_qp(struct eh
 
 int ehea_destroy_qp(struct ehea_qp *qp);
 
-int ehea_reg_mr_adapter(struct ehea_adapter *adapter);
+int ehea_reg_kernel_mr(struct ehea_adapter *adapter, struct ehea_mr *mr);
+
+int ehea_gen_smr(struct ehea_adapter *adapter, struct ehea_mr *old_mr,
+		 struct ehea_mr *shared_mr);
+
+int ehea_rem_mr(struct ehea_mr *mr);
 
 void ehea_error_data(struct ehea_adapter *adapter, u64 res_handle);