Ignore:
Timestamp:
02/29/08 03:29:18 (5 years ago)
Author:
BrainSlayer
Message:

update to 2.6.24.3

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/linux/ar531x/linux-2.6.24/net/bluetooth/hci_sysfs.c

    r8935 r9147  
    1313#define BT_DBG(D...) 
    1414#endif 
     15static struct workqueue_struct *btaddconn; 
     16static struct workqueue_struct *btdelconn; 
    1517 
    1618static inline char *typetostr(int type) 
     
    280282        int i; 
    281283 
     284        flush_workqueue(btdelconn); 
    282285        if (device_add(&conn->dev) < 0) { 
    283286                BT_ERR("Failed to register connection device"); 
     
    314317        INIT_WORK(&conn->work, add_conn); 
    315318 
     319        queue_work(btaddconn, &conn->work); 
    316320        schedule_work(&conn->work); 
    317321} 
     
    350354        INIT_WORK(&conn->work, del_conn); 
    351355 
     356        queue_work(btdelconn, &conn->work); 
    352357        schedule_work(&conn->work); 
    353358} 
     
    399404        int err; 
    400405 
     406        btaddconn = create_singlethread_workqueue("btaddconn"); 
     407        if (!btaddconn) { 
     408                err = -ENOMEM; 
     409                goto out; 
     410        } 
     411        btdelconn = create_singlethread_workqueue("btdelconn"); 
     412        if (!btdelconn) { 
     413                err = -ENOMEM; 
     414                goto out_del; 
     415        } 
     416 
    401417        bt_platform = platform_device_register_simple("bluetooth", -1, NULL, 0); 
    402         if (IS_ERR(bt_platform)) 
    403                 return PTR_ERR(bt_platform); 
     418        if (IS_ERR(bt_platform)) { 
     419                err = PTR_ERR(bt_platform); 
     420                goto out_platform; 
     421        } 
    404422 
    405423        err = bus_register(&bt_bus); 
    406         if (err < 0) { 
    407                 platform_device_unregister(bt_platform); 
    408                 return err; 
    409         } 
     424        if (err < 0) 
     425                goto out_bus; 
    410426 
    411427        bt_class = class_create(THIS_MODULE, "bluetooth"); 
    412428        if (IS_ERR(bt_class)) { 
    413                 bus_unregister(&bt_bus); 
    414                 platform_device_unregister(bt_platform); 
    415                 return PTR_ERR(bt_class); 
     429                err = PTR_ERR(bt_class); 
     430                goto out_class; 
    416431        } 
    417432 
    418433        return 0; 
     434 
     435out_class: 
     436        bus_unregister(&bt_bus); 
     437out_bus: 
     438        platform_device_unregister(bt_platform); 
     439out_platform: 
     440        destroy_workqueue(btdelconn); 
     441out_del: 
     442        destroy_workqueue(btaddconn); 
     443out: 
     444        return err; 
    419445} 
    420446 
    421447void bt_sysfs_cleanup(void) 
    422448{ 
     449        destroy_workqueue(btaddconn); 
     450        destroy_workqueue(btdelconn); 
    423451        class_destroy(bt_class); 
    424  
    425452        bus_unregister(&bt_bus); 
    426  
    427453        platform_device_unregister(bt_platform); 
    428454} 
Note: See TracChangeset for help on using the changeset viewer.